トップページ⇒denki
1001コメント354KB

【Verilog】記述言語で論理設計 Project2【VHDL】

■ このスレッドは過去ログ倉庫に格納されています
0001792= ◆YMO/ALTERA 04/09/03 12:21ID:p+kby74r
HDLの処理系も、それを実際に動かすシミュレータ・評価基板も
安価で入手できるようになってきました。

このスレが目に入ったおまえ! HDLで何か作って遊んでみませんか。

日曜工作のHDL書き、学生さん、プロの方、カキコお待ちしております。
関連情報は >>2-10 あたり。

前スレ
【Verilog】プログラムで作る回路 Project1【VHDL】
http://science3.2ch.net/test/read.cgi/denki/1072330555/l50
0067774ワット発電中さん04/10/28 08:49:46ID:rgTGjD4K
>>66
ワラタw
内容とageて質問しているとこから見て同一人物だろう。
仕事なのか学校の課題なのか知らんが、そろそろ対応しないとやばいんじゃねーか?w
0068774ワット発電中さん04/10/29 12:15:26ID:nVG1/EOp
fanout 30もあったら十分 too high だと思ってしまう私は古い人間?
0069774ワット発電中さん04/10/29 18:20:53ID:ZncUbX7p
>>67
やばいだろーな

てことで
set_max_fanout 4
とでもして合成してみれ.
それでWarning出なくなればfanout 30がtoo highってことだし
それでもWarning出れば何か他の原因.
原因の特定にはつながるだろ.
まずはそこから.

合成時のログとか状況とかもうちょっと詳しく.
論理合成は成功するのか,失敗するとすればどこでとまるのか,
合成前のfanout数とか,どこでWarning出るのかとか.今の情報量じゃぜんぜんワカンネ.
あと,質問する時はメール欄に半角英でsageと入れておくれ.
0070774ワット発電中さん04/10/29 22:36:09ID:bkjzYNtj
初心者です。アドバイスをお願いします

下記の条件A='1'に加えA and B='1'の条件となるBを追加しようと考えています。
どこにどのような回路を組み込めば良いでしょうか?

entity test is
port(a, b : in std_logic;
A    : in std_logic;
clk : in std_logic;
n_rst : in std_logic;
       a1,b1 : out std_logic);
end testr;

architecture RTL of encoder is

begin
process (a, b, clk, n_rst, A) begin
if(n_rst = '0') then
a1 <= '0';
b1 <= '0';
elsif(clk'event and clk='1') then
if(A = '1') then
a1 <= a1;
b1 <= b1;
else
a1 <= a;
b1 <= b;
end if;
end if ;
end process;
end RTL;
0071774ワット発電中さん04/10/29 23:47:02ID:JlMFQhLp
しくだい?
0072774ワット発電中さん04/10/30 02:30:38ID:cBpw+6f8
>> A and B='1'の条件となるB

'1'では?


本でも買って、最低限の記述スタイルを覚えたほうがいいね。


0073774ワット発電中さん04/10/30 06:23:32ID:D/FXDpkG
記述スタイルとして、インデントを使って見やすくしないと訳がわからなくなるよ。
0074774ワット発電中さん04/10/30 12:04:29ID:aoR2DEqS
>>70
Verilog HDLと違ってVHDLは大文字・小文字の区別はありませんので
信号Aと信号aは別の名前にする必要があります。

process文の中身は非同期リセットとクロック同期のようなので
センシティビティリストの中はclk, n_rstだけで十分です。

で、質問の「A and B='1'」の条件とは「A='1' and B='1'」という意味でしょうか。
だとしたら「A='1' and B='1'」の条件と「A='1でBはdon't care」という条件に
なりますから、簡単に書けばif文を入れ子にして、

if(A='1') then
  if(B='1') then
    …
  else
    …
  endif;
endif;

と書けばよろしいかと。

でも、しつこいようですけどVHDLは大文字・小文字の区別はありませんので
信号Bと信号bは別の名前にする必要があります。
00757004/10/30 12:56:22ID:yHiIm30z
>72-74
ありがとうございます。
入門書買って一から勉強してみます。
0076774ワット発電中さん04/11/05 01:01:44ID:WexKwaKd
VHDLの質問にはならないのかもしれないですけど
CQ出版のFPGAボードで勉強してるんですが拡張コネクタの一つのピンから
16 bitデータを受け取るにはどうPinとノードを配置したら良いんでしょうか?
へたれなので出来のいい後輩が書いたソースを情けないやら悔しいやらで
話すすりながら打ち込んでます。
誰か教えてください。。。
0077774ワット発電中さん04/11/11 14:49:51ID:dbWisPGL
>>64,65,66,67,68,69

おかげさまでなんとか解決しました。
余計な信号を削ってデザインを作り直して
バッファーツリーを多段に入れまくって
helpコマンドで何かのコマンドの説明見て
最後のほうにでてくるコマンドも片っ端から説明見て
set_fix_multiple_port_netsをcompile前に入れて
set_max_fanout の変数を変えまくって実行したら
なぜかうまくいきました。なぜうまくいったかはわかりません。
けどちょっと合成スクリプトを変えたりすると
Design "hogehoge" contains unmapped components.
とかいうメッセージが出てきたりしてこれは結局解決できませんでした。
ほんとやばかったです。
ご迷惑をおかけしました。
なにぶんひどい開発環境(むしろ私の頭脳?)なもんでして、
どんなコマンドがあるとかそういうのが全くわかりませんでした。

あと質問あるときはsageるのが常識みたいですね、知りませんでした。
すいません
0078774ワット発電中さん04/11/12 05:49:24ID:wUOQPMwr
Quartus使いの方いらっしゃいましたら誰か教えて下さい。

Tutorial見てても多層化されたVerilogのモジュールを一切使っては
いませんでしたが。やっぱ平坦なファイルしか使用できないのでしょうか?
それともプロジェクトに追加しさえすればBlock Diagram上に表現されて
ないVerilogファイルでも他のモジュール内のサブモジュールとして
利用できるのでしょうか?誰か教えて下さい。
0079774ワット発電中さん04/11/12 21:51:45ID:bejicOFZ
>>78
Verilog歴3ヶ月の俺が言うのもなんだけど、Quartusは関係無い。
Verilogの入門書でも読んでみて下さい。
「下位モジュールの呼び出し」とかっていうようなタイトルでも付いてると思います。
構文は、 「 下位モジュール名 インスタンス名 (ポートリスト) 」 って感じです。
0080774ワット発電中さん04/11/13 00:46:01ID:nTHXHrfX
>>77
> バッファーツリーを多段に入れまくって

手で入れたの?
ご苦労さん。
0081774ワット発電中さん04/11/13 09:04:57ID:nKM6sARJ
>>78

Quartusでもできます。普通です。

2ファイルくらいのコードで試してみたら?
同じディレクトリに入れて、トップをコンパイルすれば、分かるよ。
0082774ワット発電中さん04/11/13 23:27:14ID:UmZlR5Kg
>>77 >>80
状況にもよるのかもしれんが、普通は手で多段ツリーなんて入れんと思うがなぁ
クロックツリーバッファを手で一段入れたり、必要なドライブ能力を考えてI/Oセルを
自分で置いてset_dont_touchとかはやるけど

というか、変な小細工する前に文法チェッカーかけるか、詳しい人に
ソースと .synopsys_dc.setup を見てもらうべきかと
0083774ワット発電中さん04/11/14 20:36:00ID:mI/nMcZv
ホビーユースでVerilogをやりたいんですけど、Xilinxのスターターキットあたりを買えば大丈夫でしょうか?
0084774ワット発電中さん04/11/14 23:03:04ID:EfVrCvdC
>83

とりあえずVerilogを覗くだけなら

ALTERA Quartus II Web Edition http://www.altera.co.jp/
XILINX ISE WebPack http://www.xilinx.co.jp/

(>2 より抜粋)
書いたVerilogのコンパイルとシミュレーションまで無料できるから、
とりあえずこれためすべし。

評価ボードに手を出すのはそのあとでいいかもよ?
評価ボードもピンキリだし、人によって欲しいボードも違ってくるだろうから・・・

とりあえず買ってみて考えるってのも俺は好きだ! ホビーユースだしね
仕事だったらとりあえず買うなんてやったら殺されるなきっとw
0085774ワット発電中さん04/11/15 00:09:12ID:58mcQWc1
>> 84
ありがとうございます。
言葉が足りなかったみたいですみません。

とりあえず、Verilogは昔大学でやってて、
1〜5万ゲートぐらいの設計をヘタレなりにやってたんですが、
久々にやってみたくなってw
当時、ソフトとボード与えられて、適当にやってたんで、
自分でやるとなると何を買えばいいか分からないんでお聞きしたいんですが、
Xilinxのスターターキットは論理合成から実体配線まで制限なしにできるんでしょうか?
調べたんですが、いまいち分かりません。
別に効率の良い合成は必要ありません。
Xilinxのスターターキット程度のものを買っておけばしばらくは遊べますでしょうか?
0086VHDL入門者04/11/15 12:34:03ID:Ro2/ofki
ちょとVHDLについて教えてもらいたいことがあるのですが…
CASE文で条件式中のビットの一部に不定のXを入れた場合は
どうなるのですか?
例えばwhen"011X"=>PORT1<="0010"
とした場合、0111及び0110両方で条件が成り立つのか、それとも
Xは0か1どちらも問わないものだとソフトが判断して0111か0110の
どちらかに固定されてしまったりするのですか?
教えてください…
0087774ワット発電中さん04/11/15 14:21:07ID:HGhJspiK
>86
CQ出版のFPGA評価キットやxilinxの評価キットのISE(webpack)で実配線(フロアプラン作成のこと?)まで可能です。jtagで実機に書くことも可能です。

来月のデザインウェーブマガヅンにspartan-3が付いて2000円だそうです。
周辺をちょっと自力で作らなくちゃいけませんが、1万円程度のスターターキットを
買ってHDLだけの開発にがんがるか、DWMを買って半田付けからがんがるか迷ってください。

仕事で800万ゲート×4って言う開発してましたけど、この規模になったらfoundationかなと思いますが、それ以外ならフリーツールで十分かと
思います。

個人的にはステートマシンの記述が楽チンなvisualeliteとかsimplifyproとかがフリー版(機能限定でもいいから)で出てくれれば裾野が広がると思うんですけどねえ・・・

0088VHDL入門者04/11/15 16:53:36ID:Ro2/ofki
答えになってませんYO!!
0089774ワット発電中さん04/11/15 17:38:20ID:o3waSicM
http://www.cqpub.co.jp/dwm/next_issue/pcb5.htm
0090774ワット発電中さん04/11/15 21:43:08ID:X2lqkume
>>86
素直に考えれば、固定しない方が何かと都合がいいから、そうなると思うけど・・・・
実際エラー出ない? とある本では「書けないからifでやる」とある。

0091774ワット発電中さん04/11/15 22:11:30ID:j8LiZ9Yi
>>86
う〜ん・・・、そう書きたいの分かるけど、コンパイラとかによっては変な事起きるかも
しんないから俺はやらない。
経験少ないからあんまり自信無いけど、Q2 はダメだった気がする。
00928304/11/15 22:21:40ID:58mcQWc1
>>87,89
どうも、親切にありがとうございました。

私程度の人間だとフリーソフトで十分みたいですね。
半田ごてでがんがるか、どうするかもうちょっと悩んでみますw
00939104/11/15 22:23:49ID:j8LiZ9Yi
補足、かえって見難くなるかもしれんが、俺の場合こんな記述したりしてる。
if の方がマシかもしれんが・・・。

case inp_d(3 downto 1) is
  when "011" => port1 <= "0010";
00949304/11/15 22:38:26ID:j8LiZ9Yi
し、しまった。下げ忘れた。 orz
0095774ワット発電中さん04/11/15 23:05:02ID:8s3R1jw3
>>93
011Xの時は最下位ビットは見ないけど、
他の条件では4ビット全部指定有なんて
場合は記述がごちゃごちゃしそうかも。

0096774ワット発電中さん04/11/15 23:24:30ID:Frcp5IfW
> とある本では「書けないからifでやる」とある。
VHDLの仕様とか書いてある
0097774ワット発電中さん04/11/15 23:28:14ID:piNJXvJA
質問する前にVHDLの仕様書や参考書ぐらい調べるのが礼儀じゃないのか?
只のシミュレータもネットで拾えるんだから幾らでも現実に試す手段もあるのに
なんでやれば出来ることを質問するのか?
頭悪すぎる。
0098774ワット発電中さん04/11/16 17:52:38ID:mHpeKD1Y
いいじゃねぇか、ネットで聞いて教えてくれる人が居るなら手間省けるし。
答えるのが嫌なら無視しろよ。誰もお前に教えてやれとは言ってない。
0099774ワット発電中さん04/11/16 19:15:45ID:KYTfYzfB
しかしまあ、あの質問内容だったらコンパイルするなり
コンパイルが通るならシミュレーションで走らせれば
すぐわかりそうなものだけどね。
0100774ワット発電中さん04/11/16 20:42:14ID:33hBiAMN
そんな香具師にFPGAは使いこなせねべ
0101774ワット発電中さん04/11/17 21:18:46ID:yyLVKGbC
動いたら勝ち
0102774ワット発電中さん04/11/18 00:09:15ID:HJWhAI8f
でもたいていは動かないしデバッグもできないので負け
0103774ワット発電中さん04/11/18 01:48:04ID:vvRIFlue
俺も初めの頃、ライブラリ入れれば、ifでstd_logic_vectorを右辺整数で比較等できるのに
caseでは比較できない点に、子一時間ペリー著など調べたことがあった。

今となってはトラブルの無い冗長な記述命。。
逆に文法やパーサの推定なんぞで悩む時間が欲しい。。



0104774ワット発電中さん04/11/18 14:18:23ID:AWHw443v
比較演算子は多重定義可能だが、予約命令は多重定義できないから?
0105774ワット発電中さん04/11/19 22:51:30ID:lVfxyT21
VHDLで質問なのですが、
generic文でフレキシブルなモジュールを作ったんです。
で、
generic ( WIDTH : integer );
port ( DATA : in std_logic_vector ( WIDTH-1 downto 0);
:
:

とかやりまして。
で、WIDTH=1にして、std_logicを繋いだら"型ちがーう"といわれまして。

std_logic_vectorにstd_logic繋ぐなよといわれました。ごもっともです。

じゃあってことで

signal A : std_logic_vector(0 downto 0);

はやっぱりはじかれたわけで。
泣く泣くWIDTH=1バージョンを個別モジュールで作ったんですが、なんだか
スマートじゃないなぁと。みなさんはこういう状況でどうします?
0106VHDL入門者04/11/20 16:03:33ID:9bzit/Ah
あの〜実際のところ、Web PackのVHDL記述した回路→実際の回路への変換
性能はどうなんでしょうか?
case文で記述すると、本来なら数個のロジックで出来た筈の回路が巨大に
なってしまいます。これは論理圧縮の性能が悪いで結論付けられるので
しょうか?
0107774ワット発電中さん04/11/20 16:06:17ID:3+/xvP4k
>>106
まずそのVHDLの記述をうpしてはどうでしょうか?
0108774ワット発電中さん04/11/21 01:11:56ID:CvmGB45X
>>105
なんのツールではじかれたのでしょうか?
メッセージはなんてでたのでしょう?
010910504/11/22 20:41:41ID:yuDkLbxk
>108さん
ツールはModelSimPE 5.5fです。
メッセージは以下のようなものでした。
# ERROR: C:/.../xxx.vhd(yyy): Type error resolving index expression.

いろいろと読んだりぐぐったりしてはいるんですが、
C++みたいにモジュールの多重定義ができたりはしなさそうですね>VHDL,Verilog
なんか悔しい。
0110774ワット発電中さん04/11/22 23:29:01ID:3fUDtwhF
>>106
仕事でも出張先とかでWEB版使ったりするが、圧縮率が悪いって気になった事無いけどなー。
case文の記述が悪くて変な回路合成してたりしない?
0111774ワット発電中さん04/11/23 00:30:48ID:Uu37W0gn
無料のWEBPACKも高いISE FOUNDATIONも、論理合成エンジンは同じXSTだから
合成結果は同じだと思うのだが。

実際に、200kくらいの設計を
WEBPACKとFOUNDATIONの両方で合成させてみて、
出来上がったbitファイルを比べてみると、全く同じになった。
0112774ワット発電中さん04/11/23 01:58:01ID:jDHJzlXQ
てことは対応デバイスの違いぐらいなのかぁ・・・
ホビースト的には嬉しいけどw

なんかつくりてー でも時間が無い・・・くそぉ
0113774ワット発電中さん04/11/23 02:41:25ID:+8rPSg/0
Coregenが違うんじゃないの?
ISE もQuartusも ReedSolomonも Turbo符号もエンコーダ、デコーダともワンタッチで出来上がる。
これさえあればほとんどの人はちょこちょこしたグルーロジックさえ組めば何もしなくていいんじゃないの?
0114774ワット発電中さん04/11/23 11:24:47ID:Uu37W0gn
確かに。違うのはCoregenとFPGAエディタと使えるデバイスの種類だけだと思う。
FPGAエディタは、WebPACKだとCLBの配置配線が見えるが、有料版だとCLBの中身まで見える。
エディタとはいっても、配置配線を眺める以外には使わない。
それ以外のアクセサリは使ったことがない。
0115774ワット発電中さん04/12/05 23:27:03ID:D48nht+a
else だ 馬鹿!
ifじゃねえ
0116おっくん04/12/08 01:32:41ID:o90pAHBO
LFSR回路のモジュール教えてもらえませんか?4ビットのやつ記述したんですが、テストベンチの方のエラーが消えなくて…
0117774ワット発電中さん04/12/08 02:30:45ID:3/jHyzfD
フィードバックのところだろ?
そこは非同期にすること。
0118おっくん04/12/08 17:32:54ID:o90pAHBO
すいません自分バカなんで…もう少し詳しく教えてもらえますか??
0119774ワット発電中さん04/12/08 23:38:18ID:h3Q60i2F
assign fb = sftreg[2] ^ sftreg[1] ^ sftreg[0];

always @(posedge clk ) begin
sftreg[3:0] <= {sftreg[2:0], fb};
end
0120774ワット発電中さん04/12/09 13:12:05ID:PKxLhrMJ
すまんが、どこが非同期なのか詳しく
0121774ワット発電中さん04/12/09 17:20:02ID:Kr5JHULq
always @(posedge clk ) begin
sftreg[3:0] <= {sftreg[2:0], fb};
fb <= sftreg[2] ^ sftreg[1] ^ sftreg[0];
end
と書くな!ということでは?
0122774ワット発電中さん04/12/09 17:30:11ID:XFlGTW3n
fbの代入部分にラッチでも出来ちまうのかな?
0123774ワット発電中さん04/12/10 02:50:22ID:ZeW55erk
>>122
禿げしく勉強不足
0124いつでもどこでも名無しさん04/12/10 10:49:52ID:L1pP5+7W
always @(posedge clk ) sftreg[3:0] <= {sftreg[2:0], ^stfreg[2:0]};

でいいじゃん。

0125774ワット発電中さん04/12/10 11:04:56ID:9pKzODtz
>>124
???
0126774ワット発電中さん 04/12/10 14:26:49ID:FTUB//os
ちょっと聞きたいのですが、VHDLで角度から三角関数値を
計算するときはどうすればいいのでしょうか?
テーラー展開くらいしか思いつかなかったのですが、別の方法があるのでしょうか?
よろしくお願いします。
0127774ワット発電中さん04/12/10 14:32:19ID:ggxWYBJE
表
0128774ワット発電中さん04/12/10 15:00:30ID:OiC2Pd3i
FPGAなら内部メモリをROMとしてテーブルを置くのが早い。
あとは超簡単なDSPを手組みして教科書に載ってるのアルゴリズムを
色々と試してみる。
0129774ワット発電中さん04/12/10 15:47:23ID:h8OSbmQL
こーなったらわかる人はLFSR回路の全モジュールのっけて下さい!!テストベンチのモジュールも(>_<) よろしこ
0130774ワット発電中さん04/12/10 16:54:16ID:hHajYQvZ
>>126
FPGAで三角関数計算するのはCORDICが良かった。テーラー展開なんか目じゃない
CORDICでぐぐると結構サイトがある
0131 ◆YMO/ALTERA 04/12/10 17:42:32ID:05T4jUYi
いま考えると、CORDICはFPGAに実装しやすいね。
大昔68kに実装したときにバレルシフタがうらやましかった、マジ。


でも、用途に依るがテーブル引いて線形補間で問題なかったりしない?
0132774ワット発電中さん04/12/10 17:56:05ID:hHajYQvZ
テーブル+線形補間でほとんどの場合問題ないとは思うが、昔メモリが高かったころはcordicは重宝したと思う
今でも一度身に付けると一生もんだよ。といっても、便利がいい方法だけど、あまり知られていないんだよね
日本語の本が一松信先生のしかないし、この本がまたわかりにくいってことはあるけどね
0133774ワット発電中さん04/12/10 19:26:56ID:VJM7nC7A
math_real
0134774ワット発電中さん04/12/10 20:07:34ID:dDoj+5Na
組込み系ソフトウェアなんかでも、三角関数を テーブル参照+線形補間 で済ませてしまえる
場合が多い。 FPGAのアプリだと尚更その傾向が強いような気がするんだけど・・・
FPGA使った計算で、そこまで精度が必要な用途って何か聞いてみたい。
0135774ワット発電中さん04/12/10 20:20:22ID:znfqrlxa
↑ふむ、電圧位相と電流位相差比べて、どっちにどれだけ電気が流れているか調べるためだとおもた
で、ATANとSQRTが必要で、平方計算はどうしてもどこかでやらなきゃいけないので、えいやっとまとめてCORDICした
013613404/12/10 20:44:04ID:dDoj+5Na
>>135
あ、なるほど、計測用途ね。 レスサンクス。
0137774ワット発電中さん04/12/10 21:00:49ID:tGVCILbQ
verilogを使わないといけないことになったんですけど
入門用のおすすめの本かwebページありませんか?
0138774ワット発電中さん04/12/10 21:28:52ID:sFg4l3eg
cordicか
http://www.andraka.com/files/crdcsrvy.pdf
これでいいの?
あとIEEE 1364 Verilog2001 spec 転がってるとこない?
手に入れた奴はフォントがないのかFigのタイトルとかがちゃんと表示されない。
2001になってめちゃくちゃ便利になってるジャン。見落としてた・・・
0139774ワット発電中さん04/12/10 21:48:31ID:znfqrlxa
↑こんなのです。他にもいくつかあった
日本語でcordicの原理を解説したのもあった。(今年の7月ごろ)
0140 ◆YMO/ALTERA 04/12/10 21:56:50ID:05T4jUYi
>>132
さっきぐぐったときは、読めば実装できるCORDICの文献が、
日本語のモノで多数転がってった。

当時、私も一松先生の教科書を見て実装しますた。
0141774ワット発電中さん04/12/10 22:27:59ID:znfqrlxa
漏れは当時8008に実装しようと頑張ったが、読解力が足らなくてできなかった
実は、いまだに良くわかってないのだが。汗

0142超初心者04/12/10 22:41:14ID:mA4gxR8R
cosineのテーブルが欲しいんですけどVHDLってテーブルは(変な言い回しになりますが)1個ずつ
書かなきゃいけないんでしょうか?ええとつまりc言語の配列見たいに
array[N] = {....}みたいな風にすっきり書けないんでしょうか?教えて下さい。。。
0143774ワット発電中さん04/12/11 00:45:23ID:PWbGlx7X
ここの配列タイプ
ttp://www.picfun.com/vhdl36.html
014412604/12/11 02:04:34ID:eGzACmSM
CORDICっていうのがあるんですね。
ぐぐったらたくさん出てきました。
1周期を1024分割したのでROMでもいいのですが、計算法があるというのがわかっただけでも勉強になりました。
ありがとうございました。
0145774ワット発電中さん04/12/11 09:51:24ID:HoQLAUdK
↑CORDICは1970年代に当時の低速デバイスのころに開発された技術です
それがFPGAになってまた活躍しているのは喜ばしい限りです
ぜひ、活用してください
0146774ワット発電中さん04/12/11 13:34:40ID:grQkrB75
>>142
昔、寺のEABにテーブル突っ込むのに、C言語(MS-C かなり古い!)でテーブル記述した事あるぞ。
Cで書いてコンパイルして、HEXファイルをEABに喰わせれば良い。
LEへテーブル実装するなら、この方法は無理かもしれないが・・・
014714604/12/11 13:38:00ID:grQkrB75
あれ、すいません。 話の内容完全に外してる。orz  >>146 のカキコは無視して下さい。
0148774ワット発電中さん04/12/11 15:17:41ID:BFzv6oph
> >>50
> http://ppg.teldevice.co.jp/home/main/top/jtag-blazer.html \37,800-
> PL-USB-BLASTER $300.00

USB Blasterヤフオクでてるね。
http://page12.auctions.yahoo.co.jp/jp/auction/p9425997

うーん、個人で持っとくのも悪くないか?
0149774ワット発電中さん04/12/11 15:43:05ID:M4GLMEfx
USBのJTAGだったらいいのがあるぞ
バンダリスキャンていう書きこみ以上のことができるみたいだし
http://www.nahitech.com/smartjtag.html
0150774ワット発電中さん04/12/11 20:18:23ID:XBQ7u2k8
あの・・その・・JTAGはもともとバウンダリスキャンで
使うものであって・・・ゴニョゴニョ・・・
0151774ワット発電中さん04/12/11 23:02:20ID:M3VuMh3A
http://science3.2ch.net/test/read.cgi/denki/1102747543/14
HoQLAUdKは有効数字と有効桁が同じものだと知らなかった哀れな高卒。
0152超初心者04/12/12 14:56:31ID:h09vxZHx
>>PWbGlx7X
レス遅くなって申し訳ありません。ありがとうございます!
0153超初心者04/12/12 14:56:52ID:h09vxZHx
>>143
レス遅くなって申し訳ありません。ありがとうございます!
0154774ワット発電中さん04/12/12 14:59:07ID:FL5vsRtn
>>143
レス遅くなって申し訳ありません。ありがとうございます!
0155774ワット発電中さん04/12/15 22:21:22ID:wlA48S0O
どういたしまして
0156774ワット発電中さん04/12/16 07:09:35ID:Zu0mp3yo
おすすめのVHDL←→Verilog変換ツールってありますか?
CQ出版のやつとXHDLを試したけど、どちらも完全対応じゃないみたいで。。
0157774ワット発電中さん04/12/16 12:22:59ID:sQv+TCi0

>おすすめのVHDL←→Verilog変換ツールってありますか?

ロハのやつなら漏れも欲しいぞ

0158774ワット発電中さん04/12/17 04:41:20ID:S1Sx6LQu
VHDLで専用回路(固定小数点)を作っている者で、割り算
をしないといけないのですが問題があって困ってます。
2で割ったりするだけならビットシフトで十分ですけど、
除数(分母)が被除数(分子)よりも大きい場合は実数で
考えれば1より小さい値ですが固定小数点なので0になって
しまいます。なので、浮動小数点演算でやろう考えてますが、
回路が大きくなってしまうことが目に見えてます。
何かよい考えがあれば教えて下さい。
0159774ワット発電中さん04/12/17 07:35:34ID:enKCZRg3
>>158
それはHDLで書く前の仕様設計の話だろ かなりスレ違い

乗除算以外に加減算も必要なのか?
乗除算だけなら対数に変換して計算するって手があるぞ

ま、演算する目的がわからなきゃどうにもならん
0160774ワット発電中さん04/12/17 08:23:04ID:2rdgsE8d
>固定小数点なので0になって しまいます。

そりわ、固定小数点ではなく「整数」でわ・・・
0161774ワット発電中さん04/12/17 09:04:41ID:BF/KcTFd
実体は整数演算だけども、ある場所に小数点があると
見なせば固定小数点演算と見なせる。

たとえば、
0001+0011 = 0100
を整数と見なせば1+3=4
下から二桁目と三桁目の間に小数点があると見なせば
0.25+0.75=1.00
0162774ワット発電中さん04/12/17 19:40:57ID:8q/QfZYt
>>157
とりあえずこの辺を試してみるべし。
ttp://www02.so-net.ne.jp/~morioka/v2v.htm
0163超初心者04/12/24 08:28:05ID:5Um8eo73
type int_array is array (0 to 64) of integer;
subtype wave is std_logic_vector(31 downto 0);
type ROM is array (0 to 64) of wave;
signal data: int_array;
constant cos : ROM := (省略);
これでcosはテーブルとして使って
a <= ar(1) * conv_integer(cos(1));
というような使い方は出来ないんでしょうか。これをすると
object cannot be indexed
because it has small_int type rather than array type
と出てきてしまいます。というかそもそも conv_integer(A)に対して
乗算をすること自体文法エラーみたいですが。。。
0164超初心者04/12/24 08:53:19ID:5Um8eo73
あ間違えた。ar(1)じゃなくてdata(1)です
0165774ワット発電中さん04/12/24 14:16:12ID:QntLHWVC
>>164
a の型は何?
aもinteger型なら問題はなさそうだが… (論理合成は出来ないと思うけど)
0166774ワット発電中さん04/12/24 15:52:25ID:baucrM1p
>>158
精度はどれくらい欲しいのかな?
0.1まで保証したかったら単純に10倍してから割ればいいだろう。
回路を簡単にしたいのであれば16倍して割る値をちょっと弄ればOKだね。

結果をどういった形で使いたいのかわからんがもう少し頭をやわらかくしたほうがいいぞ。


■ このスレッドは過去ログ倉庫に格納されています