トップページ⇒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
0449774ワット発電中さん05/02/04 12:13:41ID:nbBC7cDY
入力openって基本的にハード設計ではやっちゃダメっしょ。
ちゃんと記述しないと。
出力openならともかく。
0450774ワット発電中さん05/02/04 12:45:18ID:YFwEnrk0
入力open?
論理合成に何か関係あるのか?
0451774ワット発電中さん05/02/04 14:05:59ID:auxvR0GW
>>450
内部バスがHi-Zになるくらいしか思い付かんな。
シミュレーション時にでも問題になるんじゃね?
合成時にひっかかるようなとこにOpenがあるのは論外だろうと。
0452774ワット発電中さん05/02/04 23:06:53ID:PcPFHaSl
>>444
dc_shell-tなら448の通りだな。lsよりglobの方がTclっぽいけど。read_file -format vhd [glob *.vhd]
というか、こんなディレクトリ内容に依存したものではなくて、
普通は読み込みファイルリストなるものを作るのが常套だろう。
あと、勝手にゼロ固定したというメッセージがでてるじゃないか。
というかファイルを読み込んだ後check_design コマンド叩いていないのか。
0453774ワット発電中さん05/02/04 23:24:49ID:EzkZATa/
ツールもまともに使いこなせないのかよ。。。
デザインの質も知れてるな。
0454774ワット発電中さん05/02/04 23:47:23ID:Qv08nITw
すみません教えてください。
Active-HDL3.1を使ってますが、シミュレーションをしていると、いきなり
”Unknown automation functiion called"と出てきて、シミュレーションできなくなりました。
シミュレーション出来るようにしたいのですが、どうすればいいのでしょうか。
おねがいします。
0455入門者05/02/05 13:45:04ID:ESrO+/1+
Quartus2 web editionにもシミュレーターはついてるとは
思うんだけど、みんなは使ってないの?
0456774ワット発電中さん05/02/05 15:35:41ID:CssLIlqu
maxplus2の時は付属のシミュレータ使っていたけど、
q2になってからはmodelsim-ae(だっけ?)がほとんどです。
0457774ワット発電中さん05/02/05 16:39:07ID:K0pZVCU4
漏れもmodelsim-ae
0458774ワット発電中さん05/02/06 13:01:25ID:b8jbvJhK
P業界って、プリント基板業界のこと?
0459774ワット発電中さん05/02/06 15:22:14ID:dOqzDSZP
パ○チソコ?
0460774ワット発電中さん05/02/07 07:39:55ID:+t9CCEYD
>>454
代理店聞け
0461774ワット発電中さん05/02/09 22:03:56ID:Yx6deWLE
>>448,452
すまんが、それをDCでやる方法知ってたら教えてくれ。
できれば、
verilog -f temp.vc
ってやるときの、temp.vcをdcで読みこませれたら
一番いいんだが、いい方法ある?
0462774ワット発電中さん05/02/10 23:29:11ID:CqylcKJ5
>>461
これなぁ、、。
dc_shell(NOT dc_shell-t)で簡単にできないところが弱いところなんだよなぁ。
ファイル(ファイルリスト=temp.vc)をオープンする手段がない。
Tclモードなら、set f [open temp.vc]; foreach v [split [read $f] \n] {read_verilog $v};close $f
と強引に一行だが。。
昨今のEDAツールはファイルリストくらい簡単に読めるようにはなってるんだけどね。
シノプシスは、「できるだけTclモードへ移行してくれ」というだけだし。
0463SDRAMコントローラ作成中05/02/11 15:24:08ID:GLrczidg
CQ出版のFPGA活用チュートリアルという本で
Xilinx のSDRAMコントローラIPの改造記事があったんですが、、、、
オートリフレッシュがコマンドとバッティングしたときにFIFOで解決するとなってました。
8段のFIFOにコマンドとデータを格納しておき、バッティングした時の待ちクロックによってセレクタ動作させると・・・
でも、こんなんでいーんでしょうか?
例えば、ホスト側がずーっとメモリにしっぱなしだとFIFOが溢れるように思うんですけど?
ホスト側をバスWAIT端子でバスアクセスを中断させない限り解決できないような気がするんです。
プロフェショナルな皆様何卒教えてください。

因み、コントローラ自身は外部ホストからのリクエストでメモリにアクセスして、
そのリクエストがいつあるかわからない場合を想定してます。
0464774ワット発電中さん05/02/11 15:30:22ID:GLrczidg
酒飲みながら書いてるもんで脱文章だらけでした

訂正1:例えば、ホスト側がずーっとメモリにアクセスしっぱなしだとFIFOが溢れるように思うんですけど?
訂正2: 因みに、コントローラ自身は外部ホストからのリクエストでメモリにアクセスして
0465774ワット発電中さん05/02/11 23:52:11ID:VxQeqSfB
しらふで出直してこい
0466774ワット発電中さん05/02/12 00:09:11ID:LI1JaXD0
>>465
わからんもんなぁ。おまえのおつむじゃ
0467774ワット発電中さん05/02/12 13:15:51ID:5Wdh3uMT
>>466
このオツムにこの発言かよ。イタイ、痛すぎるよおまえ。
0468774ワット発電中さん05/02/12 13:47:03ID:HeLBZWq7
>>467
プッ゚ アフォ晒して嬉しいか?高卒
0469俺様 ◆f0ugTrYQRI 05/02/12 15:19:54ID:Kzl/Mfv8
(;´Д`)ハァハァ  中卒でちゅが… 誰か呼んでくれたでちゅか?
0470774ワット発電中さん05/02/12 23:23:23ID:yQha/6jB
今すごいなやんでるんですけど一万ゲートのFPGAで16bit32ポイント
のFFT回路って作れるんでしょうか?悩んでも一万ゲートで合成できそう
な回路がうかばんです。。。ちなみに回路設計経験2回目くらいです。
教授は”できないわけないじゃないウフフン”とうれしそうに笑ってました。
でも教授の言うことは5割くらいの確率で間違ってるのであんまり
信用できません。本当にできるのかどうか、できるのであればどんな風な
回路にしたら実現できるのか、ご教授いただけませんでしょうか。お願いします。。。
0471774ワット発電中さん05/02/12 23:59:12ID:3iXD/aHF
>>470
最初に考えなければいけないことは、三角関数の値の作り方と演算方法ですね
32ポイントだと三角関数は内部で計算せずに定数として使えばよいでしょう
バタフライ演算の入れ替えはソフトでごちゃごちゃ入れ替えるより回路で一発で入れ替えるほうが簡単です
最後に実効値演算で実数部と虚数部の自乗和の平方根が必要になるから、平方根を作る回路を考える
簡単な回路ということであれば、平方根は奇数を順に引き算すれば求められるからできない事も無いかな
回路構成を考える前に演算手順を明確にして相談したほうが良いと思いますよ


0472774ワット発電中さん05/02/13 00:18:58ID:Ft+9vbSB
計算はたとえば二進数でy=0.1001 * x だったら y = x/2 + x/16みたいな
風にしてバタフライ演算を順々にsubtypeを使ってcのプログラムの様にやっていく
風に考えてみたんですが、どうも一万ゲートに収まりそうにないです。。。
行にして1000行くらいになるし。16個の三角関数を掛けるところを一つの
モジュールにして掛け算回路を共有しても3百行くらいになります。
そもそも根本的に間違ってるのでしょうか?長い回路くむのは
初めてで参考にした設計例もFIRの極単純な物しか見たことないです。
FFTをした後には係数を少し触ってIFFTするだけです。
0473774ワット発電中さん05/02/13 00:23:21ID:7zrLLhEp
マルチプライヤー使った時点で、1万ゲートは無理だろ。
0474774ワット発電中さん05/02/13 00:28:44ID:c/iJ8Qzs
やっぱ共通部分は何回も使いまわすように考えないとコンパクトには収まらない
処理時間の制約はないようだから、せっせとループを廻して同じ回路を何回も使うように考えよう
16個くらいだとDFTを16階やっても同程度の処理になりそうな気もする
0475774ワット発電中さん05/02/13 00:43:31ID:Ft+9vbSB
そうですね。もうちょっと絞って小さくしてみます。あ〜あんまり
複雑になると意味わかんないです。初心者はもっと簡単な回路から
はじめるべきでしょうか。でも教授にまた馬鹿にされそうだ。。
0476774ワット発電中さん05/02/13 00:50:13ID:c/iJ8Qzs
がんばって、少しまとまったらまた教えてください
0477774ワット発電中さん05/02/13 05:18:20ID:sfTzSvkG
すみません教えてください。
galaxy使ってるんですが、プロジェクト立ててコンパイルしたらエラーで
PTMがどうのこうと言ってるんですけどPTMって何ですか?

0478774ワット発電中さん05/02/13 08:03:30ID:/b0uKPsS
>>468
アル中・低脳・学歴コンプレックスはさっさと死ね。ぼけ。
0479774ワット発電中さん05/02/13 21:32:07ID:zaq02Jpu
.bdfの編集に関して教えてください。
バス出力(例:out[3..0])の1bit毎に
別々にoutputピンを割り当てる方法が分かりません。
(上記例だとoutputピン4本)
0480774ワット発電中さん05/02/14 00:38:50ID:QJ7Ezpy7
>>478
高卒暴露されてよっぽど悔しいんだね。ヨチヨチ
0481774ワット発電中さん05/02/14 00:45:19ID:5dysH6OA
>>480
中卒は生きてる意味ねぇんだよ。かぁちゃんのおっぱいでもしゃぶってろ。この童貞坊やが。
0482774ワット発電中さん05/02/14 00:55:24ID:rYHyqA8o
>>481
よう!
久しぶりだな。
下げ方覚えたのかい?
0483774ワット発電中さん05/02/14 01:19:10ID:6BHivdq7
>>479
これはMax+PlusII?QuartusIIどっちの話?
エディタでファイル直編集は感心しないなぁ。
0484774ワット発電中さん05/02/14 18:51:28ID:jGjeVPSP
>>470
その前に演算にかける時間条件を示せ。
高速でリアルタイム演算が必要か1秒かかってもいいのかによって回答は大きく変わる。
時間制限が無いのなら、CPUをFPGAにぶち込んで、ソフト演算って手もあるわけだ。
048548405/02/14 19:00:21ID:jGjeVPSP
悪い、勘違いだ。 単位がゲートだった orz
0486774ワット発電中さん05/02/14 20:13:35ID:ie7JUwAI
別に単位がゲートだろうが、CPUが1万ゲートで作れればいいんだろ?
048748405/02/14 21:38:32ID:/KsS2x+x
>>486
まぁ〜そうなんだけど、俺の頭でCPU自作する自信無かったもんで・・・
LEと勘違いしたんだよー。 NIOS余裕で突っ込めるなと。
0488774ワット発電中さん05/02/14 23:09:50ID:nIZIhiXP
>>483
Quartus2です。すみません。
入社して早々、仕事の引継ぎでQuartus2使うことになりまして。
体得すると同時に、履歴を残して後々の教育に生かしたいです。
0489774ワット発電中さん05/02/19 12:47:53ID:Xbzgsqkz
QualtusII 4.2WebEditionでのVHDLですが、よくわからないことがあるので質問です。

procedureの呼び出し時に、引数に"00" & hoge( 5 downto 0 )と指定したらエラーではじかれました。
ためしにhoge( 7 downto 0 )としてみると問題ないようです。
エラーメッセージはなにやら型が一致しないと言っているようですが、どちらもstd_logic_vector型で、
procedure宣言でもstd_logic_vectorとしているので不一致となるとは思えないのですが。

ちなみにこのprocedureはレジスタの読み書きをマクロ風にしてみようとして、ビットが歯抜けになって
いるレジスタを表現してみようとしたら上記のエラーになった次第です。
とりあえず全レジスタを歯抜けなしにして解決はしたのですが、どうも釈然としないので・・・
0490774ワット発電中さん05/02/19 12:55:12ID:PajfRhvw
ageる馬鹿には答えをやらない。
0491774ワット発電中さん05/02/19 13:11:56ID:w9pazgcN
最近490みたいなsage原理主義者つうか、
sageるのが正しいと思ってる勘違い馬鹿が増殖してるな。
スレタイに即した内容なら、ageで書いて問題なしだから気にするな489
俺はVHDL知らないから質問には答えられないがなー。
0492774ワット発電中さん05/02/19 13:56:13ID:OnsHRRLa
俺はVHDL知らないから質問には答えられないがなー。
0493774ワット発電中さん05/02/19 14:42:58ID:X3nOqKqJ
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
0494774ワット発電中さん05/02/19 15:07:35ID:HTkMVX2l
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。
0495774ワット発電中さん05/02/19 16:02:42ID:S7iIOrd2
何やってんだ? アホ
0496774ワット発電中さん05/02/19 19:47:07ID:YQci5Uhz
491==495
0497774ワット発電中さん05/02/19 20:37:28ID:m6nitJOh
>>490みたいにちょっと注意されるとキレるニワトリみたいな奴
多くなったよな。
0498774ワット発電中さん05/02/19 20:45:59ID:PajfRhvw
ageんなって言われただけでこれかい?
0499774ワット発電中さん05/02/19 20:51:29ID:X3nOqKqJ
>>496
「=」が2個なのにワラタ。さすがVerilogスレ。
0500774ワット発電中さん05/02/20 00:03:37ID:0Ds5C6TH
>>496
その返り値は真か偽か。
0501774ワット発電中さん05/02/20 00:50:39ID:bNKh22n9
真だろ。
ついでに、(491 == 495) && (491 == 497) も真。
0502774ワット発電中さん05/02/20 01:55:28ID:hZNQrB+R
>>499
「=」が2個というのはVerilogに限ったこっちゃ無いだろ。
もっといろんな言語を勉強すべし。
0503774ワット発電中さん05/02/20 03:57:44ID:SlW2KIp5
>>502
単に2ちゃんで”=”と書くのが一般的だからだろ。
「こいつはVerilog以外の言語でも”==”が使われてるのを知らないんだ!そうに違いない!!」
って浅はかで偏った奴だ。(w
0504774ワット発電中さん05/02/20 04:46:25ID:Hrq/jZPm
491は×なやつだから常に偽を返す。 ===で比較しよう
0505774ワット発電中さん05/02/20 06:50:30ID:62Jkgl2l
>>504
んなのあったっけ? VerilogもVHDLもまともにわからんのですが
解説お願いします。(C++、Java、BASICなどはわかります)
0506774ワット発電中さん05/02/20 12:59:18ID:ISRILzfO
10'd491===10'd497はfalse
>>10'd497の俺が言うんだから間違いない。
0507774ワット発電中さん05/02/20 15:25:43ID:CYeF6uYf
>>484
すいません。あまり問題ないかなーと思って勝手に思って書き込まなかったんですが
リアルタイムです。。。音声から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:LwrlHcWl
>>489
std_logic_vector'("00" & hoge( 5 downto 0 ))
でもエラーになるのかな?
stringかbit_vector辺りでオーバーロードしてない?
0509774ワット発電中さん05/02/20 16:14:51ID:LYDFFhPf
>507
バンドパスフィルターなら
FFTではなくてFIR フィルターでは問題あるのですか?
乗算器のあるFPGAなら簡単に組めると思います。
0510774ワット発電中さん05/02/20 16:22:29ID:CYeF6uYf
>>484
ああ、すいません。大学でより複雑な回路を組まされるんですがその前の
演習問題ってことでやってます。Firは別の人が先に作ってしまったので
同じものをやるのもなぁってことでFFTをやろうと思いました。
0511774ワット発電中さん05/02/20 16:23:01ID:CYeF6uYf
訂正
>>484 -> >>509
0512774ワット発電中さん05/02/20 17:39:01ID:6YJdgH7h
>>506
へえ、別人にしては書き出しの文体がまるで同じ。
奇遇なことがあるもんだねぇ。へえ。( ´,_ゝ`)

> 491 :774ワット発電中さん :05/02/19 13:11:56 ID:w9pazgcN
> 最近490みたいなsage原理主義者つうか、

> 497 :774ワット発電中さん :05/02/19 20:37:28 ID:m6nitJOh
> >>490みたいにちょっと注意されるとキレるニワトリみたいな奴
051348905/02/20 21:05:10ID:YwwvT9HM
>>508
レスありがとうございます。
明日会社いって試してみます。
オーバーロードは使っていないので(プロジェクト全体でprocedureはこれ1つだけ)
たぶん影響はしていないと思います。
0514774ワット発電中さん05/02/20 22:10:44ID:LwrlHcWl
>>513
本来 "00" & hoge( 5 downto 0 ) でもOKであるべきだと思うけど、
エラーの内容からして、"00"がstd_logic_vectorと認識できないような気がする。
0515774ワット発電中さん05/02/21 23:39:15ID:XRKE4dzJ
もうひとつ可能性として、procedure (signal a : in std_logic_vector)とか宣言しているなら
>>489 のような状況になるかも。ただエラーメッセージが489とは異なると思うけど。
その場合には procedure (a : in std_logic_vector) に変えてみるとか。
0516774ワット発電中さん05/02/22 20:06:42ID:GHiFVA4H
ちね
0517774ワット発電中さん05/02/23 03:43:07ID:eRK4+v3c
初めてカキコします
>>1に何か作って遊んでみませんか、とありますが
例えばどんな面白いものが作れるんですか?
0518774ワット発電中さん05/02/23 16:19:06ID:UZuM1Tn4
つーかcで描いたビヘイビアさえ動かない。。。
死のう
  ||
 ∧||∧
( / ⌒ヽ
 | |   |    
 ∪ / ノ
  | ||
  ∪∪
0519774ワット発電中さん05/02/23 17:23:45ID:UZuM1Tn4
あ動いた。やった。つーか阿呆みたいな所間違ってた。。。
0520774ワット発電中さん05/02/24 23:44:35ID:WTK8MSBO
>517
そりゃPONGだろう。
0521774ワット発電中さん05/02/25 09:43:45ID:qRViqlEU
>519
あれ?死ぬんぢゃなかったっけ?
0522774ワット発電中さん05/02/27 00:55:52ID:5QzVmkDw
>>521
しのう、こうしよう。
0523774ワット発電中さん05/02/28 19:50:21ID:JQ/IxlAG
そんなことより、シミ 美容 どう?
0524 ◆YMO/ALTERA 05/03/01 16:38:22ID:3BXBbWb7
>>517
亀レスですまん。俺はトリップ検索基板に仕立てて遊んでる。
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:xbwFXUtr
どこかで乗算は−1〜1の範囲にして計算するとモテモテと書いてあった
0527774ワット発電中さん05/03/06 11:47:46ID:Gqq2Ffpe
>>525
> 符号付の乗算なんですが、
Verilog-95だと、regとかビット数指定の定数は全部unsigned扱いなので、
記述側で符号拡張してやるとかしないといけないんじゃないかな。
Verilog-2001だと、reg signed と宣言するか、
定数なら 12'sd805 とかみたいに s をつければいけるはず。
規格見ただけで、試してないからわからん。
0528774ワット発電中さん05/03/06 13:17:49ID:bCe6kmA8
>>526-527
thx!!!

>Verilog-95だと、regとかビット数指定の定数は全部unsigned扱い
うわぉ、そうだったんですか!
では、32bit拡張は対応手段としては間違ってはいなかったのか…

>Verilog-2001だと、reg signed と宣言するか、
定数ではないので↑これを試してみます。
ありがとうございました!(感涙
0529525=52805/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
>>527-528 ,525
符号拡張の記述は 具体的に どうやってますか?
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
>>530
被乗数(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分間考え込んだけど)

ありがとうございました。
053353105/03/06 22:27:35ID:cfGiKREI
>>532
ごめんなさい、ミスってました。$signed( )は、Verilog2001から みたいでした。
1995時代の教科書には載っていなくてあたりまえです。 出直してきます…
0534774ワット発電中さん05/03/06 22:38:46ID:bCe6kmA8
>>533
いえいえ、丁寧にthxです。
俺の本、$signedについて書かれてませんでした…orz
みんなどんな本使ってんですか…(この議論は何回も出てますが)
053552505/03/07 11:00:34ID:Znwft+K8
確認sim
a = 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
>>532
>思いついたまま適当に書いてたので、A*Bの直前で
> = (被乗数[12])? {20'hfffff,被乗数} : {20'h00000,被乗数};
>などと書いておりました。

符号「拡張」の記述なので、
意味的にも、出来上がりの回路イメージ的にも
{20{A[11]}, A} って書くのをおすすめ。
Verilog2001で書くようになってからは
この辺のとこは気にしなくなってきたけどね。
0537525とか05/03/07 15:50:28ID:Znwft+K8
>>536
>{20{A[11]}, A}
こんな書き方があることすら知らなかったです…orz
欲しかった書き方です!thxです
0538774ワット発電中さん05/03/07 23:51:34ID:LNoYKNzM
Verilatorを使っている人、いますか?
0539774ワット発電中さん05/03/18 01:30:46ID:2eZlcuhs
$sined は 2001について書いてる本じゃないと載ってないはず。
2001の規格をネットで探すとヨロ氏
キャプションのフォントがエラーで読めない・・・鬱
0540774ワット発電中さん05/03/20 00:11:07ID:tOeRyS3A
>>539
thx!!

2001について書いてある本…ってどんなんあります?
探してくる〜
0541774ワット発電中さん05/03/20 02:21:39ID:tOeRyS3A
で、見つからんわけだが。orz
0542774ワット発電中さん05/03/20 11:05:41ID:OX3JXprh
こんにちは
先日、CQ出版の「FPGAで学ぶ・・・」という
ボード付きのテキストを買ったのですが
ひとつ分からない事があるのでおしえてください

ボードには電源スイッチ、リセットスイッチがなく
コンパイル後DLして動作を確認したあと
自前で用意したACアダプタのジャックを
ひっこ抜いて終了、という手順で使っているのですが
こういうボードの扱いとしては正しいのでしょうか?
(いきなり昇天しそう・・・)
0543774ワット発電中さん05/03/20 12:25:41ID:ariYRaYE
>>540
2001について触れてる日本語本で俺が知ってるのは小林の改訂版の付録部分
あと英語なら、

IEEE1364 Verilog-2001.pdf
0544sage05/03/20 20:13:32ID:XoBTZJwB
>>542
俺も買っているけれど、FPGAに対するパワーオンリセットなNPROGRAMピンの
プルアップ抵抗でリセットからCR時定数でリセット解除されているからOK.
ユーザのリセットに関しては外部スイッチでリセットできるからそれでヨシ。

電源スイッチが無いのは痛いけれど、まー基板はオマケだからね。

>>536
部外者だけれど、俺も勉強になった。
ぜひ「FPGAで学ぶVerilog-HDL/2001」を書いてケロ。
0545774ワット発電中さん05/03/21 00:08:29ID:l1B5NFcC
>>543
ありがと!
0546774ワット発電中さん2005/03/26(土) 16:29:47ID:mxqPkEM6
>>543
ありがと!
0547774ワット発電中さん2005/04/07(木) 00:39:34ID:9xCEI+Uy
アルテラ、Q2_WEB.Ed、VHDLで設計をしてきたのだが、
ICの入手性、コスト、容量の面からザイリンクスを使おうか
考え中。でもザイのフリーツールでの波形エディタがQ2や
MAX+2に比べて使いづらくてしょうがない。
でもある奴から、言語で入れればかなり楽と聞いた。
そこでこれを勉強したいのだが、いい本やツールがあれば
教えてほしい。
0548774ワット発電中さん2005/04/07(木) 03:40:12ID:uZ8+KOh7
いい本は、自分で本屋にいってわかりやすいと思うものを購入が一番。
■ このスレッドは過去ログ倉庫に格納されています