【Verilog】記述言語で論理設計 Project2【VHDL】
■ このスレッドは過去ログ倉庫に格納されています
0001792= ◆YMO/ALTERA
04/09/03 12:21ID:p+kby74r安価で入手できるようになってきました。
このスレが目に入ったおまえ! HDLで何か作って遊んでみませんか。
日曜工作のHDL書き、学生さん、プロの方、カキコお待ちしております。
関連情報は >>2-10 あたり。
前スレ
【Verilog】プログラムで作る回路 Project1【VHDL】
http://science3.2ch.net/test/read.cgi/denki/1072330555/l50
0497774ワット発電中さん
05/02/19 20:37:28ID:m6nitJOh多くなったよな。
0498774ワット発電中さん
05/02/19 20:45:59ID:PajfRhvw0499774ワット発電中さん
05/02/19 20:51:29ID:X3nOqKqJ「=」が2個なのにワラタ。さすがVerilogスレ。
0500774ワット発電中さん
05/02/20 00:03:37ID:0Ds5C6THその返り値は真か偽か。
0501774ワット発電中さん
05/02/20 00:50:39ID:bNKh22n9ついでに、(491 == 495) && (491 == 497) も真。
0502774ワット発電中さん
05/02/20 01:55:28ID:hZNQrB+R「=」が2個というのはVerilogに限ったこっちゃ無いだろ。
もっといろんな言語を勉強すべし。
0503774ワット発電中さん
05/02/20 03:57:44ID:SlW2KIp5単に2ちゃんで”=”と書くのが一般的だからだろ。
「こいつはVerilog以外の言語でも”==”が使われてるのを知らないんだ!そうに違いない!!」
って浅はかで偏った奴だ。(w
0504774ワット発電中さん
05/02/20 04:46:25ID:Hrq/jZPm0505774ワット発電中さん
05/02/20 06:50:30ID:62Jkgl2lんなのあったっけ? VerilogもVHDLもまともにわからんのですが
解説お願いします。(C++、Java、BASICなどはわかります)
0506774ワット発電中さん
05/02/20 12:59:18ID:ISRILzfO>>10'd497の俺が言うんだから間違いない。
0507774ワット発電中さん
05/02/20 15:25:43ID:CYeF6uYfすいません。あまり問題ないかなーと思って勝手に思って書き込まなかったんですが
リアルタイムです。。。音声からADCした44.1kHz,16bitPCM信号(モノラル)
を33Mhzのクロックがある1万ゲートの回路でFFTしようと考えてました。
それで32POINTだとhttp://momonga.t.u-tokyo.ac.jp/~ooura/fftman/ftmn2_1.html#sec2_1
ここにのってるある長さのFFTを半分の長さにしてやる(データの半分を
虚数部に入れてFFTする)って方法を考えてたんですが16POINTだと
波形になるんだろうか?とか悩んでます。33MHz一万ゲートだと
やはり無理でしょうか。。。FFT回路で最終的にはバンドパスフィルター
みたいな事をしたいなぁと考えてます。。。
0508774ワット発電中さん
05/02/20 15:51:46ID:LwrlHcWlstd_logic_vector'("00" & hoge( 5 downto 0 ))
でもエラーになるのかな?
stringかbit_vector辺りでオーバーロードしてない?
0509774ワット発電中さん
05/02/20 16:14:51ID:LYDFFhPfバンドパスフィルターなら
FFTではなくてFIR フィルターでは問題あるのですか?
乗算器のあるFPGAなら簡単に組めると思います。
0510774ワット発電中さん
05/02/20 16:22:29ID:CYeF6uYfああ、すいません。大学でより複雑な回路を組まされるんですがその前の
演習問題ってことでやってます。Firは別の人が先に作ってしまったので
同じものをやるのもなぁってことでFFTをやろうと思いました。
0511774ワット発電中さん
05/02/20 16:23:01ID:CYeF6uYf>>484 -> >>509
0512774ワット発電中さん
05/02/20 17:39:01ID:6YJdgH7hへえ、別人にしては書き出しの文体がまるで同じ。
奇遇なことがあるもんだねぇ。へえ。( ´,_ゝ`)
> 491 :774ワット発電中さん :05/02/19 13:11:56 ID:w9pazgcN
> 最近490みたいなsage原理主義者つうか、
> 497 :774ワット発電中さん :05/02/19 20:37:28 ID:m6nitJOh
> >>490みたいにちょっと注意されるとキレるニワトリみたいな奴
0513489
05/02/20 21:05:10ID:YwwvT9HMレスありがとうございます。
明日会社いって試してみます。
オーバーロードは使っていないので(プロジェクト全体でprocedureはこれ1つだけ)
たぶん影響はしていないと思います。
0514774ワット発電中さん
05/02/20 22:10:44ID:LwrlHcWl本来 "00" & hoge( 5 downto 0 ) でもOKであるべきだと思うけど、
エラーの内容からして、"00"がstd_logic_vectorと認識できないような気がする。
0515774ワット発電中さん
05/02/21 23:39:15ID:XRKE4dzJ>>489 のような状況になるかも。ただエラーメッセージが489とは異なると思うけど。
その場合には procedure (a : in std_logic_vector) に変えてみるとか。
0516774ワット発電中さん
05/02/22 20:06:42ID:GHiFVA4H0517774ワット発電中さん
05/02/23 03:43:07ID:eRK4+v3c>>1に何か作って遊んでみませんか、とありますが
例えばどんな面白いものが作れるんですか?
0518774ワット発電中さん
05/02/23 16:19:06ID:UZuM1Tn4死のう
||
∧||∧
( / ⌒ヽ
| | |
∪ / ノ
| ||
∪∪
0519774ワット発電中さん
05/02/23 17:23:45ID:UZuM1Tn40520774ワット発電中さん
05/02/24 23:44:35ID:WTK8MSBOそりゃPONGだろう。
0521774ワット発電中さん
05/02/25 09:43:45ID:qRViqlEUあれ?死ぬんぢゃなかったっけ?
0522774ワット発電中さん
05/02/27 00:55:52ID:5QzVmkDwしのう、こうしよう。
0523774ワット発電中さん
05/02/28 19:50:21ID:JQ/IxlAG亀レスですまん。俺はトリップ検索基板に仕立てて遊んでる。
0525774ワット発電中さん
05/03/05 23:55:33ID:+r6YvIeG符号付の乗算なんですが、
例えば、12bit同士の乗算で、(積は24bitで宣言)
積 <= 805 * 002(MSBは符号桁)
としたときに、modelsimで「00100a」が返りました。
んでも、805のほうはMSBに立ってるので、期待値は「fff00a」です。
気が向いてMSBを32bitまで拡張したら期待値が出ました。本来はどう記述すべきでしょうか。
宜しくお願いします。
0526774ワット発電中さん
05/03/06 01:49:09ID:xbwFXUtr0527774ワット発電中さん
05/03/06 11:47:46ID:Gqq2Ffpe> 符号付の乗算なんですが、
Verilog-95だと、regとかビット数指定の定数は全部unsigned扱いなので、
記述側で符号拡張してやるとかしないといけないんじゃないかな。
Verilog-2001だと、reg signed と宣言するか、
定数なら 12'sd805 とかみたいに s をつければいけるはず。
規格見ただけで、試してないからわからん。
0528774ワット発電中さん
05/03/06 13:17:49ID:bCe6kmA8thx!!!
>Verilog-95だと、regとかビット数指定の定数は全部unsigned扱い
うわぉ、そうだったんですか!
では、32bit拡張は対応手段としては間違ってはいなかったのか…
>Verilog-2001だと、reg signed と宣言するか、
定数ではないので↑これを試してみます。
ありがとうございました!(感涙
0529525=528
05/03/06 13:19:25ID:bCe6kmA8明日試したら報告します。
0530774ワット発電中さん
05/03/06 16:09:22ID:engYMn/nシフトと加算でやる乗算の場合、乗数(805*002の002の方)が負の時は、
それでは合わないと思っていたが…
0531774ワット発電中さん
05/03/06 20:24:31ID:cfGiKREI符号拡張の記述は 具体的に どうやってますか?
Verilog1995でも $signed(12'h805) * $signed(12'h002)で可みたいですが、
他の方法でしょうか。
そういえば、$signed( )の値って 32bitになるのかな?
いかん、仕様を知らないまま使っている… (爆)
>>530
符号拡張するビット数が足りないと、合わない罠。
たとえば (- 0x7FB) * (- 0x7FB) = 0x3FB019 の場合、
32bitまで拡張してから unsigned の乗算なら、
FFFFF805 * FFFFF805 = FFFFF00A 003FB019 で、下位32(24)ビットを取れば正解。
16bitまでしか拡張しないと、
F805 * F805 = F049 B019 なので下位16bitは合ってるけど[31:16]はNG。
Win付属の電卓でも叩いて 試してみなはれ。
(表示/関数電卓、16進、QWORDの指定をお忘れなく)
((2^16) - A) * ((2^16) - B) を展開して、
= (2^32) - (2^16)*(A+B) + (A*B) と考えると、わかりやすいかな?
0532774ワット発電中さん
05/03/06 22:14:37ID:bCe6kmA8被乗数(805*002の805の方)にだけマイナスが来るのですが、
とりあえず符号拡張で期待値は出てました。。
マイナス乗数ではNGになる? 後の遺恨とならぬよう確認しとくとします。
>>531
>符号拡張の記述は 具体的に どうやってますか?
思いついたまま適当に書いてたので、A*Bの直前で
= (被乗数[12])? {20'hfffff,被乗数} : {20'h00000,被乗数};
などと書いておりました。
>Verilog1995でも $signed(12'h805) * $signed(12'h002)
この書き方、知りませんでした。。(verilogはもう○年やってるのに…)
テストベンチでしか$使ったこと無い…
そうそう、他に25bit*26bitの計算があって、こちらは64bitまで拡張しないとNGでした。
今、win電卓のQWORDで確認しました!(手元の関数電卓は…8桁までしかないorz)
>((2^16) - A) * ((2^16) - B) を展開して、
> = (2^32) - (2^16)*(A+B) + (A*B) と考えると、わかりやすいかな?
わかりました!(10分間考え込んだけど)
ありがとうございました。
0533531
05/03/06 22:27:35ID:cfGiKREIごめんなさい、ミスってました。$signed( )は、Verilog2001から みたいでした。
1995時代の教科書には載っていなくてあたりまえです。 出直してきます…
0534774ワット発電中さん
05/03/06 22:38:46ID:bCe6kmA8いえいえ、丁寧にthxです。
俺の本、$signedについて書かれてませんでした…orz
みんなどんな本使ってんですか…(この議論は何回も出てますが)
0535525
05/03/07 11:00:34ID:Znwft+K8a = 12'h805
b = 12'h002
�@ベタ書きa*b=00100a ng
�AMSBを32bitまで拡張して a'*b'=fff00a ok
�B$signed()で a*b=fff00a ok
�CMSBを32bitまで拡張して(12'h805)*(12'h802)=3fc80a ok
�DMSBを32bitまで拡張して(12'h005)*(12'h802)=ffd80a ok
�E入力a,bをreg(wire)signed宣言しておくと、�@でもok
signed宣言で逝きたいと思います。
ありがとうございました。
0536774ワット発電中さん
05/03/07 11:00:51ID:YUoHpx7p>思いついたまま適当に書いてたので、A*Bの直前で
> = (被乗数[12])? {20'hfffff,被乗数} : {20'h00000,被乗数};
>などと書いておりました。
符号「拡張」の記述なので、
意味的にも、出来上がりの回路イメージ的にも
{20{A[11]}, A} って書くのをおすすめ。
Verilog2001で書くようになってからは
この辺のとこは気にしなくなってきたけどね。
0537525とか
05/03/07 15:50:28ID:Znwft+K8>{20{A[11]}, A}
こんな書き方があることすら知らなかったです…orz
欲しかった書き方です!thxです
0538774ワット発電中さん
05/03/07 23:51:34ID:LNoYKNzM0539774ワット発電中さん
05/03/18 01:30:46ID:2eZlcuhs2001の規格をネットで探すとヨロ氏
キャプションのフォントがエラーで読めない・・・鬱
0540774ワット発電中さん
05/03/20 00:11:07ID:tOeRyS3Athx!!
2001について書いてある本…ってどんなんあります?
探してくる〜
0541774ワット発電中さん
05/03/20 02:21:39ID:tOeRyS3A0542774ワット発電中さん
05/03/20 11:05:41ID:OX3JXprh先日、CQ出版の「FPGAで学ぶ・・・」という
ボード付きのテキストを買ったのですが
ひとつ分からない事があるのでおしえてください
ボードには電源スイッチ、リセットスイッチがなく
コンパイル後DLして動作を確認したあと
自前で用意したACアダプタのジャックを
ひっこ抜いて終了、という手順で使っているのですが
こういうボードの扱いとしては正しいのでしょうか?
(いきなり昇天しそう・・・)
0543774ワット発電中さん
05/03/20 12:25:41ID:ariYRaYE2001について触れてる日本語本で俺が知ってるのは小林の改訂版の付録部分
あと英語なら、
IEEE1364 Verilog-2001.pdf
0544sage
05/03/20 20:13:32ID:XoBTZJwB俺も買っているけれど、FPGAに対するパワーオンリセットなNPROGRAMピンの
プルアップ抵抗でリセットからCR時定数でリセット解除されているからOK.
ユーザのリセットに関しては外部スイッチでリセットできるからそれでヨシ。
電源スイッチが無いのは痛いけれど、まー基板はオマケだからね。
>>536
部外者だけれど、俺も勉強になった。
ぜひ「FPGAで学ぶVerilog-HDL/2001」を書いてケロ。
0545774ワット発電中さん
05/03/21 00:08:29ID:l1B5NFcCありがと!
0546774ワット発電中さん
2005/03/26(土) 16:29:47ID:mxqPkEM6ありがと!
0547774ワット発電中さん
2005/04/07(木) 00:39:34ID:9xCEI+UyICの入手性、コスト、容量の面からザイリンクスを使おうか
考え中。でもザイのフリーツールでの波形エディタがQ2や
MAX+2に比べて使いづらくてしょうがない。
でもある奴から、言語で入れればかなり楽と聞いた。
そこでこれを勉強したいのだが、いい本やツールがあれば
教えてほしい。
0548774ワット発電中さん
2005/04/07(木) 03:40:12ID:uZ8+KOh70549774ワット発電中さん
2005/04/07(木) 13:28:08ID:WPGzVTccISEに乗せかえ
VHDLならできるっしょ。
coregen使うと、Aに戻れない・・・
0550774ワット発電中さん
2005/04/08(金) 14:46:02ID:Y8DuNm2U初めて書き込むとき、もしくは、未使用だった領域に書き込むとき
ってものすごく時間かからない?
iMPACTがハングしたと思って、強制終了させて、再書き込みしたら
その時点までのプログレスメーター位置までは高速で書き込めるようになったけど
それ以降がやはり遅いです。
0551俺様 ◆f0ugTrYQRI
2005/04/08(金) 19:23:45ID:j3EckZzXボクチンのは15秒以内で書き込み終了するでちゅよ!
0552774ワット発電中さん
2005/04/09(土) 21:56:50ID:4kmfxmZ9ショボいノートPCだったけど。
0553774ワット発電中さん
2005/04/09(土) 23:00:12ID:xyXhrluBキミの言うとおりだったよ。
配線が間違ってた。
逝ってきます。
0554774ワット発電中さん
2005/04/10(日) 00:39:47ID:tgcv7tX5波形エディタつかってテストベンチつくるんじゃなくてHDLで直接テストベンチ作って、modelsimでシミュレーション
するのがよっぽど効率的だよ。波形エディタ使ったことあったけどこりゃあかんとすぐオモタよ。
これはQ2でも同じだけど。
>>549
ほぼ等価なのがMegaWizardにない?スンナリとは戻れないけど。
0555774ワット発電中さん
2005/04/10(日) 01:00:34ID:6N8QjS9mFIRとかCORRとかあたりは無料(ISE製品版に付属)なんだけど、
Aではフィルタとか有料じゃなかった?
まあ、仕事で使うなら買うけどさ。
0556774ワット発電中さん
2005/04/11(月) 12:13:19ID:KxEx39FOttp://www.altera.co.jp/products/ip/design/basesuite/ip-basesuite.html
0557774ワット発電中さん
2005/04/11(月) 17:06:02ID:12+TlMsi0558774ワット発電中さん
2005/04/12(火) 12:20:44ID:tLxUp4KR資格手当て申請できるんだけどなぁ〜
0559774ワット発電中さん
2005/04/13(水) 00:35:32ID:l0pQ9CHPttp://www.hdlab.co.jp/service/esa/esa.html
公的資格じゃないけど・・・
0560774ワット発電中さん
2005/04/14(木) 13:10:15ID:FMaL+f9Eへぇ〜
受けた香具師様いらっしゃいますか?
0561774ワット発電中さん
2005/04/14(木) 20:14:19ID:uRHFwjmN誰かご教授をお願いしますだ
0562774ワット発電中さん
2005/04/14(木) 20:20:28ID:G8P9tpwX0563774ワット発電中さん
2005/04/14(木) 21:08:28ID:X10C6rc+RTL Viewer の事を言ってるのかな? あんなもの糞だぞ。
回路図から何の回路ブロックか読取るだけで一苦労。 自力で回路図書いた方がマシ。
ついでに言っとくが、web edition じゃ使え無いからねー。
0565774ワット発電中さん
2005/04/15(金) 04:18:46ID:G3eRFWCGSynplifyの表記ってそんなに糞か?
RTL viewさせては、、、
ホホーこんな風に合成すんのか・・・と感心する俺って・・・レベル低すぎんのか?
0566563
2005/04/15(金) 19:53:03ID:+xIYTXZP�@VHDLから回路図を排出する方法
�AVHDLから回路を作る(論理合成)方法
�BVHDLから現実に動作するALTERAをプログラムする方法
俺は�@だと思って回答したんだが・・・ RTL_Viewer なんか解説するまでも無いだろうし、あるとも思えない。
0567774ワット発電中さん
2005/04/15(金) 22:12:19ID:0FnoZLHX決して初心者だましのツールではないと思う。
RTL書いてるときにスケマティックのイメージが頭の中で湧き、
スケマティックをみるとRTLが浮かんでくる位にRTLを習熟すると、
よさが解るし、DCなんかのマニュアルに書いてあることの意味が本当にわかってくる。
>>563みたいなこと言う奴がよくいるが、単純に解ってないだけだと思う。
0568774ワット発電中さん
2005/04/15(金) 23:05:13ID:q2aABNl8あると、違う場所によってはちょっとむかつく…
まぁ合成エンジンの癖をつかみ切れてない自分に対しての怒りというか…
0569774ワット発電中さん
2005/04/17(日) 11:53:22ID:DyEB70tc> RTL書いてるときにスケマティックのイメージが頭の中で湧き、
> スケマティックをみるとRTLが浮かんでくる位にRTLを習熟
ここで習熟と思ってる人多いおおいよなぁ・・・
スケマなど思い浮かばない新人の方が、余程いい記述をするのはこのあたりに
原因があると思う。
0570774ワット発電中さん
2005/04/17(日) 15:38:38ID:VfjBGcTo動かしたい場合はどうこねくり回そうがRTLに帰着するわけでプリミティブ
レベルではないにしろスケマが思い浮かばないようでは良い合成は
不可能で内科医?
現状では。
0571774ワット発電中さん
2005/04/17(日) 20:17:19ID:EWscBuSq20msecパルス幅のパルスを入力、その15msecの状態をサンプリングし、入力
パルスが入力されたことを示すステータス信号を生成する。ステータス信号
がクリア信号により初期化される回路を作りたいんですが、検討がつきません。
0572571
2005/04/17(日) 20:18:47ID:EWscBuSq0573774ワット発電中さん
2005/04/17(日) 20:55:35ID:/2YYovtH0574774ワット発電中さん
2005/04/18(月) 00:20:41ID:Cp0PhkM+んなもんSystemCで書いとけ!!
0575774ワット発電中さん
2005/04/18(月) 18:48:22ID:azmNEgTc真面目なFPGAサイトを荒らさないで。
0576774ワット発電中さん
2005/04/18(月) 22:25:44ID:Mq041glN0577774ワット発電中さん
2005/04/19(火) 19:44:16ID:f1U1B1YP宿題なら自分でやれ、と言われたようです(w
0578774ワット発電中さん
2005/04/19(火) 22:13:53ID:Rj/jXeTv0579774ワット発電中さん
2005/04/21(木) 21:16:38ID:wy5ueKDP0580774ワット発電中さん
2005/04/21(木) 22:02:46ID:ySzRt6Hy0581774ワット発電中さん
2005/04/21(木) 23:33:13ID:M/IlrLxbかけなくて本当に困ってます。
よろしくお願いします
0582774ワット発電中さん
2005/04/21(木) 23:36:16ID:G6VzUtl+EDA関係では多いからね。
実は大規模な開発ではVHDL使った方が楽というのは
確かだが、これは大きな声では言ってはいけない。
0583774ワット発電中さん
2005/04/22(金) 00:29:10ID:pUETsLb+0584774ワット発電中さん
2005/04/22(金) 01:22:12ID:eijszqMMまあ一昔前だとVerilogの利点はあったよ。主にEDAツールの
関係からだけど。今はVHDLでもなんとかなる。
Verilogの大人数設計の場合は某ガイドラインに添って記述
しろってことだけど、あんなの読む時間もったいないよ。
0585774ワット発電中さん
2005/04/22(金) 01:39:07ID:lhYRbtd10586774ワット発電中さん
2005/04/22(金) 08:37:39ID:17Zv8za+言語だけでは効果が薄い。今のEDAベンダにそんな環境は作れない。つまりしがらみの無い新しい開発はVHDLを使った方がいいよってこと。でもそんな開発ほとんどないんだけど。
0587HDL初心者試行錯誤中
2005/04/22(金) 22:04:42ID:ikgWlxt5ALTERAで設計してみたところです。
Verilog の方が記述量が少なくて若干楽かな と思ったんですけど、将来的な事も見越して
考えると VHDL をマスターした方がいいんですか? 次からどの言語使うべきか迷ってます。
SystemC とか言わないでね。 弱小企業ゆえ VHDL,Verilog くらいしか選択肢はありません orz
0588774ワット発電中さん
2005/04/22(金) 22:28:20ID:HXAAPBVPVHDLが良い
弱小企業ってどれぐらいだよ?
資本金と売り上げを教えて
0589774ワット発電中さん
2005/04/22(金) 23:03:07ID:ZpJ/XlHHというジンクスが・・・
0590774ワット発電中さん
2005/04/22(金) 23:08:58ID:lhYRbtd10591774ワット発電中さん
2005/04/22(金) 23:23:28ID:YLTQ6HcRウチもそうだし。
所が趣味の方は、例の低価格Verilogを使ってるので今は両刀に
なった。(ウヘ
0592774ワット発電中さん
2005/04/22(金) 23:37:43ID:kDP1PSXNVerilogだよ。
VHDLみたいく記述量多くて、きちっとしてたら、
そこでバグとれちゃうじゃん。
そうなったら、コードチェッカも売れないし、
アサーションとかプロパティチェッカとかの
ありがたみも少なくなるし、なによりシミュレータが数
売れなくなるじゃん。
次はSystemVerilogがあるんだからおとなしくVerilog
使っとけってこった。
とEDAベンダーの人間は心の中で思っている。
0593587
2005/04/23(土) 00:23:21ID:JFVybF3M>>588
3000万以下 というか、かなり下の方・・・ あまり突っ込まんでくらはい。
Q2だけは何とか買って貰った。
0594774ワット発電中さん
2005/04/23(土) 00:41:47ID:mpw5sUre仕事してるとverilogになると思う。
VHDLは本とかで「これからは言語で設計」と騒ぎ出して
から始めたところが多い気がする。
0595774ワット発電中さん
2005/04/23(土) 02:01:13ID:cALcLF6fCレベルからFPGAに落とせるやつらしいけど。
これが出回ったら、HW言語書きは失業してしまうのでしょうか。。
0596774ワット発電中さん
2005/04/23(土) 03:37:52ID:vRR/Pj17論理合成が期待できるだろうし。
記述のしやすいVerilogがぜったいお勧め。
VHDLは、登場したときから、そして、今も、下請けやってるとか米国防総省に納入品あるならともかく、
VHDLをつかわにゃならん理由がまったくない。
記述量多いわ、プリプロセッサはほとんど皆無。
わざわざCのプリプロセッサ通してたりする。
作業効率悪すぎ。しかもRTL書いてる限りはほとんどVerilogとやれることに差がない。今更存在意義がない。
あと
VHDLでVerilogのfunctionような明示的な組み合わせ回路の合成法ってあるんか?
■ このスレッドは過去ログ倉庫に格納されています