質問タイトルの通りです。
FPGAを使った実装を試みています。
FPGAの中にfloat限定のDSPがあるのですが、実装したいアプリケーションがunsigned int型のため、
DSPを全く使用していない状態です。なので、このunsigned intの値をfloatに変換し、float上で四則計算した後、またunsigned intに戻す。
という処理をして、DSPを活用できないか、と考えています。
が、値がぐちゃぐちゃになり、うまくいきません。
何か、よいアイディアをお持ちの方はいらっしゃらないでしょうか。
よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
プログラムにバグがあるか、DSPの仕様を誤解しているか、のどちらかですね。
情報が無いので、どちらかは分かりません。
ありがとうございます。ということは、一般的なC言語とかであれば、intをfloatと見立てて計算することは可能ということでしょうか。具体的にどのようにすればよいのでしょうか。
No.2
- 回答日時:
当該FPGAは使ったことないし、データシート全部に目を通してませんが。
○unsigned int は何ビットなのでしょうか?
intのサイズはいろんな条件によって違います。
8ビット、16ビット、32ビット、64ビット、あるいはそれ以外、いろんなケースが考えられます。
○「見做す」という言葉を、どういう意味で使っていますか?
整数と浮動小数点数とでは、内部のビット毎の意味あいが違います。
整数4 と同じビットパターンの浮動小数点数は 4.0にはなりません。
整数4 と同じ値4.0の浮動小数点数は ビットパターンが整数4とは異なります。
互いに「型変換」が必要です。
※ 高級言語で4=4.0のように扱えるのは、「暗黙の型変換」が行われるからです。
その資料によると、IEEE754形式の浮動小数点数に対応しているようです。
https://ja.wikipedia.org/wiki/IEEE_754
ですので、intのビット幅によっては、
int→float→int
とできなくはないと思います。
うまくいかないのは次の点を考慮していないからではないでしょうか?
・ビット幅。
先のWikipediaにある「桁・ビット数(p)」がintの桁に足りないと、その部分か切り捨てられてしまいます。
32ビットintを単精度floatに入れようとすると、下位8ビットを0にしたのとほぼ同じです。
・ビットパターン
型変換無しに浮動小数点数演算したら、期待通りには結果は得られません。
また、その資料によると、固定小数点にも対応しているようです。
固定小数点で「小数点以下0桁」なのが「整数」です。
もしかしたら、これを活用できるかもしれません。
急に仕事がゴタゴタしてしまい、投稿したのを失念していました。お
礼が随分と遅くなってしまって、大変申し訳ありません!!!
詳しいご回答をありがとうございました。
●私の環境でいうunsigned intとfloatがそれぞれ何ビットを指すのか、調べてみたところ、どちらも32bitでした。
●ビットパターンが異なるため、型変換してビットパターンを変換しないといけない、ということですね。
もちろん型変換すると、そこにオーバーヘッドが発生するので、必要ないなら省くのが理想ですが、ビットパターンが異なるために、型変換は必須になってしまいますよね。やはりuint -> float -> uintの型変換を行うようにします。ありがとうございます。
●固定少数点の活用は私もボンヤリとですが、考えてました。kmeeさまのお陰で少しここに取り組んでみようと意欲が出てきました。ありがとうございます。
☆最終目標としては、整数における、和・積・AND、OR、XORの計算を、floatで実行することなのです。和・積は何とかなりそうだと分かりました。あとは論理演算をfloatでやる、というところなのですが、よいアイディアはありませんかね。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 共用体について コマンドライン引数で値を2つ入力したときに、argv[2]の値をUNI u1 4 2022/04/25 20:34
- C言語・C++・C# C言語: ポインタ 5 2022/06/01 08:33
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C++ と、 1 2022/11/07 23:45
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# 3×3のラテン方陣をつくるプログラムを作成したのですが、(↓) #include <stdio.h> 5 2023/07/10 01:53
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# C言語について コマンドラインで >変数 12.00 (char型) と、小数点付きの値を共用体に渡 1 2022/04/22 16:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
尿検査前日に自慰行為した時の...
-
白血球が多いとどんな心配があ...
-
尿検査の前日は自慰控えたほう...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
勃起する時って痛いんですか? ...
-
EXCELで条件付き書式で空白セル...
-
腕を見たら黄色くなってる部分...
-
EXCELで式からグラフを描くには?
-
変な話しになります。尿検査で...
-
excelでsin二乗のやり方を教え...
-
エクセル指定した範囲からラン...
-
Excelで""で囲む方法
-
ある範囲のセルから任意の値を...
-
2つの数値のうち、数値が小さい...
-
精子が黄色?
-
エクセルでエラーが出て困って...
-
納豆食べた後の尿の納豆臭は何故?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
首吊りどこ締めるの
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
白血球が多いとどんな心配があ...
-
中出しをするとお腹が痛い・・・。
-
射精をして1週間以内に尿検査を...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
変な話しになります。尿検査で...
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
男です。昨日の午後3時くらいに...
-
今朝、毎朝の習慣でオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
1日前の検尿
-
値が入っているときだけ計算結...
-
精子が黄色?
おすすめ情報
DSPは、AlteraのArria10というFPGAに搭載されたDSPになります。
https://www.altera.co.jp/products/fpga/features/ …
コードは、OpenCLという高位合成ツールで記述しています。