トップページ⇒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
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だね。

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


0167774ワット発電中さん04/12/26 21:23:30ID:MS8bbIn5
最近流行りらしい(?)PerlやCからHDLを吐き出すスクリプトを使っている(作っている)人って
どれくらいいますか?
私は適当+自己流なんで何か流儀があるのなら勉強したいのですけど。
0168774ワット発電中さん04/12/26 23:03:39ID:NkZGbqRr
極小FPGAで後から割り算が必要になって(速度は超遅でよい)、外に
浮動小数点演算用にPICつけてシリアル通信したことあったなぁ。。
ダサいけど工数は0同然だった。
もちろん最終の基板では仕様見直したけどね。

0169774ワット発電中さん04/12/27 04:55:47ID:IiOwaSMj
だれか太田博之のディジタル通信回路教科書読んだ人いますか?
この人Verilog書きなれてないと思ったのは俺だけ?
0170774ワット発電中さん04/12/31 00:08:41ID:tKLJqHbH
来月のdesignwaveにはISEの評価版が付くそうな。
インストール後、某ファイルを消すとずっと使えるぞなもし。
0171774ワット発電中さん05/01/05 01:13:05ID:K1krFDC0
>某ファイルを消すとずっと使えるぞなもし。

こーゆー情報が今やご法度だものな。糞法律ばっかし作りやがってさ糞官僚が。
0172774ワット発電中さん05/01/05 01:50:54ID:A7lNAgRo
>>170
DVD−ROM
0173774ワット発電中さん05/01/05 03:58:23ID:NGDPEDuk
>>171
ハァ?
「今や」?
遙か昔から、少なくともてめーが生まれる前から
偽計業務妨害罪だよ。

高卒は法律も知らんのか。
野蛮だねプククククククク
0174774ワット発電中さん05/01/05 04:15:32ID:/YFrRIWv
【電卓関連スレ】宇宙電波観測所 10
http://tmp4.2ch.net/test/read.cgi/tubo/1102178196/760
0175774ワット発電中さん05/01/05 04:16:24ID:NGDPEDuk
>>174 
隔離スレに何を書こうが誰も見ない訳だが、
そんなにこちらで論破されてずたぼろにされるのが怖いのかね?
チキンofチキンの高卒哀れだよ高卒。
0176超初心者05/01/05 10:41:32ID:ko/FuqQF
>>165
すいません。大学がしまっててレス遅れました。。。
ええとaの型はintegerです。それでも前に書いたエラーがでます。
0177774ワット発電中さん05/01/05 10:47:31ID:lWvCpkO/
0-64でテーブルが65個あるからか?
0178超初心者05/01/05 10:55:11ID:ko/FuqQF
ぅわ。また間違ってますね>64
でも直しても同じエラーがでるのでそこが問題ではないみたいです。
0179774ワット発電中さん05/01/05 11:36:16ID:DdB5Az5O
>偽計業務妨害罪だよ。

173は単なるバカだな。
法律を自分の都合の良いように解釈しているうちはガキ
大人は自分の都合の悪い方へ解釈してリスク管理する。
0180774ワット発電中さん05/01/05 13:06:20ID:NGDPEDuk
>>179
ハァ?
てめぇは自分が偽計業務妨害で逮捕される事が
都合の良い事なのか?

日本語すらまともに書けない高卒哀れすぎ。
0181774ワット発電中さん05/01/05 18:58:40ID:aebuCLrh
>>176
レスが付かないようなので勘で。
引っかかるのは
 ・乗算そのもの。この場合integer同士の掛け算であってもエラーになる(conv_integer関係なし)。
 ・conv_integerは32bit引数だととりうる範囲が-0x8000000~0x7fffffffだけどそれは大丈夫?
乗算に関しては普通にRTLレベルのシミュレーション等に利用するだけなら問題ないが、
論理合成できない可能性がある気がする。正確には、俺の使っている論理合成ツールでは
合成できなかった記憶がある(少し記憶が曖昧)。俺自身が現在確認できる環境にない。
テーブル引き等そのものは合成でもまず問題ないと思う(複数の合成ツールで合成できてる)。
後、エラーの出るツールの名前は?
解決に至らないようならソースをずっと単純化してそのまま貼り付けたら?
0182エンジニア処遇向上委員会05/01/07 15:47:08ID:VrueFCxZ
エンジニアの処遇改善の為にも、↓ このムーブメントに乗って下さい!

 日本国民はエンジニアを尊敬しる!
 http://science3.2ch.net/test/read.cgi/kikai/1104172261/20-36

このスレでは、結構な方が首相官邸や政党、各省庁へエンジニア優遇政策
の提言を行っております。皆様も是非ご協力下さい。
018318105/01/07 19:04:00ID:NWvYtN5g
間違えたので訂正
integerの取り得る範囲は-0x7fffffff~0x7fffffffみたいだね(少し違和感あるけど)。
もうひとつ乗算の合成についてある程度はっきり思い出した。
乗算自体は合成できていた。ただ32bit×32bitだと合成できなかったと記憶している。
31×31なら問題なかったのか、16×16なら大丈夫なのかはいまだ思い出せない。
0184774ワット発電中さん05/01/09 23:26:00ID:neQ/1vL3
すいません。教えてください。
変換式に小数点の係数があり、処理方法がわかりません。

R[7:0],G[7:0],B[7:0]の場合
Y = 0.299R + 0.587G + 0.114Bの処理を行う場合は、
= 256 * (0.299R + 0.587G + 0.114B) / 256
= (77R + 150G + 29B) / 256
のようにして整数の乗加算したのちに8bit左シフトすればよいのでしょうか?
少数点の係数の演算を調べたのですが、うまく見つかりませんでした。
ポインタでもありましたら教えてください。。
よろしくお願いします!
0185774ワット発電中さん05/01/10 00:05:38ID:mT4qiGvF
精度はどれ位いるんだよ。それによって異なる。

つーか、10進数も2進数も小数の扱いは同じだよ。
固定精度で10進数の計算をどうやるか考えれば、2進数も分かるだろ。
018618405/01/10 00:19:48ID:Ow5wipAk
>>185
精度というか、出力は上記の式で8bitにしたいです。
Y[7:0] = 0.299*R[7:0] + 0.587*G[7:0] + 0.114*B[7:0]
のようにしたいです。
256倍したY[7:0]はY[15:0]になるので
これをY[15:8]をとることで256でわるという上記の方法で
よいのでしょうか?
>10進数も2進数も小数の扱いは同じだよ。
本来なら1000倍して係数を整数にした後、1000で割れば
よいのでしょうが、HDLでは除算器が大きくなってしまうので、
2のべき乗で乗除すればシフト演算ですむと考えたのですが、
根本的にまちがっていますでしょうか?
0187774ワット発電中さん05/01/10 00:49:21ID:g+gcidb9
別に間違ってない。
>>184に自分で書いた式で大丈夫。
0188774ワット発電中さん05/01/10 00:53:06ID:7pV3WoMX
>>186
精度がいらないって、どこまでいらないのかの問題も絡んでくるが。
ちなみに、所要のビット数の精度を出そうと思うと、機能的には最低
でも(出力ビット数は関係無しに)その倍の精度は必要。

2のべき乗の乗除算は、ビットシフトが使える。

とりあえずハードウェアによってしまうが、乗算は乗算器に任せるの
が無難じゃないかな?
018918405/01/10 01:18:06ID:Ow5wipAk
>> 185/187/188
ありがとうございました。精度について気をつける必要があるのですね。
このあたりの考え方が書いてあるWEB/本を探しているのですが、
なかなか見つかりませんでした。
ありがとうございました。
019018405/01/10 10:20:50ID:Ow5wipAk
>>188
>ちなみに、所要のビット数の精度を出そうと思うと、機能的には最低
>でも(出力ビット数は関係無しに)その倍の精度は必要。

184です。考えてみたのですが、出力8bitの場合のサンプリング数
は倍の精度が必要なので、2の9乗あればよいとのことで、
184の式で256ではなく、512をかけるということでよいでしょうか?
(Y[7:0] = 512 * (0.299*R[7:0] + 0.587*G[7:0] + 0.114*B[7:0]) / 512)

188さんは出力ビット関係なしとかかれていますが、
最低、出力ビット数の倍の乗除を行う必要があるという考え方は
まちがっていますか?
たびたびですいませんがおしえてください。
0191774ワット発電中さん05/01/10 14:09:44ID:mT4qiGvF
R*0.01001101 + G*0.10010110 + B*0.00011101 =
R + R<<2 + R<<3 + R<<6 + G<<7 + G<<4 + G<<2 + G<<1 + B<<4 + B<<3 + B<<2 + B = A[?:0]
答え = A[?:8] + A[7] (小数点下第1位で四捨五入)

係数も8Bit精度にした。結果の精度がそれほど要らないのなら、もっと削る。
0192774ワット発電中さん05/01/10 14:17:46ID:mT4qiGvF
結果が出てからBit#8にBit#7を加算するより、あらかじめBit#7に'1'を
加算しておいた方が良いなあ。
0193774ワット発電中さん05/01/11 01:20:33ID:2duFVuB7
verilogで1bit左シフトするとやたらとlogic使うんですけど、
何かいい手はないでしょうか。
0194774ワット発電中さん05/01/11 10:58:33ID:2rDcX6JL
最近VHDLからVerilog-HDLに乗り換えたんだけど、テキストIOって
ファイルに書き出すのは$fdisplayで楽そうだけど、入力するのは
難しいのかなぁ。
たとえばCPUのエミュレータ作って「load 0xff00 0xaa」とかいうのを
ファイルから読み込ませるなんてのはVHDLではreadlineしてから文字列
判別するようにしてvariableに放り込めば、そんなに難しくなかった
んだけどVerilogではファイルからアスキー文字読むときゃどうするの?
2進数と16進数しか読み込めんのか?
0195774ワット発電中さん05/01/11 11:37:58ID:o3rZZd1M
95だと無理というか、Cライブラリの呼び出しみたいなことを
しないといけなかったけど、2001だとある。
http://www.chris.spear.net/pli/fileio.htm
019619405/01/11 12:03:58ID:2rDcX6JL
>>195さん
これこれ。これがやりたかったのよん。サンクス!
0197774ワット発電中さん05/01/11 18:23:16ID:2rDcX6JL
シェアウェアで国産のVerilogシミュレータが出てますね。
http://www.sugawara-systems.com/
Icarus Verilogもいいけど、VHDL-Verligコンバータも入って5000円台ならいいかも。
0198774ワット発電中さん05/01/11 19:17:30ID:W+W2r/lo
>>194さん、
最近VHDLから、Verilogに乗り換える人が多いのは、どうして?
FjだとVHDLだと思っていたけど。
0199774ワット発電中さん05/01/11 20:55:59ID:BVHdVSzv
>197

宣伝ごくろう
0200774ワット発電中さん05/01/11 21:23:06ID:g0gC3QnV
これを紹介すると必ず>>199みたいなのが出るのは何故?
国産品だと作者を叩かないと気が済まないのかね。
何とも卑しいこって。
0201774ワット発電中さん05/01/11 22:21:47ID:zENSPiYv
>>198
部署によるだろ。
0202774ワット発電中さん05/01/12 00:15:28ID:XKXgCzlf
>>198
SystemVerilogとかもあるし、DCのparserが対応していけば
アサーションともあいまってVHDLよりか将来性があるかも。
Fjの代理店とつきあったことがあるけどVerilog HDLしか知らんかったよ(w
0203774ワット発電中さん05/01/12 01:08:27ID:4/KDvaX8
質問です。

verilogのソース中でピンアサインを指定する方法ってありますか?
VHDLなら「attribute pin_numbers〜」でできるというのは分かったのですが
verilogでの方法が分かりません。

よろしくお願いします。
0204774ワット発電中さん05/01/12 01:36:49ID:Mc6YdWxj
>203

漏れもおながいしまつ。
0205774ワット発電中さん05/01/12 02:13:05ID:WDtPZODt
そんな流用できないソース書いちゃだめよ〜 
しまいにゃタイミング制約もソースに入れたいとか言い出すんだろ。

0206774ワット発電中さん05/01/12 02:30:25ID:xZPDBpkn
VHDLよくわからん。ピンアサインとは?
020720305/01/12 02:33:49ID:4/KDvaX8
>205
cypressのwarp3という製品を使っているのですがフィッティングするたびに
ピンアサインが変わってしまい困っているのです。

マニュアルは、VHDLの方ではソース中で指定する方法しか書いておらず、
verilogの方に至ってはピンアサインについては全く触れられていません。

テストするたびに半田づけし直すわけにもいかないので途方に暮れています。
020820305/01/12 02:40:23ID:4/KDvaX8
>206
内部のポートをどのピンに割り当てるかです。

VHDLなら
attribute pin_numbers of refill:entity is
"aaa:1 bbb:2";
等とするとaaa->1ピン、bbb->2ピンと割り当てられるようです。
これと同様のことをverilogでやりたいです。
0209俺様 ◆f0ugTrYQRI 05/01/12 07:39:19ID:KhBLAptn
(;´Д`)ハァハァ  最近太りすぎで困ってるでちゅよ!
お利口タンの皆タン! Verilogで体脂肪を計算したいでちゅ〜
身長189センチ 体重58Kgでちゅ〜
じゃあ待ってるでちゅよ!
ねむねむ〜〜
0210774ワット発電中さん05/01/12 15:34:50ID:RhpX5tcx
>>209
昔のPC板へカエレ!
021120605/01/13 03:46:26ID:kc3MqHG7
>>208
その「ピン」とは一体どういうもの?Verilogには「ピン」という定義がない。
Synopsysでは
module z(a,b,c); input a, b, c; <= a,b,cをポートと呼び、
zzz i0 (.a(), .b(), .c()); <= a, b, cをピンと呼んでいるようだが。
0212いつでもどこでも名無しさん05/01/13 10:39:30ID:V9EDyVg5
>>208
>内部のポートをどのピンに割り当てるかです。

チップの端子の割り当てのことなら
RTLの中にそんなピンアサイン情報は記述しないのが普通では?
Verilogでそういう記述はできない。
VerilogにしてもVHDLにしてもピンアサインは
インプリツール固有の設定ファイルのようなもので指定するはず。
0213774ワット発電中さん05/01/13 12:23:56ID:5cpom69q
質問の意味が若欄
0214774ワット発電中さん05/01/13 18:38:25ID:tUOPQG7F
FPGAへの実装を想定での質問。

イネーブル信号を外から与えて、与えるごとにその時の1クロックだけレジスタに書き込みを行いたい
で、単純に↓のように書いてしまうと非同期になってしまってよくないから他の方法を考えてるんだけど、
こういう場合、どう記述したらいいのでしょうか?
always @(posedge enable)
regster <= data;

与えられたイネーブルを自分でディスイネーブルするにはどう記述したらいいのでしょうか?
0215774ワット発電中さん05/01/13 18:54:04ID:eTrlq5kX
クロックをセンシビティリストに書いて、always文の内部でenable をポーリングするっていうのじゃ駄目?
ただし、disableするには別途信号線が必要になると思うよ。
0216774ワット発電中さん05/01/13 18:55:22ID:Y3DSNb6t
>>215  
YahooBB218137134021.bbtec.net
http://dictionary.reference.com/search?q=electronics
The science and technology of electronic phenomena.

http://dictionary.reference.com/search?q=electronic.
Of or relating to electrons.
Of, based on, operated by, or otherwise involving the controlled conduction of electrons or other charge carriers, especially in a vacuum, gas, or semiconducting material.

eTrlq5kXはelectronicsの意味すら知らない高卒確定。

どんなローカル学会のどんなローカルルールやローカル用語を
書き散らしたところで、

高卒eTrlq5kXの妄言:「フーリエ変換もウィナーフィルタも世の中にあるものは全て偽物だ!疑似だ!そんなものは実現不可能だムキー!!!」
一流大学大学院生によるクリティカルヒット:
「離散化とは高卒以外にとっては帯域制限以外の何物でもない。
よって高卒以外で離散化を疑似フーリエ変換とか疑似ウィナーフィルタなんて言ってる奴は世界に一人もいない。
ググっても0件だ。」

高卒eTrlq5kXの妄言:「周波数領域ではデータが全部そろわないと計算できないんだ!実現不可能なんだムキーー!!」
一流大学大学院生によるクリティカルヒット:「有限長カーネルのコンボリューションは帯域制限付き窓つき短時間フーリエ変換と等価であり、有限長カーネル・窓のコンボリューションを使った実時間周波数領域フィルタは幾らでも実用化されている。
そもそも世の中のDSPのほとんどがこの目的で使われている事すら知らないとはあまりにも哀れ。」

高卒eTrlq5kXの妄言:「サンプリングでは帯域制限なんか絶対されないんだ!AAFが帯域制限の原因なんだムキー!!!」

一流大学大学院生によるチェックメイト:
「ほう、ならAAFを外せばCDは60KHzの音も記録・再生できるというわけか。乙。」

高卒eTrlq5kXの断末魔:「サンプリング定理に帯域制限されるなんて書いてない!ムキー!!」

一流大学大学院生によるとどめ:
「サンプリングで帯域制限されるとは何度も書いてるがサンプリング定理で帯域制限されるなどとは
一度も書いた事がない。日本語すら読めない高卒哀れ。マジ哀れ。
まさかサンプリングとサンプリング定理の区別すらついてないのか?」


これがおまえeTrlq5kXの現実。


しかし、自分が選んできたテーマでずたぼろにされる事ほど哀れなものはないよな。
死んだ方が良くない?

あの高卒ってば、まぁ俺の専門分野ならずたぼろに出来るのは当たり前だから面白くないから
「この板に来てる以上知らない事は許されない固体物理の常識」
を聞いてやった訳よ。
それでもずたぼろで哀れなので、
その高卒が出してきたその高卒の専門分野での質問を答えてやった上に、
如何に高卒がデタラメな事いってるかこてんぱんにして潰してやった訳よ。

まぁ、 狂 う わ なプククククククク

中卒の脳内学会では、反論できなくなると
「●●学会〜〜!!」とか学会名を叫ぶと許してもらえるんだろうか?

そ ん な 哀 れ な 学 会 に は 
間 違 っ て も 近 寄 ら な い

まぁ脳内学会だろうけどな。
0217774ワット発電中さん05/01/13 20:25:04ID:T7MAovKc
>>214

イネーブル信号をクロック同期の回路でエッジ検出をし、
その信号をFFのイネーブルに使う。

>与えられたイネーブルを自分でディスイネーブルするにはどう記述したらいいのでしょうか?

言ってる意味がよく分からないけど何のために必要なの?
0218774ワット発電中さん05/01/13 21:12:18ID:/0E9bOBG
ちょっと思ったんだが
イネーブル信号がクロックより長いことは保証されてんの?
メタステーブルへの対処は?
0219774ワット発電中さん05/01/13 21:32:54ID:tUOPQG7F
>> 217
ん?こういうこと?これだと、どんどんdataが書き込まれてしまいますよね。
1回だけ書き込みたいんですけど。
always @ (posedge clk)
if(enable)
FF_enable <= 1;

always @ (posedge clk)
if(FF_enable)
regster <= data;

>>218
保証されてます。
ソフトウェアでイネーブル信号を書き込むんで。
0220774ワット発電中さん05/01/13 22:00:45ID:eTrlq5kX
always@(posedge clk) begin
 if( !reset ) begin
  complete <= 0;
 end
 if(enable && !complete ) begin
  register <= date;
  complete <= 1;
 end
end

じゃだめかい?
0221774ワット発電中さん05/01/13 22:01:33ID:Y3DSNb6t
>>220  
YahooBB218137134021.bbtec.net
http://dictionary.reference.com/search?q=electronics
The science and technology of electronic phenomena.

http://dictionary.reference.com/search?q=electronic.
Of or relating to electrons.
Of, based on, operated by, or otherwise involving the controlled conduction of electrons or other charge carriers, especially in a vacuum, gas, or semiconducting material.

eTrlq5kXはelectronicsの意味すら知らない高卒確定。

どんなローカル学会のどんなローカルルールやローカル用語を
書き散らしたところで、

高卒eTrlq5kXの妄言:「フーリエ変換もウィナーフィルタも世の中にあるものは全て偽物だ!疑似だ!そんなものは実現不可能だムキー!!!」
一流大学大学院生によるクリティカルヒット:
「離散化とは高卒以外にとっては帯域制限以外の何物でもない。
よって高卒以外で離散化を疑似フーリエ変換とか疑似ウィナーフィルタなんて言ってる奴は世界に一人もいない。
ググっても0件だ。」

高卒eTrlq5kXの妄言:「周波数領域ではデータが全部そろわないと計算できないんだ!実現不可能なんだムキーー!!」
一流大学大学院生によるクリティカルヒット:「有限長カーネルのコンボリューションは帯域制限付き窓つき短時間フーリエ変換と等価であり、有限長カーネル・窓のコンボリューションを使った実時間周波数領域フィルタは幾らでも実用化されている。
そもそも世の中のDSPのほとんどがこの目的で使われている事すら知らないとはあまりにも哀れ。」

高卒eTrlq5kXの妄言:「サンプリングでは帯域制限なんか絶対されないんだ!AAFが帯域制限の原因なんだムキー!!!」

一流大学大学院生によるチェックメイト:
「ほう、ならAAFを外せばCDは60KHzの音も記録・再生できるというわけか。乙。」

高卒eTrlq5kXの断末魔:「サンプリング定理に帯域制限されるなんて書いてない!ムキー!!」

一流大学大学院生によるとどめ:
「サンプリングで帯域制限されるとは何度も書いてるがサンプリング定理で帯域制限されるなどとは
一度も書いた事がない。日本語すら読めない高卒哀れ。マジ哀れ。
まさかサンプリングとサンプリング定理の区別すらついてないのか?」


これがおまえeTrlq5kXの現実。


しかし、自分が選んできたテーマでずたぼろにされる事ほど哀れなものはないよな。
死んだ方が良くない?

あの高卒ってば、まぁ俺の専門分野ならずたぼろに出来るのは当たり前だから面白くないから
「この板に来てる以上知らない事は許されない固体物理の常識」
を聞いてやった訳よ。
それでもずたぼろで哀れなので、
その高卒が出してきたその高卒の専門分野での質問を答えてやった上に、
如何に高卒がデタラメな事いってるかこてんぱんにして潰してやった訳よ。

まぁ、 狂 う わ なプククククククク

中卒の脳内学会では、反論できなくなると
「●●学会〜〜!!」とか学会名を叫ぶと許してもらえるんだろうか?

そ ん な 哀 れ な 学 会 に は 
間 違 っ て も 近 寄 ら な い

まぁ脳内学会だろうけどな。
0222774ワット発電中さん05/01/13 22:21:42ID:BTjdO9b3
>>219
おしい。こんな記述すればいいはず。
慣れると無意識に出てくるほどの常套するコードだと思う。
wire en_load = ~enable_last & enable ;
always @(posedge clk) begin
if(~reset)
enable_last <= 0;
else
enable_last <= enable;
end

always @(posedge clk) begin
if(~reset)
register <= 0;
else if ( en_load )
register <= data;
end
0223774ワット発電中さん05/01/13 23:08:58ID:tUOPQG7F
>>220 >>222
ありがとう!
>>222を見る前だったから、>>220を参考にして↓のように
したらうまくいったよ。
always@(posedge CLK) begin
if(!RST || !enable) begin
complete <= 0;
end
if(enable && !complete ) begin
regster <= data
complete <= 1;
end
end

>>222もありがとう。こっちは1クロック前のenableを記憶しておく
っていう感じかな?よりRTLを意識できてる記述だね。こっちも検討してみる。

CPUとかは作ったことはあるんだけど、
こんなコードは初めてで、相当悩んでました。
自分はまだまだだなって痛感しました。ほんとに助かった。
0224774ワット発電中さん05/01/13 23:41:30ID:tUOPQG7F
ちなみにXSTで論理合成したらどちらも同じものが生成されました。
0225774ワット発電中さん05/01/14 00:14:46ID:uyX49uIJ
フリップフロップ使わない方法のが
シンプルだよ
0226 05/01/14 00:25:48ID:DSUj7hGO
always@(posedge CLK) begin
 if(!RST) begin
  complete <= 0;
 end else if if(enable && !complete ) begin
  regster <= data
  complete <= 1;
 end else if( !enable ) begin
  complete <= 0;
 end
end
0227774ワット発電中さん05/01/14 00:33:16ID:DSUj7hGO
訂正
always@(posedge CLK) begin
 if(!RST) begin
  complete <= 0;
 end else begin
 if if(enable && !complete ) begin
   regster <= data
   complete <= 1;
  end else if( !enable ) begin
   complete <= 0;
  end
 end
end
0228774ワット発電中さん05/01/14 01:05:35ID:uyX49uIJ
elsif使えよ
それに゙!゙は別にいらねーだろ
0229774ワット発電中さん05/01/14 01:07:08ID:iTXXAj1h
>>228
それよりフリップフロップ使わない方法ってのを詳しく
0230774ワット発電中さん05/01/14 01:11:15ID:DSUj7hGO
×if if(enable && !complete ) begin
○ if(enable && !complete ) begin

!は要るだろ。なんで要らないというのか理解できんな?
0231774ワット発電中さん05/01/14 01:14:55ID:uyX49uIJ
記述はシンプルいず ベターだ。
! いらね
0232774ワット発電中さん05/01/14 01:17:15ID:DSUj7hGO
else if を使う部分をelsifつかうのはお前の勝手だが、
!をはずしただけじゃロジックが代わるだろうが。
使わないなら等価なRTL書いてやれよ。
■ このスレッドは過去ログ倉庫に格納されています