【Verilog】記述言語で論理設計 Project2【VHDL】
1 :
792= ◆YMO/ALTERA :
04/09/03 12:21 ID:p+kby74r
>>1 乙
不調なのにご苦労様。体調気を付けてね。
4 :
& ◆t58k6Wvkqk :04/09/03 21:30 ID:6pUqcTox
VHDL-AMSのいい本ありますか?教えて またVerilogのVCDフォーマットみたいなやつ、VHDLにはないの? あまり、ソースがないので、困っています。
thx
>>6-7 私はアマチュアなので知識が偏ってます。
あとは裏方に回らせてください( ´∀`)
>>6 仕事で一度は使ってみたいと思いつつ、デリバリーや性能の点で
選外になるんだよね・・・。
書き込みや、ツール問題さえなければ趣味で使ってみたい石ではある。
10 :
10 :04/09/04 22:11 ID:QbgqDZwn
10!!!!!
11 :
774ワット発電中さん :04/09/05 16:02 ID:vdefAcEs
configROM内蔵のFPGAっていいなぁ・・・とか思っていたら、 ALTERAが出しちゃった。新しいCPLDだって言い張ってるけど。
>>11 俺も初めて聞いたときには笑った。思わず営業の人に「何これ?」って聞いちゃいました。
13 :
774ワット発電中さん :04/09/06 20:43 ID:UUmwitZG
ちなみにActelは出してるんだよね。前から。
>>13 只ツールと只ライターが無ければホビーユーザーとしては魅力無しだわ。
15 :
774ワット発電中さん :04/09/06 22:17 ID:UUmwitZG
だいぶ前だけど、タダツールはもらったよ。郵送で。 一番下のヤツしかコンパイルできんかったような。 使えそうもないし、そもそもデバイスが入手できるかワカランし、 結局インストールもしなかった。
問題はライターだよね。 コンパイル出来ても結果をDL出来なければアウト。
configROM内蔵のFPGAて config中はI/Oピンはやっぱりハイインピーなのかな? システムリセットは電源監視ICだけじゃダメってこと? SRAMベースのFPGA初めてつかって回路組んだけど、苦労したところだったもんで。 リセット回路はなんとかなったけど、 config中はI/Oピンはハイインピーになること後で知ってプルアップ抵抗追加した。 MAX2だと、そんな苦労しなくても済んだのかも?と思ってたもので。
>>17 微妙かも。
でも、リセット時Zになっていてくれた方が良い場合もあるから何とも言えないかなぁ。
LE2000程度の容量の最も低速なグレードのFPGAだったらデバイスそのものは 3k程度で手に入るけど、configROMやら、コア電源用レギュレータやらで スペース取られて、しかも部品代が結局合計1万円コースになってしまう現状 からすれば、configROM内蔵のFPGAは、結構使いやすいし安上がりと思う。
>>19 漏れはこれを機に全品種ROM内蔵に移行して欲しい。
21 :
初心者 :04/09/10 22:00:43 ID:QC4CB+yJ
12BITのdataを5.5という数値で 割った答えを16BITで出力する回路を 考えています。 答えに少数点以下の数値がある場合は、 整数に繰り上げます。 例えば、 (簡単のため10進数で考えると) 答えが1.1なら → 2とする 答えが1.000023なら → 2とする といった具合です。 関係演算子「 >= 」と 加算演算子「 - 」を使って 解を求めようとしているのですが、 [ 000000111111 >= 5.5 ] のような評価や また、[ 000000111111 - 5.5 ] のような計算が出来ません。 データタイプの異なるものに対して どのようにしたら評価できるのでしょうか? どうか教えて下さい。
>>21 マルチポストする奴には知っていても教えない。
23 :
774ワット発電中さん :04/09/11 00:29:43 ID:lj2zL9W3
12BITのdataを5.5という数値で 割った答えを16BITで出力する回路を 考えています。 答えに少数点以下の数値がある場合は、 整数に繰り上げます。 例えば、 (簡単のため10進数で考えると) 答えが1.1なら → 2とする 答えが1.000023なら → 2とする といった具合です。 関係演算子「 >= 」と 加算演算子「 - 」を使って 解を求めようとしているのですが、 [ 000000111111 >= 5.5 ] のような評価や また、[ 000000111111 - 5.5 ] のような計算が出来ません。 データタイプの異なるものに対して どのようにしたら評価できるのでしょうか? どうか教えて下さい。
週末ですな。
>>21 >>23 教えて差し上げますので
どうかsageを覚えてくださいませ
mail欄に半角英で「sage」
そんだけです
貴方の挙げた数を例に取ると、
下位に一桁追加して
[0000001111110(63.0) >= 0000000001011(5.5)]
[0000001111110(63.0) - 0000000001011(5.5)]
でよろしいのではないでしょうか
ていうかお前
ageマルチポスト荒らしはヤメロ
あと12BITを5.5で割って整数に切り上げで出力なら
答は10BITで十分だろがこの水羊羹
26 :
774ワット発電中さん :04/09/11 22:15:56 ID:m952+8TF
12BITのdataを5.5という数値で 割った答えを16BITで出力する回路を 考えています。 答えに少数点以下の数値がある場合は、 整数に繰り上げます。 例えば、 (簡単のため10進数で考えると) 答えが1.1なら → 2とする 答えが1.000023なら → 2とする といった具合です。 関係演算子「 >= 」と 加算演算子「 - 」を使って 解を求めようとしているのですが、 [ 000000111111 >= 5.5 ] のような評価や また、[ 000000111111 - 5.5 ] のような計算が出来ません。 データタイプの異なるものに対して どのようにしたら評価できるのでしょうか? どうか教えて下さい。
荒らすなボケ
1/5 ≒ 1/8 + 1/16 + 1/128 ってのを思い出したが… まぁここでは関係無いだろう…。 12bitだと4096-1までだから、4095/5.5=682.5。 だから10bitで十分。
29 :
25 :04/09/12 01:16:07 ID:qaDfhCoh
無視かよヽ(`Д´)ノ ウワァァァン!
みなさんのお勧めの入門書をおしえてください。
32 :
30 :04/09/12 23:34:57 ID:xtfXZxqW
ありがとうございます。 じっくりみてみます。
>>33 趣味だとそれで良いのだが、仕事で使うと開発ツールを新規に購入
とか色々と問題があってなかなか導入に踏み切れない。
Delphiの良さは十分に理解してるが、MSの囲い込みにはやはり弱い。
modelsim 6.0 からオープニングのサイが消えた
38 :
774ワット発電中さん :04/10/04 22:57:35 ID:C093HSbr
>> 37 サイのアーモンド型のつぶらな目が大好きでした。 ありがとう。つぼはち
39 :
774ワット発電中さん :04/10/09 09:27:36 ID:4n1MEssY
はじめての香具師はまず何をそろえるべきでしょうか?
>>39 実際に動く評価基板があればそこから始められるんだけど、
シミュレータからだと、初心者には分かりづらいよね?
シムとかテストベンチから入った香具師の体験談きぼん
41 :
39 :04/10/09 17:29:05 ID:4n1MEssY
シム,テストペンチって何でしょうか?
42 :
体験談1 :04/10/09 19:08:35 ID:2q5Gawao
HDLはじめて2ヶ月です。 (ただしC言語は習得済みでした) 始めに、本を買いました。 CQ出版 改定入門Verilog HDL記述 CQ出版 HDLによる高性能ディジタル回路設計 ソフトは以下を揃えました。基本は無料ですよね。ホビーですし。 GPL cver (UNIX用フリーVerilogシミュレータ) cygwinが入っていたので。根っこを学ぶ分にはGUIよりCUIのほうがいいこともあります。 ALTERA Quartus II Web Edition XILINX ISE WebPack 無料でつかえるソフトでは高性能、現実的だと思ったので。 テストベンチかかなくてもいいですし。 まずは、googleさまのご神託と共に入力信号を反転させる回路を記述しました。 テストベンチを書き、cverで動作を確認。 導入からここまでで1週間といったところでした。つづく。
43 :
体験談1 :04/10/09 19:15:29 ID:2q5Gawao
>41 シム→シミュレータ テストベンチ→自分が設計した回路をテストするための条件 42の例でいくと、 0秒目は入力Aに0を入力する 1秒目に入力Aへの入力を0から1に変える 2秒目でシミュレーション終了 ・・・というのをVerilogとかで書いたものをテストベンチというですよ。 0秒目は出力Bに1が出ている 1秒目は出力Bが1から0に変化する 2秒まで出力Bは0のまま という結果がでてくれば、期待通り(入力信号が反転している!) というわけです。 というわけで、期待通りの動きをするかどうかを、シミュレータに(自分で書いた) テストベンチと設計した回路(モジュールと呼びますね)を入力し、 出てきた結果を見て判断する、と。 これならお金はかかりません、ハラショー!というわけだ。
44 :
39 :04/10/09 19:23:35 ID:4n1MEssY
>>43 ご丁寧にどうもありがとうございます。
PCの環境はどのくらい必要ですか?
45 :
体験談1 :04/10/09 19:31:44 ID:2q5Gawao
>44 まあ、あればあるほど・・・というのが正直なとこですが、 ホビーなら自分が我慢できりゃなんでもいいかと思います。 ちなみに自分は Win2000でモバイルセル論800MHz WinXPでぺん3−833MHz(たしか です。
46 :
体験談1 :04/10/09 21:19:30 ID:2q5Gawao
つづき。 で、cverからQuotasやISEに移行するのが結構大変でした。 というのも、PLD開発のフローや全体が見えていないとなにをやればいいのかサパーリ だからです。 自分はそういう業界にはいって有識者に教えてもらうという手段をとれたので なんとかクリアしましたが、孤高のホビーストだとなかなかそうもいかないかもしれません。 で、次に買った&お勧めなのは CQ出版 FPGAボードで学ぶ論理回路設計 約1万円で本とFPGAボードが付いてくる、比較的お得なブツだと思います。 意外にパラレルケーブル入手で苦しみました。最近ってD-SUB同士のプリンタケーブルって売ってないのね・・・_| ̄|○ 安価なボードがついてくるっていうのもありますが、具体的にファイルを作成して動作させるまで 細かく書いてあるので、初心者にはかなりオススメだと思っています。(個人的に) そんなこんなで2ヶ月が過ぎ、いまは↑でMMCカードIFを作ろうとしてるとこです。 やっぱ外にマイコンがいるなぁ・・・ってとこでAVRやらH8やらの方面を勉強中。 いじょ。
>>46 さん
>「以外に」パラレルケーブル入手で苦しみました。最近って
>D-SUB同士のプリンタケーブルって売ってないのね・・・_| ̄|○
そういうときは,RS-232CのDSUB延長ケーブルを買うんですよ.
もしくは全ピンストレートが必須だから,RS-1284対応LPTケーブルね.
48 :
体験談1 :04/10/10 00:37:21 ID:Ys2LJlJp
>47 あ。そうですねー、232C延長でよかったんですねぇ。 自分は案フェノール・DSUB変換買ってシマタ^^; 余談 予想外だったので「意外」だったのですよー
49 :
774ワット発電中さん :04/10/10 01:37:29 ID:8dTR/5bB
どなたか教えてください。 Quartus2のWEBエディションって、ライセンスの関係でネットの最適化が出来ない(英語) っていう警告が出ると思うんですが、正式版だと更に最適化されるんでしょうか? MAX3000みたいなCPLDレベルでも恩恵ありますか?
ノートパソコンでザイリンクスのダウンロードケーブルを繋ぎたいのですが usbポートしかありません。USB-パラレル変換ケーブルは使えないと聞きました。 なんかいい方法ありますか?
>51 ありがd!
53 :
774ワット発電中さん :04/10/11 03:44:15 ID:xeLq7Qd+
とりあえずシミュレーションできればいいやって漏れにおすすめなの教えてください。 昔大学で使ったのが ・MAX-II plus ・verilog-XL / signalscan この前、自宅ノートに入れたのが ・イカロス です。
55 :
774ワット発電中さん :04/10/11 12:14:33 ID:CqJcDmy4
>>53 Verilog-XLとSignalScanを使っていたのなら、それ級のシミュレータを探すとなると
ModelSIM-SEかAldecぐらいしか無いと思うよ。
とりあえず、Quartus2のシミュレータ使ってガッカリしなければそれで良いとは思うが
PLI-$dumpvars()でチェックをするようなことはできないから、物足りないと思う。
しかし、学生時代からその環境とはオッチャン、たまげた。
58 :
774ワット発電中さん :04/10/16 01:22:28 ID:CT337dQ+
Quartus使いいますかー?
ハーイ! 4.1+SP1
ハーイ! 4.0 WE
ハーイ! 4.1+SP2
ハーイ! 4.1+SP2
63 :
774ワット発電中さん :04/10/27 08:35:25 ID:Usb3PlRI
すいません。Design_Compilerについて質問させて下さい。 合成をしたところ トップモジュールにhigh-fanout-netが出てくるという 警告が出てしまいました(TIM-134) しかしreport_netで各netのファンアウト数を見たところ MaxFanoutでもせいぜい30程度でしかありませんでした。 これって合成用のライブラリがおかしいってことなんでしょうか? それともreport_netでも出てこないようなnetが存在するということなんでしょうか? どなたかご教授ください。よろしくお願いします。
65 :
774ワット発電中さん :04/10/27 15:03:40 ID:2guEpE14
>>66 ワラタw
内容とageて質問しているとこから見て同一人物だろう。
仕事なのか学校の課題なのか知らんが、そろそろ対応しないとやばいんじゃねーか?w
fanout 30もあったら十分 too high だと思ってしまう私は古い人間?
>>67 やばいだろーな
てことで
set_max_fanout 4
とでもして合成してみれ.
それでWarning出なくなればfanout 30がtoo highってことだし
それでもWarning出れば何か他の原因.
原因の特定にはつながるだろ.
まずはそこから.
合成時のログとか状況とかもうちょっと詳しく.
論理合成は成功するのか,失敗するとすればどこでとまるのか,
合成前のfanout数とか,どこでWarning出るのかとか.今の情報量じゃぜんぜんワカンネ.
あと,質問する時はメール欄に半角英でsageと入れておくれ.
初心者です。アドバイスをお願いします 下記の条件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;
しくだい?
>> A and B='1'の条件となるB '1'では? 本でも買って、最低限の記述スタイルを覚えたほうがいいね。
記述スタイルとして、インデントを使って見やすくしないと訳がわからなくなるよ。
>>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は別の名前にする必要があります。
75 :
70 :04/10/30 12:56:22 ID:yHiIm30z
>72-74 ありがとうございます。 入門書買って一から勉強してみます。
76 :
774ワット発電中さん :04/11/05 01:01:44 ID:WexKwaKd
VHDLの質問にはならないのかもしれないですけど CQ出版のFPGAボードで勉強してるんですが拡張コネクタの一つのピンから 16 bitデータを受け取るにはどうPinとノードを配置したら良いんでしょうか? へたれなので出来のいい後輩が書いたソースを情けないやら悔しいやらで 話すすりながら打ち込んでます。 誰か教えてください。。。
>>64 ,65,66,67,68,69
おかげさまでなんとか解決しました。
余計な信号を削ってデザインを作り直して
バッファーツリーを多段に入れまくって
helpコマンドで何かのコマンドの説明見て
最後のほうにでてくるコマンドも片っ端から説明見て
set_fix_multiple_port_netsをcompile前に入れて
set_max_fanout の変数を変えまくって実行したら
なぜかうまくいきました。なぜうまくいったかはわかりません。
けどちょっと合成スクリプトを変えたりすると
Design "hogehoge" contains unmapped components.
とかいうメッセージが出てきたりしてこれは結局解決できませんでした。
ほんとやばかったです。
ご迷惑をおかけしました。
なにぶんひどい開発環境(むしろ私の頭脳?)なもんでして、
どんなコマンドがあるとかそういうのが全くわかりませんでした。
あと質問あるときはsageるのが常識みたいですね、知りませんでした。
すいません
Quartus使いの方いらっしゃいましたら誰か教えて下さい。 Tutorial見てても多層化されたVerilogのモジュールを一切使っては いませんでしたが。やっぱ平坦なファイルしか使用できないのでしょうか? それともプロジェクトに追加しさえすればBlock Diagram上に表現されて ないVerilogファイルでも他のモジュール内のサブモジュールとして 利用できるのでしょうか?誰か教えて下さい。
>>78 Verilog歴3ヶ月の俺が言うのもなんだけど、Quartusは関係無い。
Verilogの入門書でも読んでみて下さい。
「下位モジュールの呼び出し」とかっていうようなタイトルでも付いてると思います。
構文は、 「 下位モジュール名 インスタンス名 (ポートリスト) 」 って感じです。
>>77 > バッファーツリーを多段に入れまくって
手で入れたの?
ご苦労さん。
>>78 Quartusでもできます。普通です。
2ファイルくらいのコードで試してみたら?
同じディレクトリに入れて、トップをコンパイルすれば、分かるよ。
>>77 >>80 状況にもよるのかもしれんが、普通は手で多段ツリーなんて入れんと思うがなぁ
クロックツリーバッファを手で一段入れたり、必要なドライブ能力を考えてI/Oセルを
自分で置いてset_dont_touchとかはやるけど
というか、変な小細工する前に文法チェッカーかけるか、詳しい人に
ソースと .synopsys_dc.setup を見てもらうべきかと
83 :
774ワット発電中さん :04/11/14 20:36:00 ID:mI/nMcZv
ホビーユースでVerilogをやりたいんですけど、Xilinxのスターターキットあたりを買えば大丈夫でしょうか?
>83
とりあえずVerilogを覗くだけなら
ALTERA Quartus II Web Edition
http://www.altera.co.jp/ XILINX ISE WebPack
http://www.xilinx.co.jp/ (>2 より抜粋)
書いたVerilogのコンパイルとシミュレーションまで無料できるから、
とりあえずこれためすべし。
評価ボードに手を出すのはそのあとでいいかもよ?
評価ボードもピンキリだし、人によって欲しいボードも違ってくるだろうから・・・
とりあえず買ってみて考えるってのも俺は好きだ! ホビーユースだしね
仕事だったらとりあえず買うなんてやったら殺されるなきっとw
>> 84 ありがとうございます。 言葉が足りなかったみたいですみません。 とりあえず、Verilogは昔大学でやってて、 1〜5万ゲートぐらいの設計をヘタレなりにやってたんですが、 久々にやってみたくなってw 当時、ソフトとボード与えられて、適当にやってたんで、 自分でやるとなると何を買えばいいか分からないんでお聞きしたいんですが、 Xilinxのスターターキットは論理合成から実体配線まで制限なしにできるんでしょうか? 調べたんですが、いまいち分かりません。 別に効率の良い合成は必要ありません。 Xilinxのスターターキット程度のものを買っておけばしばらくは遊べますでしょうか?
86 :
VHDL入門者 :04/11/15 12:34:03 ID:Ro2/ofki
ちょとVHDLについて教えてもらいたいことがあるのですが… CASE文で条件式中のビットの一部に不定のXを入れた場合は どうなるのですか? 例えばwhen"011X"=>PORT1<="0010" とした場合、0111及び0110両方で条件が成り立つのか、それとも Xは0か1どちらも問わないものだとソフトが判断して0111か0110の どちらかに固定されてしまったりするのですか? 教えてください…
87 :
774ワット発電中さん :04/11/15 14:21:07 ID:HGhJspiK
>86 CQ出版のFPGA評価キットやxilinxの評価キットのISE(webpack)で実配線(フロアプラン作成のこと?)まで可能です。jtagで実機に書くことも可能です。 来月のデザインウェーブマガヅンにspartan-3が付いて2000円だそうです。 周辺をちょっと自力で作らなくちゃいけませんが、1万円程度のスターターキットを 買ってHDLだけの開発にがんがるか、DWMを買って半田付けからがんがるか迷ってください。 仕事で800万ゲート×4って言う開発してましたけど、この規模になったらfoundationかなと思いますが、それ以外ならフリーツールで十分かと 思います。 個人的にはステートマシンの記述が楽チンなvisualeliteとかsimplifyproとかがフリー版(機能限定でもいいから)で出てくれれば裾野が広がると思うんですけどねえ・・・
88 :
VHDL入門者 :04/11/15 16:53:36 ID:Ro2/ofki
答えになってませんYO!!
>>86 素直に考えれば、固定しない方が何かと都合がいいから、そうなると思うけど・・・・
実際エラー出ない? とある本では「書けないからifでやる」とある。
>>86 う〜ん・・・、そう書きたいの分かるけど、コンパイラとかによっては変な事起きるかも
しんないから俺はやらない。
経験少ないからあんまり自信無いけど、Q2 はダメだった気がする。
92 :
83 :04/11/15 22:21:40 ID:58mcQWc1
>>87 ,89
どうも、親切にありがとうございました。
私程度の人間だとフリーソフトで十分みたいですね。
半田ごてでがんがるか、どうするかもうちょっと悩んでみますw
93 :
91 :04/11/15 22:23:49 ID:j8LiZ9Yi
補足、かえって見難くなるかもしれんが、俺の場合こんな記述したりしてる。 if の方がマシかもしれんが・・・。 case inp_d(3 downto 1) is when "011" => port1 <= "0010";
94 :
93 :04/11/15 22:38:26 ID:j8LiZ9Yi
し、しまった。下げ忘れた。 orz
>>93 011Xの時は最下位ビットは見ないけど、
他の条件では4ビット全部指定有なんて
場合は記述がごちゃごちゃしそうかも。
> とある本では「書けないからifでやる」とある。 VHDLの仕様とか書いてある
質問する前にVHDLの仕様書や参考書ぐらい調べるのが礼儀じゃないのか? 只のシミュレータもネットで拾えるんだから幾らでも現実に試す手段もあるのに なんでやれば出来ることを質問するのか? 頭悪すぎる。
いいじゃねぇか、ネットで聞いて教えてくれる人が居るなら手間省けるし。 答えるのが嫌なら無視しろよ。誰もお前に教えてやれとは言ってない。
しかしまあ、あの質問内容だったらコンパイルするなり コンパイルが通るならシミュレーションで走らせれば すぐわかりそうなものだけどね。
そんな香具師にFPGAは使いこなせねべ
動いたら勝ち
でもたいていは動かないしデバッグもできないので負け
俺も初めの頃、ライブラリ入れれば、ifでstd_logic_vectorを右辺整数で比較等できるのに caseでは比較できない点に、子一時間ペリー著など調べたことがあった。 今となってはトラブルの無い冗長な記述命。。 逆に文法やパーサの推定なんぞで悩む時間が欲しい。。
比較演算子は多重定義可能だが、予約命令は多重定義できないから?
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バージョンを個別モジュールで作ったんですが、なんだか スマートじゃないなぁと。みなさんはこういう状況でどうします?
106 :
VHDL入門者 :04/11/20 16:03:33 ID:9bzit/Ah
あの〜実際のところ、Web PackのVHDL記述した回路→実際の回路への変換 性能はどうなんでしょうか? case文で記述すると、本来なら数個のロジックで出来た筈の回路が巨大に なってしまいます。これは論理圧縮の性能が悪いで結論付けられるので しょうか?
>>106 まずそのVHDLの記述をうpしてはどうでしょうか?
>>105 なんのツールではじかれたのでしょうか?
メッセージはなんてでたのでしょう?
109 :
105 :04/11/22 20:41:41 ID:yuDkLbxk
>108さん ツールはModelSimPE 5.5fです。 メッセージは以下のようなものでした。 # ERROR: C:/.../xxx.vhd(yyy): Type error resolving index expression. いろいろと読んだりぐぐったりしてはいるんですが、 C++みたいにモジュールの多重定義ができたりはしなさそうですね>VHDL,Verilog なんか悔しい。
>>106 仕事でも出張先とかでWEB版使ったりするが、圧縮率が悪いって気になった事無いけどなー。
case文の記述が悪くて変な回路合成してたりしない?
無料のWEBPACKも高いISE FOUNDATIONも、論理合成エンジンは同じXSTだから 合成結果は同じだと思うのだが。 実際に、200kくらいの設計を WEBPACKとFOUNDATIONの両方で合成させてみて、 出来上がったbitファイルを比べてみると、全く同じになった。
てことは対応デバイスの違いぐらいなのかぁ・・・ ホビースト的には嬉しいけどw なんかつくりてー でも時間が無い・・・くそぉ
Coregenが違うんじゃないの? ISE もQuartusも ReedSolomonも Turbo符号もエンコーダ、デコーダともワンタッチで出来上がる。 これさえあればほとんどの人はちょこちょこしたグルーロジックさえ組めば何もしなくていいんじゃないの?
確かに。違うのはCoregenとFPGAエディタと使えるデバイスの種類だけだと思う。 FPGAエディタは、WebPACKだとCLBの配置配線が見えるが、有料版だとCLBの中身まで見える。 エディタとはいっても、配置配線を眺める以外には使わない。 それ以外のアクセサリは使ったことがない。
115 :
774ワット発電中さん :04/12/05 23:27:03 ID:D48nht+a
else だ 馬鹿! ifじゃねえ
116 :
おっくん :04/12/08 01:32:41 ID:o90pAHBO
LFSR回路のモジュール教えてもらえませんか?4ビットのやつ記述したんですが、テストベンチの方のエラーが消えなくて…
フィードバックのところだろ? そこは非同期にすること。
118 :
おっくん :04/12/08 17:32:54 ID:o90pAHBO
すいません自分バカなんで…もう少し詳しく教えてもらえますか??
assign fb = sftreg[2] ^ sftreg[1] ^ sftreg[0]; always @(posedge clk ) begin sftreg[3:0] <= {sftreg[2:0], fb}; end
すまんが、どこが非同期なのか詳しく
always @(posedge clk ) begin sftreg[3:0] <= {sftreg[2:0], fb}; fb <= sftreg[2] ^ sftreg[1] ^ sftreg[0]; end と書くな!ということでは?
fbの代入部分にラッチでも出来ちまうのかな?
always @(posedge clk ) sftreg[3:0] <= {sftreg[2:0], ^stfreg[2:0]}; でいいじゃん。
ちょっと聞きたいのですが、VHDLで角度から三角関数値を 計算するときはどうすればいいのでしょうか? テーラー展開くらいしか思いつかなかったのですが、別の方法があるのでしょうか? よろしくお願いします。
表
FPGAなら内部メモリをROMとしてテーブルを置くのが早い。 あとは超簡単なDSPを手組みして教科書に載ってるのアルゴリズムを 色々と試してみる。
129 :
774ワット発電中さん :04/12/10 15:47:23 ID:h8OSbmQL
こーなったらわかる人はLFSR回路の全モジュールのっけて下さい!!テストベンチのモジュールも(>_<) よろしこ
>>126 FPGAで三角関数計算するのはCORDICが良かった。テーラー展開なんか目じゃない
CORDICでぐぐると結構サイトがある
いま考えると、CORDICはFPGAに実装しやすいね。 大昔68kに実装したときにバレルシフタがうらやましかった、マジ。 でも、用途に依るがテーブル引いて線形補間で問題なかったりしない?
テーブル+線形補間でほとんどの場合問題ないとは思うが、昔メモリが高かったころはcordicは重宝したと思う 今でも一度身に付けると一生もんだよ。といっても、便利がいい方法だけど、あまり知られていないんだよね 日本語の本が一松信先生のしかないし、この本がまたわかりにくいってことはあるけどね
math_real
組込み系ソフトウェアなんかでも、三角関数を テーブル参照+線形補間 で済ませてしまえる 場合が多い。 FPGAのアプリだと尚更その傾向が強いような気がするんだけど・・・ FPGA使った計算で、そこまで精度が必要な用途って何か聞いてみたい。
↑ふむ、電圧位相と電流位相差比べて、どっちにどれだけ電気が流れているか調べるためだとおもた で、ATANとSQRTが必要で、平方計算はどうしてもどこかでやらなきゃいけないので、えいやっとまとめてCORDICした
136 :
134 :04/12/10 20:44:04 ID:dDoj+5Na
>>135 あ、なるほど、計測用途ね。 レスサンクス。
verilogを使わないといけないことになったんですけど 入門用のおすすめの本かwebページありませんか?
↑こんなのです。他にもいくつかあった 日本語でcordicの原理を解説したのもあった。(今年の7月ごろ)
>>132 さっきぐぐったときは、読めば実装できるCORDICの文献が、
日本語のモノで多数転がってった。
当時、私も一松先生の教科書を見て実装しますた。
漏れは当時8008に実装しようと頑張ったが、読解力が足らなくてできなかった 実は、いまだに良くわかってないのだが。汗
142 :
超初心者 :04/12/10 22:41:14 ID:mA4gxR8R
cosineのテーブルが欲しいんですけどVHDLってテーブルは(変な言い回しになりますが)1個ずつ 書かなきゃいけないんでしょうか?ええとつまりc言語の配列見たいに array[N] = {....}みたいな風にすっきり書けないんでしょうか?教えて下さい。。。
144 :
126 :04/12/11 02:04:34 ID:eGzACmSM
CORDICっていうのがあるんですね。 ぐぐったらたくさん出てきました。 1周期を1024分割したのでROMでもいいのですが、計算法があるというのがわかっただけでも勉強になりました。 ありがとうございました。
↑CORDICは1970年代に当時の低速デバイスのころに開発された技術です それがFPGAになってまた活躍しているのは喜ばしい限りです ぜひ、活用してください
>>142 昔、寺のEABにテーブル突っ込むのに、C言語(MS-C かなり古い!)でテーブル記述した事あるぞ。
Cで書いてコンパイルして、HEXファイルをEABに喰わせれば良い。
LEへテーブル実装するなら、この方法は無理かもしれないが・・・
147 :
146 :04/12/11 13:38:00 ID:grQkrB75
あれ、すいません。 話の内容完全に外してる。orz
>>146 のカキコは無視して下さい。
148 :
774ワット発電中さん :04/12/11 15:17:41 ID:BFzv6oph
149 :
774ワット発電中さん :04/12/11 15:43:05 ID:M4GLMEfx
あの・・その・・JTAGはもともとバウンダリスキャンで 使うものであって・・・ゴニョゴニョ・・・
151 :
774ワット発電中さん :04/12/11 23:02:20 ID:M3VuMh3A
152 :
超初心者 :04/12/12 14:56:31 ID:h09vxZHx
>>PWbGlx7X レス遅くなって申し訳ありません。ありがとうございます!
153 :
超初心者 :04/12/12 14:56:52 ID:h09vxZHx
>>143 レス遅くなって申し訳ありません。ありがとうございます!
>>143 レス遅くなって申し訳ありません。ありがとうございます!
どういたしまして
おすすめのVHDL←→Verilog変換ツールってありますか? CQ出版のやつとXHDLを試したけど、どちらも完全対応じゃないみたいで。。
>おすすめのVHDL←→Verilog変換ツールってありますか? ロハのやつなら漏れも欲しいぞ
VHDLで専用回路(固定小数点)を作っている者で、割り算 をしないといけないのですが問題があって困ってます。 2で割ったりするだけならビットシフトで十分ですけど、 除数(分母)が被除数(分子)よりも大きい場合は実数で 考えれば1より小さい値ですが固定小数点なので0になって しまいます。なので、浮動小数点演算でやろう考えてますが、 回路が大きくなってしまうことが目に見えてます。 何かよい考えがあれば教えて下さい。
>>158 それはHDLで書く前の仕様設計の話だろ かなりスレ違い
乗除算以外に加減算も必要なのか?
乗除算だけなら対数に変換して計算するって手があるぞ
ま、演算する目的がわからなきゃどうにもならん
>固定小数点なので0になって しまいます。 そりわ、固定小数点ではなく「整数」でわ・・・
実体は整数演算だけども、ある場所に小数点があると 見なせば固定小数点演算と見なせる。 たとえば、 0001+0011 = 0100 を整数と見なせば1+3=4 下から二桁目と三桁目の間に小数点があると見なせば 0.25+0.75=1.00
163 :
超初心者 :04/12/24 08:28:05 ID: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)に対して 乗算をすること自体文法エラーみたいですが。。。
164 :
超初心者 :04/12/24 08:53:19 ID:5Um8eo73
あ間違えた。ar(1)じゃなくてdata(1)です
>>164 a の型は何?
aもinteger型なら問題はなさそうだが… (論理合成は出来ないと思うけど)
166 :
774ワット発電中さん :04/12/24 15:52:25 ID:baucrM1p
>>158 精度はどれくらい欲しいのかな?
0.1まで保証したかったら単純に10倍してから割ればいいだろう。
回路を簡単にしたいのであれば16倍して割る値をちょっと弄ればOKだね。
結果をどういった形で使いたいのかわからんがもう少し頭をやわらかくしたほうがいいぞ。
167 :
774ワット発電中さん :04/12/26 21:23:30 ID:MS8bbIn5
最近流行りらしい(?)PerlやCからHDLを吐き出すスクリプトを使っている(作っている)人って どれくらいいますか? 私は適当+自己流なんで何か流儀があるのなら勉強したいのですけど。
極小FPGAで後から割り算が必要になって(速度は超遅でよい)、外に 浮動小数点演算用にPICつけてシリアル通信したことあったなぁ。。 ダサいけど工数は0同然だった。 もちろん最終の基板では仕様見直したけどね。
だれか太田博之のディジタル通信回路教科書読んだ人いますか? この人Verilog書きなれてないと思ったのは俺だけ?
来月のdesignwaveにはISEの評価版が付くそうな。 インストール後、某ファイルを消すとずっと使えるぞなもし。
171 :
774ワット発電中さん :05/01/05 01:13:05 ID:K1krFDC0
>某ファイルを消すとずっと使えるぞなもし。 こーゆー情報が今やご法度だものな。糞法律ばっかし作りやがってさ糞官僚が。
172 :
774ワット発電中さん :05/01/05 01:50:54 ID:A7lNAgRo
173 :
774ワット発電中さん :05/01/05 03:58:23 ID:NGDPEDuk
>>171 ハァ?
「今や」?
遙か昔から、少なくともてめーが生まれる前から
偽計業務妨害罪だよ。
高卒は法律も知らんのか。
野蛮だねプククククククク
>>174 隔離スレに何を書こうが誰も見ない訳だが、
そんなにこちらで論破されてずたぼろにされるのが怖いのかね?
チキンofチキンの高卒哀れだよ高卒。
176 :
超初心者 :05/01/05 10:41:32 ID:ko/FuqQF
>>165 すいません。大学がしまっててレス遅れました。。。
ええとaの型はintegerです。それでも前に書いたエラーがでます。
0-64でテーブルが65個あるからか?
178 :
超初心者 :05/01/05 10:55:11 ID:ko/FuqQF
ぅわ。また間違ってますね>64 でも直しても同じエラーがでるのでそこが問題ではないみたいです。
179 :
774ワット発電中さん :05/01/05 11:36:16 ID:DdB5Az5O
>偽計業務妨害罪だよ。 173は単なるバカだな。 法律を自分の都合の良いように解釈しているうちはガキ 大人は自分の都合の悪い方へ解釈してリスク管理する。
180 :
774ワット発電中さん :05/01/05 13:06:20 ID:NGDPEDuk
>>179 ハァ?
てめぇは自分が偽計業務妨害で逮捕される事が
都合の良い事なのか?
日本語すらまともに書けない高卒哀れすぎ。
>>176 レスが付かないようなので勘で。
引っかかるのは
・乗算そのもの。この場合integer同士の掛け算であってもエラーになる(conv_integer関係なし)。
・conv_integerは32bit引数だととりうる範囲が-0x8000000~0x7fffffffだけどそれは大丈夫?
乗算に関しては普通にRTLレベルのシミュレーション等に利用するだけなら問題ないが、
論理合成できない可能性がある気がする。正確には、俺の使っている論理合成ツールでは
合成できなかった記憶がある(少し記憶が曖昧)。俺自身が現在確認できる環境にない。
テーブル引き等そのものは合成でもまず問題ないと思う(複数の合成ツールで合成できてる)。
後、エラーの出るツールの名前は?
解決に至らないようならソースをずっと単純化してそのまま貼り付けたら?
182 :
エンジニア処遇向上委員会 :05/01/07 15:47:08 ID:VrueFCxZ
183 :
181 :05/01/07 19:04:00 ID:NWvYtN5g
間違えたので訂正 integerの取り得る範囲は-0x7fffffff~0x7fffffffみたいだね(少し違和感あるけど)。 もうひとつ乗算の合成についてある程度はっきり思い出した。 乗算自体は合成できていた。ただ32bit×32bitだと合成できなかったと記憶している。 31×31なら問題なかったのか、16×16なら大丈夫なのかはいまだ思い出せない。
すいません。教えてください。 変換式に小数点の係数があり、処理方法がわかりません。 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左シフトすればよいのでしょうか? 少数点の係数の演算を調べたのですが、うまく見つかりませんでした。 ポインタでもありましたら教えてください。。 よろしくお願いします!
精度はどれ位いるんだよ。それによって異なる。 つーか、10進数も2進数も小数の扱いは同じだよ。 固定精度で10進数の計算をどうやるか考えれば、2進数も分かるだろ。
186 :
184 :05/01/10 00:19:48 ID: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のべき乗で乗除すればシフト演算ですむと考えたのですが、
根本的にまちがっていますでしょうか?
別に間違ってない。
>>184 に自分で書いた式で大丈夫。
>>186 精度がいらないって、どこまでいらないのかの問題も絡んでくるが。
ちなみに、所要のビット数の精度を出そうと思うと、機能的には最低
でも(出力ビット数は関係無しに)その倍の精度は必要。
2のべき乗の乗除算は、ビットシフトが使える。
とりあえずハードウェアによってしまうが、乗算は乗算器に任せるの
が無難じゃないかな?
189 :
184 :05/01/10 01:18:06 ID:Ow5wipAk
>> 185/187/188 ありがとうございました。精度について気をつける必要があるのですね。 このあたりの考え方が書いてあるWEB/本を探しているのですが、 なかなか見つかりませんでした。 ありがとうございました。
190 :
184 :05/01/10 10:20:50 ID: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さんは出力ビット関係なしとかかれていますが、
最低、出力ビット数の倍の乗除を行う必要があるという考え方は
まちがっていますか?
たびたびですいませんがおしえてください。
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精度にした。結果の精度がそれほど要らないのなら、もっと削る。
結果が出てからBit#8にBit#7を加算するより、あらかじめBit#7に'1'を 加算しておいた方が良いなあ。
verilogで1bit左シフトするとやたらとlogic使うんですけど、 何かいい手はないでしょうか。
最近VHDLからVerilog-HDLに乗り換えたんだけど、テキストIOって ファイルに書き出すのは$fdisplayで楽そうだけど、入力するのは 難しいのかなぁ。 たとえばCPUのエミュレータ作って「load 0xff00 0xaa」とかいうのを ファイルから読み込ませるなんてのはVHDLではreadlineしてから文字列 判別するようにしてvariableに放り込めば、そんなに難しくなかった んだけどVerilogではファイルからアスキー文字読むときゃどうするの? 2進数と16進数しか読み込めんのか?
196 :
194 :05/01/11 12:03:58 ID:2rDcX6JL
>>195 さん
これこれ。これがやりたかったのよん。サンクス!
198 :
774ワット発電中さん :05/01/11 19:17:30 ID:W+W2r/lo
>>194 さん、
最近VHDLから、Verilogに乗り換える人が多いのは、どうして?
FjだとVHDLだと思っていたけど。
199 :
774ワット発電中さん :05/01/11 20:55:59 ID:BVHdVSzv
>197 宣伝ごくろう
これを紹介すると必ず
>>199 みたいなのが出るのは何故?
国産品だと作者を叩かないと気が済まないのかね。
何とも卑しいこって。
>>198 SystemVerilogとかもあるし、DCのparserが対応していけば
アサーションともあいまってVHDLよりか将来性があるかも。
Fjの代理店とつきあったことがあるけどVerilog HDLしか知らんかったよ(w
203 :
774ワット発電中さん :05/01/12 01:08:27 ID:4/KDvaX8
質問です。 verilogのソース中でピンアサインを指定する方法ってありますか? VHDLなら「attribute pin_numbers〜」でできるというのは分かったのですが verilogでの方法が分かりません。 よろしくお願いします。
204 :
774ワット発電中さん :05/01/12 01:36:49 ID:Mc6YdWxj
>203 漏れもおながいしまつ。
そんな流用できないソース書いちゃだめよ〜 しまいにゃタイミング制約もソースに入れたいとか言い出すんだろ。
VHDLよくわからん。ピンアサインとは?
207 :
203 :05/01/12 02:33:49 ID:4/KDvaX8
>205 cypressのwarp3という製品を使っているのですがフィッティングするたびに ピンアサインが変わってしまい困っているのです。 マニュアルは、VHDLの方ではソース中で指定する方法しか書いておらず、 verilogの方に至ってはピンアサインについては全く触れられていません。 テストするたびに半田づけし直すわけにもいかないので途方に暮れています。
208 :
203 :05/01/12 02:40:23 ID:4/KDvaX8
>206 内部のポートをどのピンに割り当てるかです。 VHDLなら attribute pin_numbers of refill:entity is "aaa:1 bbb:2"; 等とするとaaa->1ピン、bbb->2ピンと割り当てられるようです。 これと同様のことをverilogでやりたいです。
209 :
俺様 ◆f0ugTrYQRI :05/01/12 07:39:19 ID:KhBLAptn
(;´Д`)ハァハァ 最近太りすぎで困ってるでちゅよ! お利口タンの皆タン! Verilogで体脂肪を計算したいでちゅ〜 身長189センチ 体重58Kgでちゅ〜 じゃあ待ってるでちゅよ! ねむねむ〜〜
210 :
774ワット発電中さん :05/01/12 15:34:50 ID:RhpX5tcx
211 :
206 :05/01/13 03:46:26 ID:kc3MqHG7
>>208 その「ピン」とは一体どういうもの?Verilogには「ピン」という定義がない。
Synopsysでは
module z(a,b,c); input a, b, c; <= a,b,cをポートと呼び、
zzz i0 (.a(), .b(), .c()); <= a, b, cをピンと呼んでいるようだが。
>>208 >内部のポートをどのピンに割り当てるかです。
チップの端子の割り当てのことなら
RTLの中にそんなピンアサイン情報は記述しないのが普通では?
Verilogでそういう記述はできない。
VerilogにしてもVHDLにしてもピンアサインは
インプリツール固有の設定ファイルのようなもので指定するはず。
213 :
774ワット発電中さん :05/01/13 12:23:56 ID:5cpom69q
質問の意味が若欄
FPGAへの実装を想定での質問。 イネーブル信号を外から与えて、与えるごとにその時の1クロックだけレジスタに書き込みを行いたい で、単純に↓のように書いてしまうと非同期になってしまってよくないから他の方法を考えてるんだけど、 こういう場合、どう記述したらいいのでしょうか? always @(posedge enable) regster <= data; 与えられたイネーブルを自分でディスイネーブルするにはどう記述したらいいのでしょうか?
215 :
774ワット発電中さん :05/01/13 18:54:04 ID:eTrlq5kX
クロックをセンシビティリストに書いて、always文の内部でenable をポーリングするっていうのじゃ駄目? ただし、disableするには別途信号線が必要になると思うよ。
216 :
774ワット発電中さん :05/01/13 18:55:22 ID: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の現実。
しかし、自分が選んできたテーマでずたぼろにされる事ほど哀れなものはないよな。
死んだ方が良くない?
あの高卒ってば、まぁ俺の専門分野ならずたぼろに出来るのは当たり前だから面白くないから
「この板に来てる以上知らない事は許されない固体物理の常識」
を聞いてやった訳よ。
それでもずたぼろで哀れなので、
その高卒が出してきたその高卒の専門分野での質問を答えてやった上に、
如何に高卒がデタラメな事いってるかこてんぱんにして潰してやった訳よ。
まぁ、 狂 う わ なプククククククク
中卒の脳内学会では、反論できなくなると
「●●学会〜〜!!」とか学会名を叫ぶと許してもらえるんだろうか?
そ ん な 哀 れ な 学 会 に は
間 違 っ て も 近 寄 ら な い
まぁ脳内学会だろうけどな。
>>214 イネーブル信号をクロック同期の回路でエッジ検出をし、
その信号をFFのイネーブルに使う。
>与えられたイネーブルを自分でディスイネーブルするにはどう記述したらいいのでしょうか?
言ってる意味がよく分からないけど何のために必要なの?
ちょっと思ったんだが イネーブル信号がクロックより長いことは保証されてんの? メタステーブルへの対処は?
>> 217
ん?こういうこと?これだと、どんどんdataが書き込まれてしまいますよね。
1回だけ書き込みたいんですけど。
always @ (posedge clk)
if(enable)
FF_enable <= 1;
always @ (posedge clk)
if(FF_enable)
regster <= data;
>>218 保証されてます。
ソフトウェアでイネーブル信号を書き込むんで。
220 :
774ワット発電中さん :05/01/13 22:00:45 ID:eTrlq5kX
always@(posedge clk) begin if( !reset ) begin complete <= 0; end if(enable && !complete ) begin register <= date; complete <= 1; end end じゃだめかい?
221 :
774ワット発電中さん :05/01/13 22:01:33 ID: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の現実。
しかし、自分が選んできたテーマでずたぼろにされる事ほど哀れなものはないよな。
死んだ方が良くない?
あの高卒ってば、まぁ俺の専門分野ならずたぼろに出来るのは当たり前だから面白くないから
「この板に来てる以上知らない事は許されない固体物理の常識」
を聞いてやった訳よ。
それでもずたぼろで哀れなので、
その高卒が出してきたその高卒の専門分野での質問を答えてやった上に、
如何に高卒がデタラメな事いってるかこてんぱんにして潰してやった訳よ。
まぁ、 狂 う わ なプククククククク
中卒の脳内学会では、反論できなくなると
「●●学会〜〜!!」とか学会名を叫ぶと許してもらえるんだろうか?
そ ん な 哀 れ な 学 会 に は
間 違 っ て も 近 寄 ら な い
まぁ脳内学会だろうけどな。
222 :
774ワット発電中さん :05/01/13 22:21:42 ID: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
>>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とかは作ったことはあるんだけど、
こんなコードは初めてで、相当悩んでました。
自分はまだまだだなって痛感しました。ほんとに助かった。
ちなみにXSTで論理合成したらどちらも同じものが生成されました。
225 :
774ワット発電中さん :05/01/14 00:14:46 ID:uyX49uIJ
フリップフロップ使わない方法のが シンプルだよ
226 :
:05/01/14 00:25:48 ID: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
訂正 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
228 :
774ワット発電中さん :05/01/14 01:05:35 ID:uyX49uIJ
elsif使えよ それに゙!゙は別にいらねーだろ
>>228 それよりフリップフロップ使わない方法ってのを詳しく
×if if(enable && !complete ) begin ○ if(enable && !complete ) begin !は要るだろ。なんで要らないというのか理解できんな?
231 :
774ワット発電中さん :05/01/14 01:14:55 ID:uyX49uIJ
記述はシンプルいず ベターだ。 ! いらね
else if を使う部分をelsifつかうのはお前の勝手だが、 !をはずしただけじゃロジックが代わるだろうが。 使わないなら等価なRTL書いてやれよ。
233 :
774ワット発電中さん :05/01/14 01:20:36 ID:uyX49uIJ
面倒くせ FF_なんたら とかいらね Z とかでいいんじゃん 紛らわしいし あんま怒んな アウトロ行け
あれれ? コンパイラオプションの`elsif はあるがVerilogでelsifってあったか?
>>233 なぁんだ、信号名が気に入らねってだけか。わかった。
completeはセットリセットの値を逆にすれば!は無くせそうだが
!RSTは取っちゃだめだろ?
>>233 おまえVHDLと混同してないか?
今調べたけどVerilogでelsifは予約語じゃないぞ。
出来上がりのハードが想像つくように記述してよ。 wire E; reg [2:0] sr; always @(posedge CLK or negedge RST) begin if(!RST) sr <= 3'b000; else sr <= {sr[1:0], enable}; end assign E = sr[2:1] == 2'b01; always @(posedge CLK or negedge RST) begin if(RST) register <= 1'b0; else if(E) register <= data; end (1) FFのリセットは非同期が普通 (2) enableとCLKは非同期なのでCLK同期化する必要あり
2個目のif(RST)はif(!RST)のタイポ
239 :
774ワット発電中さん :05/01/14 20:28:19 ID:81hH15z4
>>239 スレ違い
こっくりさんにでもきいてくるんだなw
>>239 回答も何も、2のシミュレーションが通るまで記述を修正せよってのが課題だろ。
>>239 キミみたいなのが将来うちの会社に紛れ込むと迷惑だから
住所氏名を教えてくれる?
と、ひきこもりニート君脳内できる社員が申しております
住所氏名はともかく都立大であることはわかるわけで
VHDLのentityで定義するbufferの意味がわかりません・・・。 どなたか教えてください
>>237 程度の回路規模ならともかく、機能が込み入ってくるとハードウェアを念頭において考えられなくなってしまいます。
例えばSDRAMコントローラぐらいになると漏れ的には機能を満足することで頭がいっぱいに・・・
回路を念頭に置いたHDL設計を上達するためのアドバイスをよろしくお願いします。
どうもプログラム気分になってしまう。
PS
それでも論理合成ツールが賢いのでそこそこ動いてくれるのが助かってますが。
247 :
774ワット発電中さん :05/01/15 17:14:13 ID:EzexuhFm
>>239 平成11年7月27日
11年から留年坊や?
毎年同じ問題出すのはよくあること。 大学行ったことないのかい坊や?
>>246 ステートマシンなどのランダムロジックとデータパスを
分けて考えるといいんでない?
>>245 outは右辺値にできないがbufferなら右辺値にもできる。
ただbufferはあまり見かけない。
outと同じ信号をsignalで用意してそれを参照することが一般的だと思う。
251 :
774ワット発電中さん :05/01/16 23:52:33 ID:5DrLSNTn
FFのリセットは非同期が普通? どこの 世界の普通? クロックない 石なんて今更 どこにあんの? お前 不安定な初期状態の一般にいわれる Q、Q^ 測定した事ある? 学生か
>>249 SRDAMコントローラはインタリーブを効率よく行うためのバンクの割り当て方が難しかったり、
Act->Com->PreChgを効率よく行わないといけない。
ランダムロジックとデータパスを分けるなんていう難しさとは違うよ。
>>251 システムリセットと勘違いしてるんじゃね?>>普通は非同期
>>237 の云うようなFFのリセットは非同期が普通なんて聞いたことがない。
ディジタル回路設計は普通感覚や、常識や道徳で作るモノではない。
しかもenableはCLKと非同期と書いてあるのに一発しか叩いてないし、
メタ・ステーブルの発生するところにゲートでロジック組んでるし。むちゃくちゃ。
>>254 237じゃないけど
エッチ・ディー・ラボのデザインマニュアルも初期リセットは非同期リセットにしろって
書いてあったと記憶している。某社のLSI設計マニュアルもそうなっていたと思う。
エッチ・ディー・ラボのHPでデザインマニュアルの目次が見れるが、初期リセットは非同期
リセットという項目があるんで間違いないと思う。
ttp://www.hdlab.co.jp/ もうエッチ・ディー・ラボはマニュアルを扱っていないけど
"RTL設計スタイルガイド初版"が 半導体理工学研究センター(STARC)で入手できるもよう。
ttp://www.starc.or.jp/index-j.html STARCのマニュアルは読んだことがないんで、同じ記述になっているかは不明。
256 :
774ワット発電中さん :05/01/17 01:47:07 ID:TdGG//AH
学生にもわかるように 端的に言うと 人間が最終的にコントロールするのは 結局アナログインタフェイスだよな いくらディジタル もとい ディジタルが 発展すればするほど 最終的にアナログを操作しないと使えないんだよ DA変換で一番必要なのは クロック これないと バッファ、サンプリング できないよ だから クロックはあって 「普通」だろ? 他にもたくさんあるぜ。 同期 これ 必需。 これないと なにも使えない
257 :
774ワット発電中さん :05/01/17 01:49:41 ID:TdGG//AH
おまい それ なんでリセットすっかわかってんの?
hdlabはコンサルだからな。スタイルガイドはデザインルールではなく、デザインガイドラインだ。 繰り返すがやつらはコンサル屋なのであり、設計屋ではない。 FFにしたって(プロセスにもよるが)非同期よりも同期式のほうが面積が小さい場合が多い。 「普通は非同期」の一点で設計するやつはなにも理解していない、コンサル屋の思うつぼ。
面積は小さいが、非同期だとクロックツリー張れるからタイミング調整楽という説も。
>>256 うーん、クロックからアナログにまで発展したので期待したのだが枝葉を省くと、
”学生にもわかるように 端的に言うと
ディジタル回路なんだから、クロックはあって 「普通」だろ?
他にもたくさんあるぜ。 同期 これ 必需。 これないと なにも使えない 。”
ってことよね。これで学生納得するのか?こんなのはどうだ?
"順序回路だからこそリセット要るのよ。順序回路なんだからとうぜんクロックあるでしょ。
だからいろんな問題ある非同期じゃなくて同期リセット使う。"
電源投入時の過渡状態を考えれば、非同期リセットにしておくのが無難。 同期リセットより面積が大きくなったとしてもそれは必要なコストってだけの話。
同期リセットを追加するのは仕様によるだろうが、 クロック停止状態でも初期化できるように 初期化必要なFFには非同期リセット使うのが普通。 同期リセットだけで非同期リセットできない回路なんて スキャンテストの時にいい迷惑。 スタセルには非同期セット/リセット付きセルが用意されてるし、 同期リセットを使う方が余計なロジック増えますよ。 ここにはFPGA屋と学生しかいないの?ASIC屋はいないのか?
クロックがいつも供給されてるって発想がアホ
>>262 に同意。
ASIC設計だと同期リセットはリスクをちゃんと理解していないうちは使わないほうがいいよ。
エッチ・ディー・ラボからSTARCに移管されたマニュアルも
変わらず非同期推奨です。別に「コンサル屋の思うつぼ」と言われてもねぇ。
>>264 >エッチ・ディー・ラボからSTARCに移管されたマニュアルも
>変わらず非同期推奨です
おまえはアホか?
そんなもん何の基準にもなるかよ。いったいどういうオツムの構造してんの?
266 :
774ワット発電中さん :05/01/17 13:46:13 ID:TdGG//AH
ASICは用途別に やたらあるから あれを普通?というのは 極端だろ? 設計しねぇで スキャンばっかしてろ 他人の造ったもん 波形だけで 何がわかんだよ!ベン図からやり直せ オモシロスコープ!
>電源投入時の過渡状態を考えれば、非同期リセットにしておくのが無難。 逆だろ。 電源投入時の過渡状態を考えれば、同期リセットにしておくのが無難。 だよ・
>>267 なぜそうなる?
ほんとに製品作ったこと無いな。
>>267 >電源投入時の過渡状態を考えれば、同期リセットにしておくのが無難。
外バスのインターフェースなんかの出力が不定でもいいんですか、へ〜。
お前のチップは、気が付いたら勝手に外メモリの中身を壊してたり
バスがぶつかってデバイス壊したり、しかもそれは個体差があって
原因解析が困難だったりしそうで、到底商品として成り立たない罠w
それぞれの専門分野でそれぞれの常識があるんじゃね. 俺はASICで既存のシステムへの組み込みを想定した回路設計 やってるから非同期リセットが基本,て考えてるけど. ASIC想定してる奴も他の何か想定してる奴もこのスレッド見てるんだからさ, それぞれの"普通"で話してたらかみ合わなくて当然じゃね? ASICならこの記述,他の何かならその記述,それでいいだろ. 前提条件がはっきりしないままでの不毛な喧嘩はやめて みんなで一緒にrtlでオモシロスコープ記述しようぜ.
>>270 確かに、別に感情的になる必要ないよな。
----------------------------------------------------------------------------------------
ある国内半導体メーカーのデザインマニュアルのリセットの項目を要約すると。
同期リセットを推奨するが、初期化リセットについては非同期リセットになるようにしてください。
理由は、、初期リセットは、通常のバスとは異なり、タイミングの問題がなく タイミングを合わせる
為のゲートが削除できます
また、同期リセットにした場合、ゲートレベルのシミュレーションにおいて、値が確定しなくなる
(Unknown状態) になることがあります。
------------------------------------------------------------------------------------------
LSIのデザインをしている人は、多分同じような記述を見たことがあるんではないかな。
結局のところ、大抵の人が最初にデザインガイドとかで読んだことがベースになっているのでは、
同期リセットを主張する人の、情報ソースや同期リセットを選んだ理由は何なんでしょうか?
もしも、同期リセットが望ましいChipがあるのなら知っておいたほうが良いですからね。
272 :
774ワット発電中さん :05/01/17 22:15:35 ID:/XQigBzI
まず、ここまで読んだ感想として、専門家が素人に知識振り回してコケおろすもなんだかなぁ。 で、疑問ですが、 >タイミングの問題がなく タイミングを合わせる為のゲートが削除できます 非同期リセットで、タイミングの問題が楽になるのは分かる。 「タイミングを合わせる為のゲート」は減るのかも知れないが、 トータルでは やっぱ増えるのかな? 規模によるのかも知れないけど。 >ゲートレベルのシミュレーションにおいて、値が確定しなくなる これは某合成ツールを使用する前提でのRTL記述のミスでは? 某合成ツールを使ってるなら、sync関係の属性を正しく指定すればシミュレーションでも 問題は起きないと認識していますが。
クロックが常に供給されていてFFがステートマシンぐらいにしかない 規模の小さなコントローラーチップなら同期リセットでもいいんでない? 漏れの設計分野はミリオンゲート越えるマイコンで、リセットラインに STAなんてやってられないし、複数のクロックドメインがあるし、 省電力対策でアクセスしないFFのクロックは止めるし、 DC動作は要求されるし、非同期リセットが常識の世界だけどね。
>>273 270 で記述しましたがメーカーのデザインガイドの記述内容なので、自分が回答するわけにも
いかないので、逆に疑問点を質問
>トータルでやっぱ増えるのかな?
これはどういうことなんでしょうか? 初期化リセットを非同期にしたときに、
追加される回路とは何なのでしょうか?
>某合成ツール...RTL記述のミスでは、
そうなのかもしれませんが、人間はミスをする動物ですし、同期リセットにしたら
問題が起きるから某ツールは使うなとメーカーは言えないのでは?
>某合成ツールを使っているのなら...問題はおきない
同様にLSIメーカーがツールを指定するわけにはいかないのでは?もちろん推奨は可能で
しょうが。
非同期リセットでは問題とならないという前提ですが、
特定の条件でしか起きないとか、特定のツールを使えば避けられるというよりは、
メーカーのデザインマニュアルでは、必ず問題にならない方法を推奨するほうが、
良いと私には思えますが。
>トータルでやっぱ増えるのかな? >これはどういうことなんでしょうか? 初期化リセットを非同期にしたときに、 >追加される回路とは何なのでしょうか? クロック・ツリー・シンセシスならぬリセット・ツリー・シンセシス トランジション・エラーにならない程度にバッファを追加する。
>>275 >>トータルでやっぱ増えるのかな?
>これはどういうことなんでしょうか? 初期化リセットを非同期にしたときに、
>追加される回路とは何なのでしょうか?
(FF+AND)と(非同期リセット付きFF)とを比べると割のオーダで違うはずですよ。
トータルでという意味はセル単位で見れば同期リセットのほうが安いですが、
タイミングの合わせこみに要する諸々の面積をトータルで考えると非同期のほうが
安かったりするのかなと。もちろん、非同期でもタイミング調整に必要な面積は、276
さんの言うとおりただではないのですが、それでも非同期のほうが安いのかなと。
>非同期リセットでは問題とならないという前提
昔は非同期リセットこそ属性指定しないと大変な目にあったのですが、いまは
事情が異なるようです。
で、同期リセットマンセーな人はどんな回路設計してんのか教えてよ。
別にマンセー(意味が分からずかなり調べたよ)ではないけど、面積の関係で仕方なく同 期にしてるというのが正しいです。 ・属性に関しては過去の経験からどの道つけなければ落ち着かない。 (今は事情が異なるとしても) ・リセット時の状態に関しては、外部リセットを直接全FFの非同期リセットにはとても使 いたくない(いったんフィルタを通したい)。これも古い考えかもしれませんが静電気で 苦労したくないので。リセット時の対策は別の手法で行っています。 そうした状況で、どちらかというと同期を選択していたというわけです。 ところが、近年はリセットのファンアウトに伴うバッファ段数増加によるタイミング調整に非常 に苦労しています。面積さえ許せば同期に変更する口実が得られるので喜んで変更します。 ていうかそろそろ限界なんで同期にさせてくれと上司にお願いしてるけど、「安いの?」と聞か れて「すいませんでした」と答えている。
ASICを設計していると前提で、 >リセット時の状態に関しては、外部リセットを直接全FFの非同期リセットには >とても使いたくない(いったんフィルタを通したい)。 ピンから直接FFの非同期リセットにつなぐことはまずやらないのでは? 何かしらの対策回路を施すのが普通だと思っていましたが。 >面積さえ許せば同期に変更する口実が得られるので喜んで変更します。 非同期に変更する、ですよね。 使用しているセルライブラリに非同期リセットつきFFがあれば どれほど面積が増大するか比較検討しても良いかもです。 直感ですが、非同期化に伴う面積増加を許さないほどマージンの無いマスタを 使っているならレイアウトの収束がかなり厳しそうに思えるのですけどいかがでしょう。
>>279 >静電気で苦労したくないので...同期を選択して
初期リセット時の静電気による誤動作に、同期リセットが効果があるってのはどうやって検証したんでしょう?
また、効果ありと考える技術的根拠はなんなんでしょうか?
そもそも、初期リセット時の誤動作を静電気によるものと、どうやって分かったんでしょうか?
自分ははじめて、そういう問題を聞きましたが、これって常識? 最近のメーカーのデザインマニュアルでは
リセット時の静電気による誤動作について警告してあるんでしょうか?
静電気対策ってのは、入力段にアナログ的な回路で対応するものとばかり思っていました。
>>近年はリセットのファンアウトに伴うバッファ段数増加によるタイミング調整
ゲート数が大きくなると、リセットのスキューも問題になるということでしょうか?回路設計だけでなく、
レイアウトもされているということなんでしょうか。大規模な回路を設計からレイアウトまでされているのですか?
かなりの大企業にお勤めなんでしょうか?小さいところじゃ、静電気による誤動作の検証も難しい気がしますね。
282 :
774ワット発電中さん :05/01/18 09:40:53 ID:OFHhRCen
は?静電気って何v? 静電気による 誤作動って 静電気が通電したの? それとも 静電気による 誘導電流かなんか? 聞いた事 ないっちゅ オモシロスコープびーむ
論理設計やってる学生なんだけど、 同期にするか非同期リセットにするかはいつも迷うところで、 いつも適当に決めてきたけど、 どちらが正しいかは実際現場でも確定してないんですねぇ。
リセットに対する考え方の違いか? リセットは初期化(電源投入時)でしか使わないって設計もあるだろうし、 動作中にちょくちょくリセットかける & 1クロックでリセットされないと困る & リセット信号は当然クロックに同期してる なんて設計もあるだろう。 前者と後者のリセット信号を同じ用語でひとくくりにするのが無茶なのかもな
285 :
774ワット発電中さん :05/01/18 10:34:07 ID:OFHhRCen
どっちでも使うんだよ要するに、 ただ 俺らは人間だから あの黒い石に負けちゃあいかん! 俺はフリップ フロップを ファイナル ファンタジーにする!
286 :
774ワット発電中さん :05/01/18 19:24:15 ID:5kOLHXfl
俺らは人間?
288 :
279 :05/01/18 20:06:38 ID:z1NjAUwj
>>281 >>282 > ・リセット時の状態に関しては、外部リセットを直接全FFの非同期リセットにはとても使
> いたくない(いったんフィルタを通したい)。これも古い考えかもしれませんが静電気で
> 苦労したくないので。リセット時の対策は別の手法で行っています。
に対してコメントが付いているようですが。
私の記事の前に非同期リセットのメリットとして
>>269 のことが話題になっていました。
この話題に関してはこう解釈しました。
まず「電源投入時の過渡状態」に関しては 石に電源が供給されてから、発振が始まるまで
の区間と解釈しました。
次に「電源投入時の過渡状態のことを考慮すると非同期リセットが無難」というところから、269
さんはフィルタを通さない外部リセットを直接FFの非同期リセットに接続しているのかなと解釈
しました。フィルタが入っていれば発振始まるまでリセットの状態は決まらないからです。
そこで、私は静電気防止のために外部リセットにフィルタを使用するたちなので、非同期リセ
ットだろうが同期リセットだろうが発振が始まるまではFFの出力は決まらない。よって私にとっ
ては「電源投入時の過渡状態対策のために非同期リセットを使用する」という項目は当てはま
らない。リセット時の対策は別の手法で行っている。
と、そういうことが言いたかった訳です。
289 :
279 :05/01/18 20:08:54 ID:z1NjAUwj
訂正です
「電源投入時の過渡状態のことを考慮すると非同期リセットが無難」なのは
>>267 さんでした。 どうもすまんです。
特定の周波数成分を除去したり抽出する回路の意味で使っております。 電波関係の仕事を行っているので、特に気にせず一般的な言葉かと思っ て使用しておりました。 申し訳ありません。
293 :
290 :05/01/18 22:21:58 ID:LxZgqJ7y
フィルタは「特定の周波数成分を除去したり抽出する回路」のことですね。
まったくもって正しい。
でも、それと静電気防止がまったくつながらないので???????なのですよ。
>>291 さんが言っているフィルタとは具体的にどういうものなのですか?
チップ外部I/Opin直近に配置したEMIFIL(LとRでつくったフィルタ素子)?
それともチップ内部に作ったCRフィルタ回路のことですか?
どちらにしても
「フィルタが入っていれば発振始まるまでリセットの状態は決まらない」
って現象が発生するとは思えないのです。???????
少なくとも「メタステーブル防止のために挿入されるFF」のことでは
ないのですよね?
294 :
774ワット発電中さん :05/01/18 22:52:59 ID:OFHhRCen
ファイナルファンタジー がフィルタだよ…
295 :
俺様 ◆f0ugTrYQRI :05/01/18 22:54:06 ID:rG/9MYbY
(;´Д`)ハァハァ 誰か呼んでくれたでちゅか?
静電気防止厨 逃げたか
正直、静電気防止でリセットにフィルタを通すといわれて、紫外線フィルタしか思い 浮かばない電気設計者は貴重ですよ。
> 電波関係の仕事を行っているので なるほど。 これで手打ちってことでいい? 静電気の人の扱い。
>>297 そもそも「静電気防止でリセットにフィルタを通す」が意味不明だしなぁ…
むしろ、静電気防止でフィルタを通すってたわごとをいう自称プロの方が貴重。
静電気によるラッチアップ防止は保護ダイオードでやるものだろ?
ロジック設計者がケアすることではない。
>>279 はどこでどう間違って思い込んだかわからないが、
おそらくは、メタステーブル対策のために挿入するFFのことを
「静電気防止のフィルタ」と、てんで見当違いな呼び方をしてるんだろ?
そのため、まともな技術者とは話が噛みあわないってだけの話だ。
>>279 は本質的なメカニズムが理解できていないから
わざわざ非同期リセット信号にまで「静電気で苦労したくないために」
「フィルタ」と呼ぶフリップフロップをかましたりするんだろう。
想像を書いて消えますね。
>>298 >>299 この辺りの人はASICを組み込んだ製品を売る方とは考えにくい。
メタステーブルやラッチアップといった単語をしているところや、静電気と聞いて
ラッチアップしか浮かばないところからICがらみの仕事の方、ASICを作るまでが
仕事の人と想像します。
発振が始まるまで動作しないフィルタと聞いてLCRフィルタしか思い浮かばない
論理回路設計者もかなり貴重ですよ。
デジタルフィルタの最も基本的な回路と、その用法を説明する気力のある人に後
を託します。
批判だけして、根拠も示さず、ろくすっぽ説明しないで逃げるのか? そもそも"デジタル"なんて書いてること自体、随分イー加減な仕事をしていることの証明なんだが。
303 :
299 :05/01/19 20:57:32 ID:YHePCqqV
私はASICの設計もするし、PWBAのネットリストも自分で書く。 アートワークは外注だけどね。 LCRフィルタはシステムクロックとは関係なく動作するよね。だから 「フィルタが入っていれば発振始まるまでリセットの状態は決まらない」 とは矛盾するねって流れだと思ってたんだけど、読み間違えたかな? というか、リセット信号にデジタルフィルタをかますんですか? 初耳だ! 何のために? と、ここまで書いて気づいた。 フリップフロップ1個=デジタルフィルタ と強弁したいだけ? そりゃ無理!
>>301 メタステーブルとるFFはシンクロナイザ(同期化回路)と呼んでいる。
デジタルフィルタと言うとFIR/IIRしか思い浮かばないんですが・・・ヘタレですか?そうですか。
どんな回路がデジフィルなんだろう?
>>301 >特定の周波数成分を除去したり抽出する回路の意味で使っております。
これを書いたのはあなたではないの。これだと、ローパスフィルタでも入れている
んじゃないかと思うのが普通じゃない。
>>発振が始まるまで動作しないフィルタと聞いてLCRフィルタしか思い浮かばない...
もしかしてこれは、発振が安定するのを待ってからクロックを供給するってこと?
そうだとしたら、フィルタって言葉じゃ意図は伝わらないでしょう。
>>私は静電気防止のために外部リセットにフィルタを使用するたちなので 失礼、リセット信号に対するフィルタってありましたね。だったら違うのかな。 しかしなー。いくらデジタルフィルタかましたって、リセットの場合、幅くらいしか 変わんないと思うんだけどなー。そもそもデジタルフィルタが静電気に対して 効果があるのか?情報ソースは何なんだ。何かの本に、そうしろって書いてあるのかなー? 新理論のてんこ盛りでさっぱり分からん。
307 :
774ワット発電中さん :05/01/20 02:29:47 ID:Pi4Q19ja
FPGAやってる学生です。 非同期リセット使って回路の初期状態与えてるんですけど、 問題あるんですかね?
>>307 いいんでないの。初期化リセットを非同期リセットで行うのは、 半導体メーカーの
デザインマニュアルでも推奨されてたし、STARCのデザインガイドでも推奨されている。
今までの発言でも、同期リセットを主張している人は持論を展開するだけで根拠を
示していない。STARCはコンサルタントで信じるのはアホという発言もあったが、
いち開発デザイナーに検証できるとは考えられないし、裏づけデータなど持っているはずもない。
絶対に開発メーカーが正しいとは言わないが、その推奨に従うのはエンジニアの基本でしょう。
コンサル会社と半導体メーカーが、そのマニュアルに記述していることと、匿名の
掲示板の書き込みと、どちらを信じるのがアホだとあなたが考えるかでしょう。
ちなみにSTARCのデザインマニュアルは通販で入手できるみたい。値段は5000円くらいだったかな。
このとおりにデザインしているエンジニアは、あまりいないとは思うが、まじめに
勉強する気なら入手する価値はあると思う。アホというレスがあるかもしれんがね。
つーか、設計者が意図したタイミング、FFの状態を実現するのが目的であるなら 同期、非同期は特に問題にならないだろうね、リセットに限っては。 当然タイミングを100%管理出来るならリセットに限定する必要もないのだが普通は 面倒だから全部同期設計にしてるわけだが。
FPGAなら電源投入したあと電源電圧が確定してからconfigデータのロードを 開始するし、ロード終了して所定の機能動作を開始する頃には、クロック信号も 安定しているだろう。 つまり、電源投入時の過渡状態を考える必要がないので、リセットを 非同期にする必要はない。同期でも非同期でもどっちでもいいと思う。
>>310 > 所定の機能動作を開始する頃には、クロック信号も安定しているだろう。
だろう。
だろう。
だろう。
なんか外付け抵抗1個で済みそうな話しがえんえんと..
>コンサル会社と半導体メーカーが、そのマニュアルに記述していることと、匿名の >掲示板の書き込みと、どちらを信じるのがアホだとあなたが考えるかでしょう ディジタル回路設計は信じる、信じないの宗教じゃねーんだよ。アフォ。
315 :
774ワット発電中さん :05/01/20 23:45:00 ID:IdSlLT1Y
自分を信じる
>>314 だったら証拠を見せて欲しいもんだね。アフォって言うだけなら誰でもできる。
コンサル会社が信用できないのなら証拠は何? LSIの中で起こっていることのすべてが
デザイナーに分かるとでも言うのか?宗教じゃないよ根拠、証拠を見せなさい。
はっきりしたことは分からないから、推奨にしたがうのは賢い選択であって宗教ではない。
あんたは、いちいち設計のたびに全てのことを検証しているのか、それともLSIの中の
信号の動きが見えるのか?
匿名の書き込に従わない、あるいは信じないのは、宗教ではなくて常識って言うんですよ。
>>314 あのデザインガイドのどの辺がダメなのか興味があります。教えてください。
エルピーダメモリの世界一奪取宣言はなにか裏付けがあるのだろうか? 取れるだろう? >LSIの中で起こっていることのすべてが デザイナーに分かるとでも言うのか? 俺の場合がシリコンが囁くね。ここは同期にしてくれって。 石の心がわかる。石伝心ってね。
いいや、ゴーストが囁くのさ。
電波関係の静電気防止屋ってもう来ないの?
おまえの発言だけを見ていると、頭が悪くて考えられないから、考えることを一切放棄して 長いものに巻かれようとしているだけに見えるんだが。 何か違うか?
そのまえに、おまえがなぜ同期RSTをつかうのか教えてくれ。
それはおまえがなぜ非同期リセットを使うかを答えてからだろ。
このスレ見てると、ASIC設計って世間ではすでに電気屋の仕事じゃな くなってるみたいだね。
>>324 ロジック設計は電気工学と関係ないもん
意図通り動かないときは、静電気が原因ってことにすればいいし
同期リセット屋はどんな理由でどういう回路に同期リセット使うのか、 静電気厨しか具体的なレスないけどw 同期設計だからリセットも同期リセットを使う、って程度の理由?
>>326 私は非同期リセット派なのだが…
直接メカニカルスイッチにつながってたりして、リセット信号が
システムクロックとまったく同期していないという環境では、
非同期リセット使った回路だと、うまくリセット処理できないことがあるよ。
キモはリセット信号がデアサートするタイミング。
システムクロックを基準に見て、リセット信号がデアサートするタイミングが
セットタイム/ホールドタイム違反すると誤動作する場合がある。
あるいは、同じIC内のFFにおいて、リセット状態から通常動作状態に復帰する
タイミングが各FFによって1クロックずれたりする。
(完全同期回路ならすべてのFFが同じクロックで復帰しないとまずいよね)
つまり、リセット信号のデアサートするタイミングは
システムクロックと同期してないと非同期リセットを使えないんだよね。
このような場合なら、リセット信号をメタステーブル対策して
各FFの同期リセットにつっこむのもアリかもなと思うよ。
まぁ、いまどきのリセット信号は専用ICが生成していて、デアサートタイミングが
ちゃんとシステムクロックと同期しているから、安心して非同期リセットが
使えるんだけどね。
>>321 じゃ、あんたの賢い頭でどうやって同期が問題ないとどう考えたの?考えれば分かることか?
初期リセットのような、不確定状態を経たときの挙動なんて、考えた通りになると断言できるかい?
あんたは、今まで自分の考えてきたことが、全て正しかったっていうのかい?
少なくとも自分は実際の挙動を観測しないと断言できないと思っているだけ。だけど、LSI内部の信号なんて
みれないし、そんなこと確かめているより、すなおに推奨に従うほうが賢いっていうのが自分の考え方。
考えないといけない事は、他にたくさんあるからね。
>考えないといけない事は、他にたくさんあるからね。 嘘コケ! 何も考えてないくせに。
>>329 つまんないレスだな。 少しは 賢さの片鱗とやらを見せてもらえないですかね?
なんだが、語彙も貧弱のようで、あなたの頭のよさが伝わってこないんですけど。
ここは自分の能力のなさを忘れられる唯一の場所なんだから、もう少し 寛容になってあげたら?
>LSI内部の信号なんて >みれないし、そんなこと確かめているより、すなおに推奨に従うほうが賢いっていうのが その理屈だと、人間の目で見れないものはなにひとつ確証無く作ることになるのか。 おまえ、技術者?
観測者が居ない時宇宙は存在しない。(w
>>332 人のことを技術者かどうか言う前に。自分の書き込みを少しは読み返してみたら。
技術的なことなんて、ほとんど書いてないんじゃないの。
賢い技術者って言うんだったら、少しは有益な情報を出してくださいよ。
だから、
>>331 みたいなことを言われるんですよ。
j/PPnuhmみたいな香具師と一緒に設計している人には同情します。
糞Qと同レベルの言い争いをいつまで続けるんだい? 君らに知恵は無いのか?
で、結局は新手の自演荒らしだったと?
つい先日まで誰かがやってたからなあ、一人で。
>>327 外部入力のリセットラインを内部で同期化・分配させるリセットモジュール作るのは半ば常識だと思っていましたが
そうでない人もいるのでしょうか?
専用IC使わなくても、内部の数百ゲートレベルで対応しちゃえばいいのにと思いますが
>>339 >外部入力のリセットラインを内部で同期化・分配させるリセットモジュール作るのは半ば常識だと思っていましたが
常識と思う根拠は何? 何の情報もなく、そういう回路をつける人は、いないのではないかな?
そういう記述を書籍やマニュアル、アプリケーションノート等で見たことがないんで、
常識というほどありふれた情報なら、情報源を教えてください。
根拠があるわけじゃないけど、
初期リセット時が問題なのは、動作の不確実さと思っているんですが。 リセット時でも、その内部回路だけは
確実な動作をするんでしょうか? 単純に矛盾を感じるんですが。
正直なところ、内部ゲートで対応して確実な初期リセット動作を期待できる回路があるのなら知りたいですね。
>>341 >309 ですか、2チャンネル風に言えば"逝ってよし"っていうレベルじゃないですか。
あまりに馬鹿馬鹿しくって、自分はレスする価値もないと、スルーしましたが。
面倒を厭わなければ、リセット以外の信号でも非同期で設計できるという主張をしているようですが、
初心者コースから受けなおしなさいって感じですね。
非同期の場合、Setup/Holdタイムや、動作パターンが増えて確実な動作を期待できないなど、
解決不能な問題があるのをご存じないのかな?
単純に考えても、たった6本の信号が非同期で、タイミングが決められない場合でも
2の6乗 = 64通りもある。この程度でもシミュレーションの検証なんかできたもんじゃない。
もうこのスレは駄目だな。
非同期設計っといってもいくつもあって、 単純に同期式のFFを非同期に駆動するとかいう方式は、 タイミングを完璧に管理しないといけなくて、アホらしいわな。 C素子みたいな非同期ラッチを導入して、 タイミングは考えなくてよくするという設計方法もあるぞ。
ていうか、今時FFのクロックをランダムロジックで作るような事を想定してる 奴は居ないだろうしそんな風に捉えてまで揚げ足を取ろうとする奴が居ること 自体驚きだ。
一部の例外としてあげてる部分だけをことさら強調して必死になって叩きまくるのは良くある話。 そうまでして何を主張したいかは解らないがウザイ事だけは確かだ罠。 マジでこのスレはもう駄目だ。
>>340 >>外部入力のリセットラインを内部で同期化・分配させるリセットモジュール作るのは半ば常識だと思っていましたが
> 常識と思う根拠は何? 何の情報もなく、そういう回路をつける人は、いないのではないかな?
339じゃないんですけど、外部入力をそのまま非同期のリセットラインにしてしまうと、
ノイズ関係が原因で誤ってリセット有効になっちゃいませんかね。
入力バッファをシュミットトリガタイプにすればである程度回避できるかもしれませんが。
なので外部入力のリセット信号は内部でいったんFFで受けて同期化するのが普通と思っていました。
間違ったところがあれば参考にしたいので御指摘願います。
>>347 >なので外部入力のリセット信号は内部でいったんFFで受けて同期化するのが普通と思っていました。
>間違ったところがあれば参考にしたいので御指摘願います。
間違ってないと思います。
ノイズによる誤動作の防止策として、リセットのアサートが規定クロック以上続いた時だけ
内部でリセットを発生させるようなリセット回路を組むこともあります。当然、
リセット端子にはシュミット付きの入力パッドを使います。
ただ、これをリセット信号を同期化するというのとは意味合いが異なる場合もあります。
リセットのノイズ除去のためのFFは、入力クロックで叩くのでしょうが、
システム全体はPLL出力駆動だったりして、入力クロックとシステムクロックの
位相や周波数が一致しない場合は、相変わらずシステムにとっては非同期リセットに
なります。
外部バスにノイズが乗らないようにするのが普通ですよ FFで受けて同期化したからってノイズの悪影響を逃れらなれないでしょ またクロック動いてないとリセットできないって困る場面は多いと思う
んー本当に電子回路の設計したことあるの?と疑いたくなるレスがある訳でかなり萎えますなぁ。
シフトレジスタ並べてリセットノイズ避けとか、もしかして俺だけ?
>>351 シフトレジスタはもったいないので、カウンタ使ってる俺。
FF1個ごとにフィルタリング能力が、倍々になっていくのが貧乏根性を
刺激する。
>>349 >外部バスにノイズが乗らないようにするのが普通ですよ
>またクロック動いてないとリセットできないって困る場面は多いと思う
そんな分かりきったことを言われても。。。
ボード上でノイズ対策は当然するとしても、
世の中にはノイズがのるのを避けられない、
ノイズがのることを想定して設計しなきゃいけない
システムがあるってことを知ってくださいね。
誤動作するほどのノイズが乗っちゃえばどの信号でも同じだけど。 基本的に外部リセットって、複数のデバイスからリセットが出力されることを 想定して、オープンドレイン(コレクタ)にしてプルアップでハイレベルを保って ることが多いから、ノイズが乗りやすいんだよね。 だからASICの入り口で何らかフィルタ回路を挿入するのは、ごくごく一般的な 話かと思っておりました。 でも、このスレ見る限りそうでもないみたいですね。
私も筐体とかその他シールド、アナログフィルタ等で対策して尚問題になるノイズが パターンに乗るなんてシチュエーションを体験したことがない。
オープンドレインで設計しても、ちゃんとインピーダンス設計すれば そうそうノイズ乗らないよ。 それでもノイズが載る環境ならボード間配線に光ファイバ使いなされ。 デジタル回路なのにロジック設計でノイズ対策するって SECDEDとかの符号処理訂正で対策するってならわかるけど ここのスレの話はレベル低すぎるよ。
・・・マジで基板まで含めてデバッグをやってる人が書いてるとは思えないのだが・・・
>>357 いつも理想の対策打てるわけじゃないでしょう。
ノイズ対策は、その石のアプリケーションが人命に関わるものなのか
玩具なのかで対策の程度も違うし、費用対効果も考慮して決めなきゃいけない。
脳内理論振り回されても実設計には全く無意味。
お客様が繋ぐモノ、使う場所はいろいろだからなぁ
誰だ! ロジック回路の入力に商用100Vをつないだ おたんこなすは!!!
双方とも何を書いてものれんに腕押しだと思います。 住んでる世界が違いすぎて。 共通の認識としては、 >レベル低すぎるよ という一点だと思います。 スレの流れを少しでも正常化(HDLのスレだよね)するために、お互いこの件に 関しては以後スルーしてはどうでしょう。
>>355 パチンコ・パチスロは対策しても出来ない部分もあるので、ノイズがパターンに載ります。
ケースが透明プラでシールド機能は一切使えない。基板の直近に金属レールに乗っかったパチンコ玉やメダルが
静電気を巻き散らかしながら何千個・何万個と流れる。
基板のグランドとつながるべき大地アースはまったく期待できない。
フィルターで予測できる周波数を超えている場合が多い。(電波暗室で実験しているのは50,144,430,1200の4バンドで
しかもFMのみ。800,900,1500もないです。KWクラスを照射しますが、実際の現場でエラーが発生することもままありました。)
ボード間通信は光にできません。(規則による)
リセットは非同期で受付ますが内部のシーケンサ通して同期化します。P業界ではこれが標準のようです。
>>363 あ、IDがCQだw
えーと、ついでにいうと、金がかかっているので、ノイズが載って不具合になると別の意味で「人命にかかわる」
事態になってしまいます。(以前、動作がおかしくなって入賞がちゃらにされたといって刃傷沙汰になったことがある)
対策は必要だという認識は一致していて、入れる場所が違うだけではないか。 状況によって最適解は異なるわな。 今までの所ソフトが対策すると言うのはないようだな(w
366 :
パチンカー :05/01/22 19:24:54 ID:BskEHsd7
パチスロのIPアップしてくれ。 お願いだ。
>>363 通信に双方向が許されてないとかってのもあった気がするな。
バッファは244かその相当品に限るとか。
画像ボードの方を担当したことあるがI/F関係は如何にも数時代前
って感じで驚いた事がある。
>>365 そういえば、昔チャタリング除去で暴れていたやつがいた気がするな。ソフトがどうとかって。
>>366 メインのコントロールはZ80相当品なので、管轄外w
ハード屋はリール制御とか画面表示しかやれない。
回路図とかアップしたら首がとぶので勘弁してよ。
>>367 通信は、主基板(メイン抽選基板)に入っていいのはパチンコなら入賞口のセンサー情報だけ。スロットはスタート・ストップのスイッチと
コイン数くらい。あとはすべて出力のみ(リールとか表示基板とか)
世間で言う遠隔操作なんて、ハードを改造しなければ出来ませんが。とパチ板で書いても信じてもらえません。
あそこの人は出力ポートに信号を入れると中のプログラム(パラメータ)が書き換わったりすると信じているみたいです。
おそらく、静電気に一番気を使うアプリケーションの一つでしょうね。(これ以上は静電気スレ行きかも)
> あそこの人 賞金懸けたテレビゲームに熱中する方々ですから
日本国において最高レベルの教育を受けるも、 その上がりをブタ正日に貢いでいることを認識しろ。 そして恥じろ。そして、少なくともお前の給料の何%かは俺の金であることを自覚しろ! 少しでも罪の意識があるならパチンコの攻略法をここに開示しろ!
あそこの人、必死すぎ(w
372 :
774ワット発電中さん :05/01/24 20:49:52 ID:QbYUXNYO
あほー あほー
>>370 うちの会社は純国産メンバーだけなのと、朝鮮系のメーカーとはご縁がありませんので
直接の売り上げが総連経由で北の偉大なる首領様にみつがれることはありません。
んで、悪いんですが、ハードがメインなので攻略法は知りません。エロ本出版社の白夜かコアマガの出してる
攻略本を買ってください。まあ、あれも噴飯物らしいですが
というか、あんなもんに金つぎ込むなんてあなた、頭悪すぎw。そんなもんに金出すならコンフィグROMの
一つでも買って(ry
> というか、あんなもんに金つぎ込むなんてあなた、頭悪すぎw。 「お客様」になんて言い草。
375 :
774ワット発電中さん :05/01/25 20:13:48 ID:j1WqNj4x
>>374 カモが「お客」なのは「パチンコ屋・スロ屋」だけで、メーカーにとって「客」はパチ屋だけだろ?
パチンコ自身を買うなら客なんだろうけど
そうか。でも、けっこう直結に近い関係じゃないかと思った。
すべては顧客満足の為に。 お客の評価はカモ次第だから無縁じゃないわな、やっぱw
>>375 家電だって何だって直接の客は量販店だよ。
パチ関係の仕事をしたことがあれば裏ROMが無ければ何も出来ないことが解るはず。 しかもそれをメーカーが管理して本物の裏ROMがほぼ存在しない現実。 ま、あんな所に行って金を捨てる奴は馬鹿だって事だ。
380 :
パチンカ :05/01/26 15:04:58 ID:HzstuGeh
>パチ関係の仕事をしたことがあれば ヲイヲイ そんな仕事したことおまへんがな。
ちんこの話はスレ違い。 パチ業界でFPGAもCPLDも使えなくなったんで(某寺代理店曰く)、ここのスレは無関係になってるんと違う?
罪のCPLDを使ったことがあるのだが、画像基板にはOKじゃね?
>>382 去年の7月の法律改正でサイクロン2 200万個の商談がダメになったと漏らしていた。
新規格のモノは一律禁止なんだってさ。画像基板用のやつだったらしい。
384 :
774ワット発電中さん :05/01/27 19:02:53 ID:EnoVMFaC
誰か時計のプログラム書ける人作ってください;;
385 :
俺様 ◆f0ugTrYQRI :05/01/27 19:31:41 ID:WFt/vJAs
(;´Д`)ハァハァ 誰か100円電卓と同機能のVHDL書いてくらはい!
387 :
774ワット発電中さん :05/01/27 23:36:46 ID:RX+iPf8t
388 :
774ワット発電中さん :05/01/28 19:36:36 ID:V4darPSJ
> 誰か時計のプログラム書ける人作ってください;; > 誰か100円電卓と同機能のVHDL書いてくらはい! で、書いたら実物を作ってもらえるとか? だったら考える。MAX IIの一番でかい奴で頼むわ。
>>389 IOWRにグリッジが乗った時点で、ISAの仕様(最小パルス幅等)を満たしていない
と思うが?
ISAバスの場合、SYSCLK周波数は、M/Bによってまちまちだし、IOWR等の制御信号
とクロックとの位相関係は規定されていないので、クロックでサンプリングする
というのは、ISAバスの設計としてダメダメだと思う。
どうしても、クロックが必要なら、14.31818MHzの方を使うのが定石。但し、信号
との位相差は規定できないのはSYSCLKと同様。
verilogでの記述するときって、casexって使わない方がいいの?
>>392 STARCのガイドにはそんなこと書いてあったなあ。あの本はHD○ボの○谷川氏の思い込み
だからうのみにしちゃだめ。
一寸考えたら解るんじゃないの? どう合成するんだろうな?
ちょっと考えれば無問題ってわかるだろ?
>>392 don't careをちゃんと理解してれば無問題
>>392 記述していて使う必要がなければ使わなければいいだけだろ
論理圧縮という言葉を知っているのか?理解しているのか?
いろいろ意見ありがとうございます。 僕の意見を書くと、個人的には、casexは全体を把握しやすいと 思うので、いろんな条件をassignで書くより 記述ミスを見つけやすいと思っているんですけどね。 最近は回路規模より可読性重視記述になっています。<自分 そうするとどうしてもcasexを使いたくなるんですが、可読性って 観点で見た時、casexとcase、assignやifでどれがいいと思います? 一行レベルならassign xx = dfdsaf ? fasdf : fdasf ; 2、3の条件ならif それ以上はcasexって感じかなぁと思っています。
casexで書いたからって回路規模に影響するとしたら、 単に合成がタコなだけでしょ? ま、現実にタコが多いかどうかは別として。
>>398 casex で複雑な条件文を書くというのがピンと来んです
こんな感じ?
casex(1)
(a & b & (c==123) & d) : 処理A;
(e | f) : 処理B;
:
:
これじゃ case 文でいいよなぁ
じゃあこうかな?
casex( {a,b,(c==123),d,e,f} )
6'b1111xx : 処理A;
6'bxxxxx1 ,
6'bxxxx1x : 処理B;
:
:
もし上記のいずれかなら自分は if else だな
if (a && b && (c==123) && d)
処理A ;
else if (e || f)
処理B ;
else if (...
:
:
以上俺トンチンカンな事言ってたらスマンです
>>399 マジであの記述をまともに合成出来ると思っているならお前は相当の馬鹿だよ。
>>401 casex がまともに合成できないツールなんて
バージョンアップ直後でバグが枯れてないリビジョンのDesignCompilerくらいしか
経験がありませんが
399のどこが相当な馬鹿なのか説明して頂けますかね
404 :
402 :05/02/01 19:32:37 ID:t1gfk7GF
Casex文で合成される回路ってのが想像出来ないんだがどんな回路になるんだ? 人間が一寸考えて回路にするのは面倒そうだなと思う記述ってなるべくしない方が 合成も軽くなる気がするんだが。
いや、不定やzを含んだ記述ではどう考えても回路にならない物があるように思うが。
よく知らないけど、casezとかcasexって、 単に入力側のdon't caseを書けるようにしただけじゃないの? caseだと全部書くところを圧縮したものだと思ったんだけど。 入力が本当にzかどうか判断しろといわれたら、 マッピングするテクノロジによっては困るわな。
>>407 いや、不定やzのビットは比較をしないdon't care扱いになる。
casex文なら
3'b1xx: 処理;
と書くと、合成ツールはMSBが1だったら他のビットは
どの値になっても構わないと解釈するので、
MSBにプライオリティのついたエンコーダが生成される。
少なくともDesignCompilerはそうだった(はず)。
casex文を使うと真理値表っぽく見えるので
使い方によっては可読性が良くなる場合もある。
てか、不定(zを含まない)はあり得る条件だからどうなるかは予想出来るし回路もだいたい解るよ。 設計図を使った設計でもでは割とあるし。(例えばさっき出たプライオリティーエンコーダとか) しかしだ、zを条件に含むとどうしようもないよ。信号がzかどうかは例えばトランスミッションゲート、バッファの コントロール端子の論理を見ることになるわけでそうまでしてcasexを使う意味を考えてしまう。
不定は、プライオリティーエンコーダの例もあって割と使う例なので良いとしてもzを含む場合は お手上げじゃないかと。 トランスミッションゲートやバッファのコントロール端子の論理をもって信号をzと判断するのは ありと言えばありだがそこまでやる意味があるんだろうか?
ISEを複数起動するようにする技を教えてくれぇ。 昔はできてなかったっけ?
>>412 > てか、不定(zを含まない)はあり得る条件だからどうなるかは予想出来るし回路もだいたい解るよ。
> 設計図を使った設計でもでは割とあるし。(例えばさっき出たプライオリティーエンコーダとか)
あう、矛盾してないですか?
>>405-407 のときはcasex文を使って合成された回路が想像できない
とおっしゃってたのでプライオリティエンコーダと答えたつもりなのですが、
予想できると言われると立場がないです…
で、繰り返しますけどcasex文ではxもzも同じdon't care扱いになるんです。
W96QUaCuはdon't careの意味を理解していないと思われ
別にそう言うわけではない。 dcを残したままだと合成が重くなるのは割と最近まで常識だったし 今でも合成回路の規模、速度に影響するから使わない方が良い。
don't careを残したままの設計でも合成出来るからokってのは一寸強引すぎないか? チューニングとは無縁の合成しっぱなしがokな設計で済んでる環境ならそれでも 良いのかも知れないが。 なんかもの凄いギャップに驚いた。
>今でも合成回路の規模、速度に影響するから使わない方が良い。 うーん、そんな事は無いと思うなぁ 俺は Don't care を条件式に書くのは casex でのエンコーダ系やアドレスデコーダ限定だけど その場合にはコードの可読性および保守の容易性も上がるし 合成結果の回路が悪くなったという経験も今まで無いよ 念のため手元の合成ツールのマニュアル見直したけど 「casex をこのように使用すると他で記述するより簡潔なRTLになる」 というような事しか書いてなかったよ
420 :
419 :05/02/02 17:08:42 ID:xIPziGYg
ちなみにそのマニュアルは6年前のもの
DWMになって恐縮だが、CPUの命令デコーダー合成の記事でdon't care の合成に及ぼす影響がつい最近記事なっていたのをみて、未だ状況は 変わってないんだなと思ったのだが。
>>422 確か一二月号だったと思うが。
色々と興味深いことが載っていたと記憶してる。
don't careの使い方によって問題が生じたなら それはdon't careの使い方がタコだったからでしょ。 常識的な使い方をしてれば無問題。 可読性の良いRTLになるし、 期待どおりに論理圧縮される。
そう言った意見はあまりに素人臭すぎ。 本当に設計したことあるのか?
制約条件ぎりぎりの大規模設計なら dont care なしでギチギチに最適化するだろうし、 納期優先 FPGA なら、さくっと使ってさっさと終わらせるだけの話。 状況に併せて使い分けるのがVerilog使いのプロでしょ。 制約条件厳しい設計できても、そういう手の抜き処が分からないってのは、 その環境では設計のプロかもしれんが、Verilog使いとしては半人前。
今日、某大手メーカーの設計部の主任さんに会って打ち合わせをした。 『1000エレメント程度であれば小規模な回路の部類に入ります。 すぐにできますよ。』 と言われた。 いかに自分がちっぽけで未熟者であるかということがわかりました。 やはり大手のメーカーさんは住んでいる次元が違うんですね(´・ω・`)
LEじゃねえか? 4入力1出力LUT+FFか?
>427 1000LEだと内容によるけど1週間くらいでシミュレーション検証までかなぁ〜 遅い?
> 制約条件ぎりぎりの大規模設計なら dont care なしでギチギチに最適化するだろうし、 うーん、失礼ながら don't care の性質を判ってないと思うよ don't care は曖昧に回路を表現するための手段ではないし 同じ論理に対して don't care を用いた記述か そうでない記述かによって 合成結果に無視できない差が出るような合成ツールは不出来だと思う
ゲート換算でおよそ一万数千て所か。 確かに小規模の部類かなと思いつつHDLを使うと記述によってどうとでもなる事でもある。 演算回路を書いたりするとあっという間だし。(w
>>431 だったら寺の論理合成ツールはタコなんだね。
貧乏な会社にはそれしか選択肢がないから困ったもんだ。
>>431 禿同。
それから、往々にしてツールが悪いのではなく、記述がタコな場合の方が多い。
don't careの使い方が悪くて、合成ツールが迷うような曖昧な表現になっているのだろう。
参考までに。 caseを使ったdon't careを含む(所謂ファンクションテーブルが穴だらけ)記述と 同じcaseを使った記述でも配列を使ったROM的決め撃ち記述では今でも確かに 回路規模と速度は変わる。 ゲート遅延が2nSとか、回路の段数が一段とかその程度の変化だが。 現実世界でこれを気にしないと行けないような局面は少ないが知ってると偶に 助かることがある。 だからと言っていつもいつもフルデコードで書く必要もないわけで臨機応変と 言ったところか。 漏れ個人はフルデコードで書くことが多いからdon't careを残す記述は何となく 気持ち悪いなと思いつつ面倒だから気にしないようにしてる感じか。
>>435 動作クロックによっては2nsの遅延は無視できないレベルですね。
参考にしたいので、できればそのcase文の記述をさらせませんか?
せめてcase文のビット幅だけでも・・・
遅延は使用したセルライブラリのスペックに依存するかもしれませんが。
>>436 仕事の案件だから晒せないが同じ例が、DWMの2004/12のP58に載ってるよ。
この記事を見て似たようなことをしてる人が世には居るんだなと驚いた。
尤も例はVHDLだし漏れもVHDL使いだからVerilogメインの話の流れだと
完全に当てはまる例では無いかもしれないが。
昨日「何月号か教えて」と言った者だけどさっきその記事読みました こういう事象の把握は大切だよね 比較実験を行ってベストな選択をしながら作っていくという場面は 自分の場合も実務上少なくないです 注意しなければいけないのは、 この記事だけで「これが最近の一般的な傾向」と判断するのは危険だという事 これはある一種類の合成ツール&ターゲットにおいての結果だから 他の場合の結果も併せてみないと一般的な傾向は判断できないものね というより「一般的な傾向」というものが仮にあってもそれだけに頼っては危険で 結局はその都度自身で試行しベストな方法を選択する事が必要だね (もちろん制約条件が楽な場合などは一般傾向を頼りにサクっと書きゃいい) あれ長文になった、ごめん
質問させてください。。 verilogでFPGAやってます。 -( R . I ) * ( R . I ) ←R.Iはひとつの変数です Rは整数部4bitでMSBは符号 I は小数部4bit こういう計算のとき、 -1 * ( R . I ) * ( R . I ) になりますよね。このときの-1は、単純に8'hffでよいのでしょうか。。
-1 も R.I (って、書き方変だが)で表現したいということ? それなら、2の補数なのか、符号付き絶対値なのかで違う。 前者なら、1111.1111 は -0.0001 の意味、後者は -111.1111 の意味で、 どちらも-1ではないな。 -1.000 は、前者なら 1111.0000、後者なら 1001.000
>>441 ありがとうございます。
レスいただいて20分ぐらい考え込んでたんですけど、
仕様書の周囲の数字の扱い方から符号付絶対値っぽいです。
(今回は何にも考えないでコーディングしちゃってるんで…)
確認取って修正します。ありがとうございました。
今日の帰り際
Q = (-1) * ( hoge1) * ( hoge2 )
って書いてコミットしてきちゃったんですけど、
もしそのままコンパイルしたらどういう扱いになるんですかね。
コンパイラによるのかな
もしかして、文字どおり hoge1 * hoge2 って書いてるの? それって、整数扱いになって、aaaa.bbbb * cccc.dddd Q は eeeeeeee.ffffffff みたいになるけど、 ほっといて下位8ビットとってきたりしないようにね。 しかも、ほんとうに符号付き絶対値なら、 場合分けしないで、そのまま掛けたりしたら、わけわからなくなるぞ。 ちゃんとテストも作れるような仕様書なんだろうな。
DESIGN_COMPILERで質問させてくだされ これって記述読みこむ時にワイルドカードは使えない? aaa_v01.vhd を読むときに aaa_v*.vhdな指定をしたいんですが・・・ 後、RTL記述読むときのcompilerって内部ゲートの入力openって チェックしてくれないのかな? 勝手に'0'固定されてるみたいなんですが・・・
>>443 ありがとうございます。
はい。乗算後のクリップと捨ては小数点位置気をつけてます。
>ほんとうに符号付き絶対値なら、
仕様書いたヒトを問いつめてきます。。
すみません、
>文字どおり hoge1 * hoge2 って書いてるの?
書いちゃってます。
皆さんどう書かれてるんですか、、、、
−1は置いておくとして、今回は小数点位置が同じなので
Q <= hoge1 * hoge2;
(8.8) (4.4) (4.4) ←これは小数点位置
で、
P = {Q[15] , Q[10:4]};
↑符号桁
と、書いてます。(14-11bitの判定もしてますが)
あぁぁああ、この質問ってverilog云々じゃないんですよね、ディジタル回路の基本編なんだろな
探す本を間違え…orz
デジタル回路というよりは、アーキテクチャの基本編かな。 ともかく、表現方法の仕様を完璧に洗い直さないとな。 符号付き絶対値だと、正+負とか正-正のときは、 絶対値部分の大小比較をしないといけないとか、心配のタネがつきんぞ。
>>446 ガクブルなので洗い直してきます。
(ていうかマジで((((;゚Д゚)))ガクガクブルブル)
ありがと。
>>444 dcモードは忘れたけどtclモードなら
set hoge [ls *.v]
read_verilog $hoge
入力openって、そのゲートに入れる信号をどこにもつないでいないということかな。
それならdon't careになるので処理はDC任せになってしまう。
入力openって基本的にハード設計ではやっちゃダメっしょ。 ちゃんと記述しないと。 出力openならともかく。
入力open? 論理合成に何か関係あるのか?
>>450 内部バスがHi-Zになるくらいしか思い付かんな。
シミュレーション時にでも問題になるんじゃね?
合成時にひっかかるようなとこにOpenがあるのは論外だろうと。
>>444 dc_shell-tなら448の通りだな。lsよりglobの方がTclっぽいけど。read_file -format vhd [glob *.vhd]
というか、こんなディレクトリ内容に依存したものではなくて、
普通は読み込みファイルリストなるものを作るのが常套だろう。
あと、勝手にゼロ固定したというメッセージがでてるじゃないか。
というかファイルを読み込んだ後check_design コマンド叩いていないのか。
ツールもまともに使いこなせないのかよ。。。 デザインの質も知れてるな。
454 :
774ワット発電中さん :05/02/04 23:47:23 ID:Qv08nITw
すみません教えてください。 Active-HDL3.1を使ってますが、シミュレーションをしていると、いきなり ”Unknown automation functiion called"と出てきて、シミュレーションできなくなりました。 シミュレーション出来るようにしたいのですが、どうすればいいのでしょうか。 おねがいします。
455 :
入門者 :05/02/05 13:45:04 ID:ESrO+/1+
Quartus2 web editionにもシミュレーターはついてるとは 思うんだけど、みんなは使ってないの?
maxplus2の時は付属のシミュレータ使っていたけど、 q2になってからはmodelsim-ae(だっけ?)がほとんどです。
漏れもmodelsim-ae
458 :
774ワット発電中さん :05/02/06 13:01:25 ID:b8jbvJhK
P業界って、プリント基板業界のこと?
パ○チソコ?
>>448 ,452
すまんが、それをDCでやる方法知ってたら教えてくれ。
できれば、
verilog -f temp.vc
ってやるときの、temp.vcをdcで読みこませれたら
一番いいんだが、いい方法ある?
>>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モードへ移行してくれ」というだけだし。
463 :
SDRAMコントローラ作成中 :05/02/11 15:24:08 ID:GLrczidg
CQ出版のFPGA活用チュートリアルという本で Xilinx のSDRAMコントローラIPの改造記事があったんですが、、、、 オートリフレッシュがコマンドとバッティングしたときにFIFOで解決するとなってました。 8段のFIFOにコマンドとデータを格納しておき、バッティングした時の待ちクロックによってセレクタ動作させると・・・ でも、こんなんでいーんでしょうか? 例えば、ホスト側がずーっとメモリにしっぱなしだとFIFOが溢れるように思うんですけど? ホスト側をバスWAIT端子でバスアクセスを中断させない限り解決できないような気がするんです。 プロフェショナルな皆様何卒教えてください。 因み、コントローラ自身は外部ホストからのリクエストでメモリにアクセスして、 そのリクエストがいつあるかわからない場合を想定してます。
酒飲みながら書いてるもんで脱文章だらけでした 訂正1:例えば、ホスト側がずーっとメモリにアクセスしっぱなしだとFIFOが溢れるように思うんですけど? 訂正2: 因みに、コントローラ自身は外部ホストからのリクエストでメモリにアクセスして
しらふで出直してこい
>>466 このオツムにこの発言かよ。イタイ、痛すぎるよおまえ。
468 :
774ワット発電中さん :05/02/12 13:47:03 ID:HeLBZWq7
469 :
俺様 ◆f0ugTrYQRI :05/02/12 15:19:54 ID:Kzl/Mfv8
(;´Д`)ハァハァ 中卒でちゅが… 誰か呼んでくれたでちゅか?
470 :
774ワット発電中さん :05/02/12 23:23:23 ID:yQha/6jB
今すごいなやんでるんですけど一万ゲートのFPGAで16bit32ポイント のFFT回路って作れるんでしょうか?悩んでも一万ゲートで合成できそう な回路がうかばんです。。。ちなみに回路設計経験2回目くらいです。 教授は”できないわけないじゃないウフフン”とうれしそうに笑ってました。 でも教授の言うことは5割くらいの確率で間違ってるのであんまり 信用できません。本当にできるのかどうか、できるのであればどんな風な 回路にしたら実現できるのか、ご教授いただけませんでしょうか。お願いします。。。
>>470 最初に考えなければいけないことは、三角関数の値の作り方と演算方法ですね
32ポイントだと三角関数は内部で計算せずに定数として使えばよいでしょう
バタフライ演算の入れ替えはソフトでごちゃごちゃ入れ替えるより回路で一発で入れ替えるほうが簡単です
最後に実効値演算で実数部と虚数部の自乗和の平方根が必要になるから、平方根を作る回路を考える
簡単な回路ということであれば、平方根は奇数を順に引き算すれば求められるからできない事も無いかな
回路構成を考える前に演算手順を明確にして相談したほうが良いと思いますよ
472 :
774ワット発電中さん :05/02/13 00:18:58 ID:Ft+9vbSB
計算はたとえば二進数でy=0.1001 * x だったら y = x/2 + x/16みたいな 風にしてバタフライ演算を順々にsubtypeを使ってcのプログラムの様にやっていく 風に考えてみたんですが、どうも一万ゲートに収まりそうにないです。。。 行にして1000行くらいになるし。16個の三角関数を掛けるところを一つの モジュールにして掛け算回路を共有しても3百行くらいになります。 そもそも根本的に間違ってるのでしょうか?長い回路くむのは 初めてで参考にした設計例もFIRの極単純な物しか見たことないです。 FFTをした後には係数を少し触ってIFFTするだけです。
マルチプライヤー使った時点で、1万ゲートは無理だろ。
やっぱ共通部分は何回も使いまわすように考えないとコンパクトには収まらない 処理時間の制約はないようだから、せっせとループを廻して同じ回路を何回も使うように考えよう 16個くらいだとDFTを16階やっても同程度の処理になりそうな気もする
475 :
774ワット発電中さん :05/02/13 00:43:31 ID:Ft+9vbSB
そうですね。もうちょっと絞って小さくしてみます。あ〜あんまり 複雑になると意味わかんないです。初心者はもっと簡単な回路から はじめるべきでしょうか。でも教授にまた馬鹿にされそうだ。。
がんばって、少しまとまったらまた教えてください
477 :
774ワット発電中さん :05/02/13 05:18:20 ID:sfTzSvkG
すみません教えてください。 galaxy使ってるんですが、プロジェクト立ててコンパイルしたらエラーで PTMがどうのこうと言ってるんですけどPTMって何ですか?
>>468 アル中・低脳・学歴コンプレックスはさっさと死ね。ぼけ。
479 :
774ワット発電中さん :05/02/13 21:32:07 ID:zaq02Jpu
.bdfの編集に関して教えてください。 バス出力(例:out[3..0])の1bit毎に 別々にoutputピンを割り当てる方法が分かりません。 (上記例だとoutputピン4本)
>>478 高卒暴露されてよっぽど悔しいんだね。ヨチヨチ
>>480 中卒は生きてる意味ねぇんだよ。かぁちゃんのおっぱいでもしゃぶってろ。この童貞坊やが。
>>481 よう!
久しぶりだな。
下げ方覚えたのかい?
483 :
774ワット発電中さん :05/02/14 01:19:10 ID:6BHivdq7
>>479 これはMax+PlusII?QuartusIIどっちの話?
エディタでファイル直編集は感心しないなぁ。
>>470 その前に演算にかける時間条件を示せ。
高速でリアルタイム演算が必要か1秒かかってもいいのかによって回答は大きく変わる。
時間制限が無いのなら、CPUをFPGAにぶち込んで、ソフト演算って手もあるわけだ。
485 :
484 :05/02/14 19:00:21 ID:jGjeVPSP
悪い、勘違いだ。 単位がゲートだった orz
別に単位がゲートだろうが、CPUが1万ゲートで作れればいいんだろ?
487 :
484 :05/02/14 21:38:32 ID:/KsS2x+x
>>486 まぁ〜そうなんだけど、俺の頭でCPU自作する自信無かったもんで・・・
LEと勘違いしたんだよー。 NIOS余裕で突っ込めるなと。
488 :
774ワット発電中さん :05/02/14 23:09:50 ID:nIZIhiXP
>>483 Quartus2です。すみません。
入社して早々、仕事の引継ぎでQuartus2使うことになりまして。
体得すると同時に、履歴を残して後々の教育に生かしたいです。
489 :
774ワット発電中さん :05/02/19 12:47:53 ID:Xbzgsqkz
QualtusII 4.2WebEditionでのVHDLですが、よくわからないことがあるので質問です。 procedureの呼び出し時に、引数に"00" & hoge( 5 downto 0 )と指定したらエラーではじかれました。 ためしにhoge( 7 downto 0 )としてみると問題ないようです。 エラーメッセージはなにやら型が一致しないと言っているようですが、どちらもstd_logic_vector型で、 procedure宣言でもstd_logic_vectorとしているので不一致となるとは思えないのですが。 ちなみにこのprocedureはレジスタの読み書きをマクロ風にしてみようとして、ビットが歯抜けになって いるレジスタを表現してみようとしたら上記のエラーになった次第です。 とりあえず全レジスタを歯抜けなしにして解決はしたのですが、どうも釈然としないので・・・
ageる馬鹿には答えをやらない。
最近490みたいなsage原理主義者つうか、 sageるのが正しいと思ってる勘違い馬鹿が増殖してるな。 スレタイに即した内容なら、ageで書いて問題なしだから気にするな489 俺はVHDL知らないから質問には答えられないがなー。
492 :
774ワット発電中さん :05/02/19 13:56:13 ID:OnsHRRLa
俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。
俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。 俺はVHDL知らないから質問には答えられないがなー。
495 :
774ワット発電中さん :05/02/19 16:02:42 ID:S7iIOrd2
何やってんだ? アホ
491==495
>>490 みたいにちょっと注意されるとキレるニワトリみたいな奴
多くなったよな。
ageんなって言われただけでこれかい?
>>496 「=」が2個なのにワラタ。さすがVerilogスレ。
真だろ。 ついでに、(491 == 495) && (491 == 497) も真。
>>499 「=」が2個というのはVerilogに限ったこっちゃ無いだろ。
もっといろんな言語を勉強すべし。
>>502 単に2ちゃんで”=”と書くのが一般的だからだろ。
「こいつはVerilog以外の言語でも”==”が使われてるのを知らないんだ!そうに違いない!!」
って浅はかで偏った奴だ。(w
491は×なやつだから常に偽を返す。 ===で比較しよう
>>504 んなのあったっけ? VerilogもVHDLもまともにわからんのですが
解説お願いします。(C++、Java、BASICなどはわかります)
10'd491===10'd497はfalse
>>10 'd497の俺が言うんだから間違いない。
507 :
774ワット発電中さん :05/02/20 15:25:43 ID: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回路で最終的にはバンドパスフィルター
みたいな事をしたいなぁと考えてます。。。
>>489 std_logic_vector'("00" & hoge( 5 downto 0 ))
でもエラーになるのかな?
stringかbit_vector辺りでオーバーロードしてない?
>507 バンドパスフィルターなら FFTではなくてFIR フィルターでは問題あるのですか? 乗算器のあるFPGAなら簡単に組めると思います。
>>484 ああ、すいません。大学でより複雑な回路を組まされるんですがその前の
演習問題ってことでやってます。Firは別の人が先に作ってしまったので
同じものをやるのもなぁってことでFFTをやろうと思いました。
>>506 へえ、別人にしては書き出しの文体がまるで同じ。
奇遇なことがあるもんだねぇ。へえ。( ´,_ゝ`)
> 491 :774ワット発電中さん :05/02/19 13:11:56 ID:w9pazgcN
> 最近490みたいなsage原理主義者つうか、
> 497 :774ワット発電中さん :05/02/19 20:37:28 ID:m6nitJOh
>
>>490 みたいにちょっと注意されるとキレるニワトリみたいな奴
513 :
489 :05/02/20 21:05:10 ID:YwwvT9HM
>>508 レスありがとうございます。
明日会社いって試してみます。
オーバーロードは使っていないので(プロジェクト全体でprocedureはこれ1つだけ)
たぶん影響はしていないと思います。
>>513 本来 "00" & hoge( 5 downto 0 ) でもOKであるべきだと思うけど、
エラーの内容からして、"00"がstd_logic_vectorと認識できないような気がする。
もうひとつ可能性として、procedure (signal a : in std_logic_vector)とか宣言しているなら
>>489 のような状況になるかも。ただエラーメッセージが489とは異なると思うけど。
その場合には procedure (a : in std_logic_vector) に変えてみるとか。
ちね
初めてカキコします
>>1 に何か作って遊んでみませんか、とありますが
例えばどんな面白いものが作れるんですか?
つーかcで描いたビヘイビアさえ動かない。。。 死のう || ∧||∧ ( / ⌒ヽ | | | ∪ / ノ | || ∪∪
あ動いた。やった。つーか阿呆みたいな所間違ってた。。。
>517 そりゃPONGだろう。
>519 あれ?死ぬんぢゃなかったっけ?
そんなことより、シミ 美容 どう?
>>517 亀レスですまん。俺はトリップ検索基板に仕立てて遊んでる。
初歩的なことで申し訳無いです。 符号付の乗算なんですが、 例えば、12bit同士の乗算で、(積は24bitで宣言) 積 <= 805 * 002(MSBは符号桁) としたときに、modelsimで「00100a」が返りました。 んでも、805のほうはMSBに立ってるので、期待値は「fff00a」です。 気が向いてMSBを32bitまで拡張したら期待値が出ました。本来はどう記述すべきでしょうか。 宜しくお願いします。
どこかで乗算は−1〜1の範囲にして計算するとモテモテと書いてあった
>>525 > 符号付の乗算なんですが、
Verilog-95だと、regとかビット数指定の定数は全部unsigned扱いなので、
記述側で符号拡張してやるとかしないといけないんじゃないかな。
Verilog-2001だと、reg signed と宣言するか、
定数なら 12'sd805 とかみたいに s をつければいけるはず。
規格見ただけで、試してないからわからん。
>>526-527 thx!!!
>Verilog-95だと、regとかビット数指定の定数は全部unsigned扱い
うわぉ、そうだったんですか!
では、32bit拡張は対応手段としては間違ってはいなかったのか…
>Verilog-2001だと、reg signed と宣言するか、
定数ではないので↑これを試してみます。
ありがとうございました!(感涙
すみません、勤め先行かないとツールが無いので、 明日試したら報告します。
乗算って符号拡張するだけで合うんだっけ? シフトと加算でやる乗算の場合、乗数(805*002の002の方)が負の時は、 それでは合わないと思っていたが…
>>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) と考えると、わかりやすいかな?
>>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分間考え込んだけど)
ありがとうございました。
533 :
531 :05/03/06 22:27:35 ID:cfGiKREI
>>532 ごめんなさい、ミスってました。$signed( )は、Verilog2001から みたいでした。
1995時代の教科書には載っていなくてあたりまえです。 出直してきます…
>>533 いえいえ、丁寧にthxです。
俺の本、$signedについて書かれてませんでした…orz
みんなどんな本使ってんですか…(この議論は何回も出てますが)
535 :
525 :05/03/07 11:00:34 ID: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宣言で逝きたいと思います。 ありがとうございました。
>>532 >思いついたまま適当に書いてたので、A*Bの直前で
> = (被乗数[12])? {20'hfffff,被乗数} : {20'h00000,被乗数};
>などと書いておりました。
符号「拡張」の記述なので、
意味的にも、出来上がりの回路イメージ的にも
{20{A[11]}, A} って書くのをおすすめ。
Verilog2001で書くようになってからは
この辺のとこは気にしなくなってきたけどね。
537 :
525とか :05/03/07 15:50:28 ID:Znwft+K8
>>536 >{20{A[11]}, A}
こんな書き方があることすら知らなかったです…orz
欲しかった書き方です!thxです
Verilatorを使っている人、いますか?
$sined は 2001について書いてる本じゃないと載ってないはず。 2001の規格をネットで探すとヨロ氏 キャプションのフォントがエラーで読めない・・・鬱
>>539 thx!!
2001について書いてある本…ってどんなんあります?
探してくる〜
で、見つからんわけだが。orz
542 :
774ワット発電中さん :05/03/20 11:05:41 ID:OX3JXprh
こんにちは 先日、CQ出版の「FPGAで学ぶ・・・」という ボード付きのテキストを買ったのですが ひとつ分からない事があるのでおしえてください ボードには電源スイッチ、リセットスイッチがなく コンパイル後DLして動作を確認したあと 自前で用意したACアダプタのジャックを ひっこ抜いて終了、という手順で使っているのですが こういうボードの扱いとしては正しいのでしょうか? (いきなり昇天しそう・・・)
>>540 2001について触れてる日本語本で俺が知ってるのは小林の改訂版の付録部分
あと英語なら、
IEEE1364 Verilog-2001.pdf
544 :
sage :05/03/20 20:13:32 ID:XoBTZJwB
>>542 俺も買っているけれど、FPGAに対するパワーオンリセットなNPROGRAMピンの
プルアップ抵抗でリセットからCR時定数でリセット解除されているからOK.
ユーザのリセットに関しては外部スイッチでリセットできるからそれでヨシ。
電源スイッチが無いのは痛いけれど、まー基板はオマケだからね。
>>536 部外者だけれど、俺も勉強になった。
ぜひ「FPGAで学ぶVerilog-HDL/2001」を書いてケロ。
546 :
774ワット発電中さん :2005/03/26(土) 16:29:47 ID:mxqPkEM6
アルテラ、Q2_WEB.Ed、VHDLで設計をしてきたのだが、 ICの入手性、コスト、容量の面からザイリンクスを使おうか 考え中。でもザイのフリーツールでの波形エディタがQ2や MAX+2に比べて使いづらくてしょうがない。 でもある奴から、言語で入れればかなり楽と聞いた。 そこでこれを勉強したいのだが、いい本やツールがあれば 教えてほしい。
いい本は、自分で本屋にいってわかりやすいと思うものを購入が一番。
Q2で設計/sim後、 ISEに乗せかえ VHDLならできるっしょ。 coregen使うと、Aに戻れない・・・
550 :
774ワット発電中さん :2005/04/08(金) 14:46:02 ID:Y8DuNm2U
XC9500 って1度も書き込んでない生のチップに 初めて書き込むとき、もしくは、未使用だった領域に書き込むとき ってものすごく時間かからない? iMPACTがハングしたと思って、強制終了させて、再書き込みしたら その時点までのプログレスメーター位置までは高速で書き込めるようになったけど それ以降がやはり遅いです。
(;´Д`)ハァハァ そうでちゅか? ボクチンのは15秒以内で書き込み終了するでちゅよ!
昔、20kの書き込みに15分かかったことがあった。 ショボいノートPCだったけど。
553 :
774ワット発電中さん :2005/04/09(土) 23:00:12 ID:xyXhrluB
>>551 キミの言うとおりだったよ。
配線が間違ってた。
逝ってきます。
>>547 波形エディタつかってテストベンチつくるんじゃなくてHDLで直接テストベンチ作って、modelsimでシミュレーション
するのがよっぽど効率的だよ。波形エディタ使ったことあったけどこりゃあかんとすぐオモタよ。
これはQ2でも同じだけど。
>>549 ほぼ等価なのがMegaWizardにない?スンナリとは戻れないけど。
>554 FIRとかCORRとかあたりは無料(ISE製品版に付属)なんだけど、 Aではフィルタとか有料じゃなかった? まあ、仕事で使うなら買うけどさ。
coregenの方がいろいろ種類あるなぁ
HDLの資格とかないんすかねぇ。 資格手当て申請できるんだけどなぁ〜
>559 へぇ〜 受けた香具師様いらっしゃいますか?
QuartusでVHDLから回路へするやり方がよく分かりません。 誰かご教授をお願いしますだ
Help->Tutorialとか
>>561 RTL Viewer の事を言ってるのかな? あんなもの糞だぞ。
回路図から何の回路ブロックか読取るだけで一苦労。 自力で回路図書いた方がマシ。
ついでに言っとくが、web edition じゃ使え無いからねー。
564 :
561 :2005/04/14(木) 21:56:07 ID:H3pVV/tz
>>563 そうなんですか・・まだ使い始めて2日目なんで・・
良い解説サイトとか無いですかね?
Mentor系(leonardoとかPrecision)のブロック図表記はよくわからんが、 Synplifyの表記ってそんなに糞か? RTL viewさせては、、、 ホホーこんな風に合成すんのか・・・と感心する俺って・・・レベル低すぎんのか?
566 :
563 :2005/04/15(金) 19:53:03 ID:+xIYTXZP
あれ? 回答勘違いしてるか? 質問の意図はどれだ? @VHDLから回路図を排出する方法 AVHDLから回路を作る(論理合成)方法 BVHDLから現実に動作するALTERAをプログラムする方法 俺は@だと思って回答したんだが・・・ RTL_Viewer なんか解説するまでも無いだろうし、あるとも思えない。
RTL Viewerみたいなスケマティック表示は慣れないと有効性が分らないよ。
決して初心者だましのツールではないと思う。
RTL書いてるときにスケマティックのイメージが頭の中で湧き、
スケマティックをみるとRTLが浮かんでくる位にRTLを習熟すると、
よさが解るし、DCなんかのマニュアルに書いてあることの意味が本当にわかってくる。
>>563 みたいなこと言う奴がよくいるが、単純に解ってないだけだと思う。
糞とまでは思わないけど、自分の合成後の回路イメージと違うところが あると、違う場所によってはちょっとむかつく… まぁ合成エンジンの癖をつかみ切れてない自分に対しての怒りというか…
>>567 > RTL書いてるときにスケマティックのイメージが頭の中で湧き、
> スケマティックをみるとRTLが浮かんでくる位にRTLを習熟
ここで習熟と思ってる人多いおおいよなぁ・・・
スケマなど思い浮かばない新人の方が、余程いい記述をするのはこのあたりに
原因があると思う。
てか、回路の中のデータ、信号のフローを考えるとこちらの思い通りに 動かしたい場合はどうこねくり回そうがRTLに帰着するわけでプリミティブ レベルではないにしろスケマが思い浮かばないようでは良い合成は 不可能で内科医? 現状では。
教えてください。 20msecパルス幅のパルスを入力、その15msecの状態をサンプリングし、入力 パルスが入力されたことを示すステータス信号を生成する。ステータス信号 がクリア信号により初期化される回路を作りたいんですが、検討がつきません。
572 :
571 :2005/04/17(日) 20:18:47 ID:EWscBuSq
VHDLで記述してます。基準周波数は1kHzです。
宿題は専用スレがあるよ
>>571 真面目なFPGAサイトを荒らさないで。
宿題スレは別にあるんだから無視するに限る。
> 真面目なFPGAサイト 宿題なら自分でやれ、と言われたようです(w
俺も真面目なFPGAサイトでハケーン
Verilog使い始めたんだけど、VHDLに比べ、エラーチェックゆるすぎ。朝から晩までシミュレーション。シミュレーションおたく用言語だね。
CとPascalみたいなもんですから・・・ってか?
581 :
774ワット発電中さん :2005/04/21(木) 23:33:13 ID:M/IlrLxb
どなたかシリパラのmoduleの書き方教えていただけませんか?? かけなくて本当に困ってます。 よろしくお願いします
Verilogのあいまいな言語仕様をメシの種にしてるところ EDA関係では多いからね。 実は大規模な開発ではVHDL使った方が楽というのは 確かだが、これは大きな声では言ってはいけない。
583 :
774ワット発電中さん :2005/04/22(金) 00:29:10 ID:pUETsLb+
大規模ってどのくらいから大規模なの?
回路規模というよりは設計者の頭数かな。 まあ一昔前だとVerilogの利点はあったよ。主にEDAツールの 関係からだけど。今はVHDLでもなんとかなる。 Verilogの大人数設計の場合は某ガイドラインに添って記述 しろってことだけど、あんなの読む時間もったいないよ。
某ガイドラインって一冊 5万くらいするやつかな?
大体SystemVerilogとか言ってるけど、CからC++への言語仕様の拡張の時だとコーディング環境そのものが変わった。 言語だけでは効果が薄い。今のEDAベンダにそんな環境は作れない。つまりしがらみの無い新しい開発はVHDLを使った方がいいよってこと。でもそんな開発ほとんどないんだけど。
VHDL と Verilog とりあえず両方試してみようと思って、1回づつ仕事で 10000LE クラスの ALTERAで設計してみたところです。 Verilog の方が記述量が少なくて若干楽かな と思ったんですけど、将来的な事も見越して 考えると VHDL をマスターした方がいいんですか? 次からどの言語使うべきか迷ってます。 SystemC とか言わないでね。 弱小企業ゆえ VHDL,Verilog くらいしか選択肢はありません orz
>>587 VHDLが良い
弱小企業ってどれぐらいだよ?
資本金と売り上げを教えて
でも、昔からそうだけど、言語の世界って何故か汚い方が勝つ というジンクスが・・・
おいらは、昔はVHDLだけだったが最近はVerilogだけになってるよ…
寺のFPGAを使っている時間が長い所はVHDLが基本だと思う。 ウチもそうだし。 所が趣味の方は、例の低価格Verilogを使ってるので今は両刀に なった。(ウヘ
>587 Verilogだよ。 VHDLみたいく記述量多くて、きちっとしてたら、 そこでバグとれちゃうじゃん。 そうなったら、コードチェッカも売れないし、 アサーションとかプロパティチェッカとかの ありがたみも少なくなるし、なによりシミュレータが数 売れなくなるじゃん。 次はSystemVerilogがあるんだからおとなしくVerilog 使っとけってこった。 とEDAベンダーの人間は心の中で思っている。
593 :
587 :2005/04/23(土) 00:23:21 ID:JFVybF3M
みなさんレスありがとうございます。 貧乏人にはVHDLの方が良いってとこでしょうか。
>>588 3000万以下 というか、かなり下の方・・・ あまり突っ込まんでくらはい。
Q2だけは何とか買って貰った。
趣味以外にもメーカで昔から言語で設計している部署の 仕事してるとverilogになると思う。 VHDLは本とかで「これからは言語で設計」と騒ぎ出して から始めたところが多い気がする。
altera(だったと思うけど)DSPビルダーってどうなの。 CレベルからFPGAに落とせるやつらしいけど。 これが出回ったら、HW言語書きは失業してしまうのでしょうか。。
Verilog2001でそれまであったVerilogの不満もほぼ解消じゃないの?そのあとSystemVerilogもSystemCより確実な 論理合成が期待できるだろうし。 記述のしやすいVerilogがぜったいお勧め。 VHDLは、登場したときから、そして、今も、下請けやってるとか米国防総省に納入品あるならともかく、 VHDLをつかわにゃならん理由がまったくない。 記述量多いわ、プリプロセッサはほとんど皆無。 わざわざCのプリプロセッサ通してたりする。 作業効率悪すぎ。しかもRTL書いてる限りはほとんどVerilogとやれることに差がない。今更存在意義がない。 あと VHDLでVerilogのfunctionような明示的な組み合わせ回路の合成法ってあるんか?
VerilogがEDA業界を支えているのは間違いない。 LSIメーカーのCAD部門もそのおこぼれに与っている。 設計の人間もいつそっち側の人間になるかもしれない。 ってことでVerilogだよ。
俺HDLはVHDLで入門したけど verilogを試しに使ってみたらこっちの方が書きやすくて いまはverilogだよ。 組み込みやっててCを使ってるとverilogがなじみやすいし。 ただHDLで大規模な高度なアプリをまだやったことがないので そういうときにどっちの言語が有利なのかが分からないけどね。
俺は逆 曖昧な記述が出来てしまうVerilogはどうにも気持ちが悪くて VerilogでもVHDL風の書き方をしてしまう。
>>598 俺も同じ。
VHDLでやってたけど、作業が遅々としてすすまなかった。試しにVerilogにしてスイスイって感じだった。
予約語にしても長ったらしすぎるんだよね。
一般にVerilogから入った人はVHDLが嫌いになるっていうけど、VHDLから入って(、Verilogの便利さ知って
VHDLが大嫌いになった。VHDLは読むけど二度と書かない。
随分了見が狭いな。
602 :
774ワット発電中さん :2005/04/24(日) 17:27:13 ID:pDbQ6OJu
不真面目なFPGAサイトってどこ?
603 :
774ワット発電中さん :2005/04/24(日) 20:15:36 ID:NIxmJdRU
俺はVHDL派かな。 ベリは文法的には楽だけど、ミスでも通ってしまうことがある。 VHは変数宣言などが厳しい分、ケアレスミスが事前に防止できて、 チョンボで日程つぶす可能性が減った。
海外はVerilog、国内はVHDLって感じ。 米系メーカーでCPU作ってたころはVerilogばかりだった。 独立起業して国内メーカーを相手にするようになったらほとんどVHDL。 社内IPの開発はいまもVerilogでやってる。これは好みの問題かな。 PascalよりCが好きなのと同じようなもん?
C++よりDelphi(Object Pascal)が開発もデバッグも楽だけど それでもVHDLよりはVerilogの方が気に入って使っている。 どうしてもVHDL要る時はVerilogで作ってから自動変換汁!
AHDL派とゆーツワモノはおらんか?
>>605 >国内はVHDLって感じ。
それはおまいが相手してる会社の話だ。
俺の知ってるとこ(大手)はVerilogが多い。
あとHDLがらみの求人見てみろ。圧倒的にVerilogが多い。
もっとも俺の知ってるとこはFPGAまでは試作でそのあとASICまでを考えてるとこ。
FPGAで作業完了してるとこは未だにVHDLにしがみついてるのかもしれん。
某社のMIPSプロセッサもVerilogで書いてるし
SFLはおよびでない?
SFL・・・エルピーダも使ってる。
EDAベンダの鴨が多いな。っていうかEDAベンダの中の人かな。Verilogの方が金になるからなー。まあLSIメーカが率先して鴨やってるんだからしょうがないんだけど。まさに売国産業。
上にもあるけどこのギョーカイでは美的センスの無い方が主流 になりやすいというジンクスはある罠 68000 vs 8086にしても、Pascal と CにしてもMinix vs Linuxにしても・・
お前、ままごとOSのMInixとLinuxをなんで比較してるんだ? わかってんのか?
>>612 相当ひねくれてるな。俺はVerilog派だが、VHDLも使えるツールしか使ってない。
Modelsim/HDL Designer/Precision/SynplifyフィッタはISE/Quartus
Verilog専用のツールって一体何?そんな便利なツール使ったことないね。
大体、VHDLで満足する奴はプログラム言語の開発環境を満足に知らん奴だな。
少しでも知ってりゃ。VHDLなんてゲゲボ。絶えられないはずだ。
>>614 最初のLinuxなんて酷いものだったじゃん
Minixの方がLinuxより先進性あったんだよね〜
618 :
774ワット発電中さん :2005/04/26(火) 22:35:44 ID:a1s69AXg
verilogのテストベンチでinitial文の中で継続代入ぽいことをしたいとき、 forever @(A or B) OUT = A || B; って記述は可能でしょうか? 明日試せばいいのですが、気になるので。。。
>ゲゲボ なぁ、ゲゲボってどういう意味なん?
自分が頭悪い奴であることの宣言でしょう。 書き込み内容から推測するとそうなる。
ゲゲボ 元ネタ、確かファンロードっていう雑誌 30後半から40にかけてのヲタだと思われる 死語とかそういうレベルの代物ではありません 20年ぶりに聞いたよ。未だ使うやつがいるとは…
>>612 アホやなぁお前。
単に今更方向性を変更できない悲惨なVHDL屋だろうがかわいそうにな!
Verilogが金になるというのはそっちの方が生産効率が高いことを認識したユーザが多いからだ。
ユーザが多いから言語仕様の穴を埋めるようなツールが出てくる。
(;´Д`)ハァハァ ゲゲボ美食ツアーに逝くでちゅよ! 香港で飲茶を食べるでちゅ〜
VerilogだのVHDLだのそんな小さい話しじゃない。 LSIメーカを通して、日本の技術、ノウハウ、富がどれだけ海外に流出したか考えたことがないの? いい加減、Synopsys、Cadense、Mentorをありがたがって、 毎年毎年お布施を払うのはやめて、GNUのようなプロジェクト立ち上げろってことだよ。
賛同します
賛同します
賛同します
では
>>624 タン、頑張ってくらはい。
まあSTARCのスタイルガイドは確かに情けないよね。
>>607 ずっと昔AHDLでゴリゴリ書いてますた。
AHDLで評価変数使うと色々裏技つかえますよ。
回路階層の帰納定義が出来たり、
パラメータの内容から数式を通して条件判断して
回路の生成方法を変えたり、
レジスタ入れる個所を自動決定させたり・・・etc
LPMの中身を解析していろいろ知りますた。
いまはVHDLしか使ってませんけど(w
VHDLでブロックコメント・・・ 使えないんだな。
つーかレベルの低いどっちが良い論争などするなっての。 馬鹿か?
632 :
sage :2005/04/29(金) 08:40:35 ID:hKs8yizz
>>627 スタイルガイド気に入って参考にしてるけど、
どこが情けないの?役に立ってるけどなー。
デザインルール的指針はあって然るべきだしそれに何を使うかは 人の勝手なのにね。 ま、好き勝手に書いてろくなドキュメントもないなんて仕事をしてる んじゃないのかな?
634 :
774ワット発電中さん :2005/04/29(金) 18:06:50 ID:BuLkX+R8
>>631 レベルが低いのはお前だボケ。死ねや。
仕事で両方使う必要があるならともかく、
これから新規に使おうという人で、
どっちを使ったほうがより効率的で、将来有望なのか比較したくなるのは当然だ、
635 :
774ワット発電中さん :2005/04/29(金) 18:11:19 ID:hL83OBc+
俺はノンケだってかまわないで 食っちまう人間なんだぜ
すみません間違えました誤爆です
やだやだ、休みになると馬鹿が湧くんだよな。 ウゼー
みんな休みなの?
639 :
774ワット発電中さん :2005/04/30(土) 13:04:02 ID:RwqtPFMQ
漏れは最初にやったのはVHDL どっかで読んだのは、VHDLやってた人がVerilog使うのは簡単だが、 逆は大変と聞いたからだ。 最初はガチガチのほうでやっとけばラクなほうに転ぶのは簡単ってことだな。
640 :
774ワット発電中さん :2005/04/30(土) 18:18:38 ID:eOoS6LdP
漏れは最初にやったのは高周波 どっかで読んだのは、高周波やってた人がディジタル回路は簡単だが、 逆は大変と聞いたからだ。 最初はガチガチのほうでやっとけばラクなほうに転ぶのは簡単ってことだな。
>>640 なぜそのまま高周波職人にならなかったのかと小一時間…
漏れは最初にやったのは小学生 どっかで読んだのは、小学生やってた人が高校生は簡単だが、 逆は大変と聞いたからだ。 最初はガチガチのほうでやっとけばラクなほうに転ぶのは簡単ってことだな。
643 :
774ワット発電中さん :2005/04/30(土) 23:02:39 ID:lEXHuyX3
漏れは最初にやったのはアナル どっかで読んだのは、アナルやってた人がマンコは簡単だが、 逆は大変と聞いたからだ。 最初はガチガチのほうでやっとけばラクなほうに転ぶのは簡単ってことだな。
VHDL == 小学生 == アナル ってことだな
漏れは最初にやったのは回路図入力。 画期的だと思った(15年位前)。 MAX+PLUSでMAX5128使ってAHDL&回路図入力して 設計やってた頃がなつかすぃ。 実は最初に講習会(小林優氏のCadenceでやってたやつ) いって覚えた言語はVerilogだったりして(w
早く休みが終わらないかな。 アホの書き込みは見るに耐えない。
647 :
774ワット発電中さん :2005/05/01(日) 00:12:18 ID:i0O4bH2m
>早く休みが終わらないかな。 >アホの書き込みは見るに耐えない。 と、もっともアホがほざいております
function文を多用する俺にとってはVerilogでないと困るな。
649 :
774ワット発電中さん :2005/05/04(水) 10:53:51 ID:qCUWf+Bc
しかし、FPGAの匂いのするスレは基地外ばかりだなぁ。 ”書き換えできるんでしょ?”ってことでガラガラ仕様やらスケジュールに翻弄されるストレスはわかるけど...。 ここの基地外もage専だなぁ。
650 :
俺様 ◆f0ugTrYQRI :2005/05/04(水) 11:15:01 ID:l7iYV4Kx
(;´Д`)ハァハァ 誰か呼んでくれたでちゅか?
651 :
774ワット発電中さん :2005/05/13(金) 01:19:50 ID:9Kh+JZzb
質問させていただきます。 データバスに書き込む際に、書き込む時以外はトライステートになるように書いたのですが '0'を出力するようにするとその箇所だけトライステートではなくオープンドレインになってしまいます。 (QuartusUのフロアプランでオープンドレインになっていると分かりました) LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY test IS PORT ( RESET : IN STD_LOGIC; IN_A : IN STD_LOGIC_VECTOR(2 downto 0); IN_B : IN STD_LOGIC_VECTOR(2 downto 0); IN_C : IN STD_LOGIC_VECTOR(2 downto 0); ADRES : IN STD_LOGIC_VECTOR(2 downto 0); DATA : INOUT STD_LOGIC_VECTOR(7 downto 0) ); END test; ARCHITECTURE test_architecture OF test IS BEGIN process(RESET, ADRES) begin if RESET = '1' then DATA <= "ZZZZZZZZ"; else case ADRES is when "001" => DATA(2 downto 0) <= IN_A(2 downto 0); DATA(5 downto 3) <= IN_B(2 downto 0); DATA(7 downto 6) <= "00"; when "010" => DATA(2 downto 0) <= IN_C(2 downto 0); DATA(7 downto 3) <= "00000"; when others => DATA <= "ZZZZZZZZ"; end case; end if; end process; END test_architecture;
0とZだけなら「トライ」ステートじゃないもんな。
653 :
651 :2005/05/13(金) 21:44:32 ID:9Kh+JZzb
>>652 でも0を1に変えてやるとトライステートとして出力されます。
654 :
774ワット発電中さん :2005/05/13(金) 21:48:09 ID:Ws8mEBWn
こゆ設定項目があるでしょ? Auto Open-Drain Pins Allows the Compiler to automatically convert a tri-state buffer with a strong low data input into the equivalent open-drain buffer. どこにあるかは自力で探せ。
657 :
774ワット発電中さん :2005/05/14(土) 00:52:35 ID:JX62oeiU
>>656 設定してみましたが相変わらずオープンドレインのままでした・・・。
もうちょっと考えてみます。
出力イネーブル信号を作って それが有効なら「出力信号(0または入力A_B_C)」、 無効なら「ZZZZ」 ってふうに書き直したら?
1を出力することがないならオープンドレインでもいいじゃん。 なんで困るの? pチャンがあってもドライブされることはないし。
>>658 3本の「ADRES」を出力イネーブル信号として使っているつもりなんですが、新たに出力イネーブルを
ついかしたほうがいいってことですか?
>>659 オープンドレインの切れている状態とトライステートの切れている状態違うから困ってます。
オープンドレインが嫌いなんじゃないの?
ソ レ ダ !
>>660 >オープンドレインの切れている状態とトライステートの切れている状態が違う
どのように違うの?
664 :
658 :2005/05/14(土) 22:29:41 ID:N84/Gu1X
>>660 HC541などのG端子相当に入力する一本の信号を一旦アドレスデコードからつくって、
G端子が有効の時(ry
これでも変わりませんか?自動で圧縮されるのかな?
665 :
:774ワット発電中さん :2005/05/15(日) 10:34:59 ID:7NgLYrfN
センシティビティリスト間違ってるから、それが原因なんでないの? センシティビティリスト間違うと、想定外のバグ仕込むことあるよ。
釣りに対して
>>661 がうまくエサ取りを演じたのに、
まだ釣られますか。そうですか。
ダボハゼ並みですね。
667 :
774ワット発電中さん :2005/05/15(日) 23:17:12 ID:I27Cgrk7
>>665 たぶん
>>661 はセンシティビティリストのどこに間違いがあるかも判ってないよ。
もしくは完璧な釣りだな。
> when others => DATA <= "ZZZZZZZZ";
なんて書きながら
> if RESET = '1' then
>DATA <= "ZZZZZZZZ";
>else
などと...けっこううまい釣りだよ
668 :
667 :2005/05/15(日) 23:18:00 ID:I27Cgrk7
RESET信号が入ったら無条件でDATAはトライステート んでADRESが「001」、[010]の時意外はトライステート。 何か問題ありますか? センシティビティリストは「RESET」と「ADRES」だけ見張っていればいいからこの2つだけ入れました。
670 :
667 :2005/05/16(月) 00:52:18 ID:8DUMjoS4
>>669 > センシティビティリストは「RESET」と「ADRES」だけ見張っていればいいから
ごめん、釣りじゃなかったのね。
本当に聞いているんだね。
オマエさんのセンシティビティリストの考え方、間違ってるよ。
答えは自分で見つけな。
非同期回路なのに入力信号が全部センシティビティリストに入っていないってことを言ってるんですか?
素人の漏れには、センシビリティリストは、どこが間違ってるか ようワカラン。合ってそうに見える。 > RESET信号が入ったら無条件でDATAはトライステート ハイ・インピーダンスとか言わないの? もしかして、 「Z=トライステートと呼ぶ=オープンドレイン!?なんだそれ」という図式???
ま、まともな会社ならトライステートを 3ステート(3-state, three-state)って 標記するよう指導されるわけだが。。。
triが3を意味する事を知らんようだ
いやトライステートっていうよ。これはまっとうな用語だよ。それでみーんな意味が通じる。 そんなことで変更が必要なら、 ペンタ、ヘキサも変更せにゃならん。
676 :
651 :2005/05/16(月) 21:03:21 ID:wNMEogmY
自己解決しました。「0」と「Z」の出力ならオープンドレインになるのは当たり前でした。 初心者マークとれてから来ます。 でも、センシティビティリストの件は分かんね〜わ。
ちょうど出てきたので、ちょっとその辺のこと教えてくださいな。 di tri tetra penta hexaでググると、そっち系の呼び方のページが出てくるけど、 ICなんかによくあるdual、triple、quadなんかの一覧って、どこかにありますか? あと、2はダイだったりバイだったりしますよね。ダイポールアンテナとか バイポーラトランジスタとか。このへんはどういう話なんでしょうか。
679 :
673 :2005/05/16(月) 22:22:18 ID:rLBvdL3M
用語検索 トライ・ステート (tri state) 用語検索. トライ・ステート (tri state). [同]→3ステート. ナショナル・セミ コンダクター社の商標. 用語検索インデックスへ戻 る 用語検索のトップに戻る Copyright 1997-2000 トランジスタ技術編集部. www.cqpub.co.jp/term/tristate.htm - 2k - キャッシュ - 関連ページ
商標というのはその名称を使った商品を登録企業に無断で販売しちゃいかんと言う話だろ? トライステートと言う用語を使って解説してる書籍なんていくらでもあるわけだが。 ここでいうような仕様書とか解説中に記載することは特に問題にならんのじゃないか? よくあるだろ。欄外にXXはYY社の登録商標ですってやつ。
683 :
774ワット発電中さん :2005/05/17(火) 00:06:03 ID:ERz/+5Lc
誰がハゲやねん!
684 :
651 :2005/05/17(火) 01:07:50 ID:tqcqalrI
>>670 このコードにセンシティビティリストがあること自体が間違ってるってことか。
685 :
667 :2005/05/17(火) 01:22:37 ID:bkxM2nFx
>>684 おまえ、アホか。しらべてないやろ。
なんでIN_A/IN_B/IN_Cをセンシティビティリストにいれんのや。
これ以上聞くな。アホらしいから。だからだれも相手にせんの。
>>685 この板に君のような奴は不要。
目障りだから消えてくれ。
だな。 667の記述こそ釣り。
全部組み合わせ回路で作ってるからセンシティビティリストはいらないでしょ?
>>677 はギリシヤ語/ラテン語の基礎もしらんのか 無教養だな
diは普通の2 biは双数
biの系統の3とか4とかはない・・・ということでいいのかな? dualとかの方は何?
dualはラテン語の「普通の2」の形容詞形
どう検索しても一覧は出てこない・・・・・もう風呂入って寝よう
質問させて頂きます。 VHDLでC言語の「#ifdef 〜 #endif」と同等の処理を 行いたいのですが、どなたか教えて頂けませんか?
695 :
774ワット発電中さん :2005/05/24(火) 23:36:49 ID:iFgyQacm
Cのプリプロセッサ使え
696 :
774ワット発電中さん :2005/05/25(水) 00:49:35 ID:k9OAL1Ql
無い ゆえにVerilog-HDL使いが居る。
いまどき ccpとかgcc -Eじゃなくて m4使うだろ
698 :
694 :2005/05/25(水) 12:46:53 ID:bnwleK92
情報感謝です。 うーん、解決方法を探さねば・・・
if generateは?
合成の結果定数項になってことごとく消えて失せるだろうと シンセサイザの力を信じて記述してる(汗
701 :
694 :2005/05/26(木) 16:59:56 ID:IuiE0bP4
皆さんレスありがとう。 できれば解決したいので、もう少し具体的に質問させて下さい。 現在、下記の様な記述をパッケージにまとめてあります。 constant TABLE_A : std_logic_vector(3 downto 0) := "1111";--System A constant TABLE_B : std_logic_vector(3 downto 0) := "0001";--System A -- constant TABLE_A : std_logic_vector(3 downto 0) := "1000";--System B -- constant TABLE_B : std_logic_vector(3 downto 0) := "0010";--System B System AとSystem Bを使い分けるのに、コメント行を入れ替えています。 この作業をスマートにしたいと考えているのですが、皆さんお知恵を!m(__)m
>>701 signalで宣言してifで切り替えれば?
constantにしてるのは面積もったいないから?
703 :
694 :2005/05/27(金) 11:31:07 ID:QHEYeCXA
>>702 さんコメントありがとう。
constantにしているのは、複数ソース内で利用するために
「パッケージでconstant宣言!」しか方法が分からなかった為です。
どんな方法でも、複数ソース内で利用できれば何でも良いのですが・・・
こんなんじゃだめかいのう。 library ieee; use ieee.std_logic_1164.all; package SystemLib is constant SystemNumber : integer := 0 ; function TABLE_A return std_logic_vector; end SystemLib; package body SystemLib is function TABLE_A return std_logic_vector is variable var: std_logic_vector(3 downto 0); begin case (SystemNumber) is when 0 => var := "0011" ; when others => var := "1010" ; end case; return var; end; end SystemLib;
705 :
774ワット発電中さん :2005/05/27(金) 22:37:59 ID:kod8k8po
706 :
タスク :2005/05/30(月) 20:51:28 ID:ZVhUdiy8
俺は論文書いてたいけど、テーマは並列LSCの通信部の設計、製作に関すること。誰が俺に助けてくれませんか?できれば、俺と連絡して もちろん、お金あげるから
707 :
774ワット発電中さん :2005/05/30(月) 20:54:16 ID:LiJvs7xQ
やだ。
708 :
俺様 ◆f0ugTrYQRI :2005/05/30(月) 21:19:08 ID:9Ye+LOJI
(;´Д`)ハァハァ 夏はやっぱりキンチョウ…
論文は英語で書くもんだ そして2chは日本語で書くもんだ
711 :
694 :2005/05/31(火) 19:14:43 ID:t3NT+PFo
>>704 さんコメントありがとうございます。
704さんの方法で実現できそうです。
>>705 さんもコメントありがとうございました。
ググッてみたのですが、答えらしき所まで辿り着きませんでした。
情報を生かす事ができずにすいません。
皆さんのおかげでスッキリできそうです。では。
Verilog 2001 拡張された文法に関してうまく解説してある参考書教えろ ヲーニング出まくりなのだが、きれいに書き直して消せるものなのか
714 :
774ワット発電中さん :2005/06/13(月) 21:28:35 ID:AYy9lSvK
電気的にあまり詳しくなくても 論理と言語を知ってれば仕事はできますか?
電気を知ってるに越したことはない。 仕事なら知ってたほうが良いとオモフ。
確かに知ってる方が良い。 でも、単なるパラメータという扱いもできなくなってしまっているように思える。 なんか、もう電気屋の仕事じゃないような気がしてきてちと悲しい。
717 :
716 :2005/06/14(火) 09:01:53 ID:cLnSsTT4
連投すみません × でも、単なるパラメータという扱いもできなくなってしまっているように思える。 ○ でも、単なるパラメータという扱い方になってきてしまってるようにも思える。 訂正です。 皆さんはどう思いますか。私が単なるオサンだからでしょうか。 これで、Cベース設計がデフォの時代がきたら…
>>716 アナログから入ったオヤジだが、俺もFPGAは電気と違う気がしてる。
でも理論はFPGAに持って来れるので、昔やった事がまるっきり無駄とは思っていない。
昔苦労して調整して作ったフィルターとかが、信号処理回路作ってFPGAに入れられた時は
マジ感動した。 調整いらねーじゃん! って。
>>714 それでも仕事はできるが、今の状況では選択肢がかなり狭められるような気がする。
将来的には、ハードを理解していないFPGA屋が普通になっていくと思うが・・・
FPGAが今後も信号処理に使われつづけるかは?じゃないかな。 100MHzくらいまでが安心して使える周波数で、1GHzは多分無理。 この周波数になるとメニーコアとかDSPアレイの方が適してるような気がしてる。 自由度は高いが、配線遅延がホントうざすぎる。 一人の信号処理屋が、FPGAもDSPも使いこなすのは負担が大きいよな。
720 :
774ワット発電中さん :2005/06/14(火) 20:19:54 ID:uqWNI1k4
FPGA設計ってCとか他の言語やってなくても デシタル回路の仕組みわかって 言語書ければそれでできるんじゃないかって 以前 文系のやつがバリバリやってるってのみたことあるし
別にプログラム言語できる必要性はないし、 ディジタル回路が理解できればHDLを習得して回路を書くことはできるだろうが、 例えばFFTを回路に起こしてくれと言われたら文系君にはできない。 タイムチャートまでしっかり仕様書に書いてもらって下位設計としてHDL専念するのであればできると思うけど、 公的スペックをポンと渡されて上位設計->下位設計に及ぶような仕事は多分無理
ASICに電気の知識は必ずしも必要ではないんでないかい。 ARMもド素人が設計したって話しだし。
723 :
774ワット発電中さん :2005/06/14(火) 23:07:39 ID:uqWNI1k4
制御系のエンジニアに電気知識が必要かって話だねぇ ソフトもハードも使いこなせる人材は少ない
っていうか実現しようとする機能に関しての知識は必要。 ARMは電気分野のド素人かもしれないが、アーキテクチャや情報理論、 論理設計に関してはそれなりのプロだろ。完全ステートマシンを目指してたとか言ってたし。 で、ASICでもライブラリ弄って特殊なインターフェイスを実現するつもりなら それなりに電気の知識はいるだろうと思われ。
いまは文系に情報処理系の学科を置いてる大学が多いんじゃないの? そういうとこを出た奴がみんな使えるかどうかはまた別問題だが、探せば中には優秀な奴もいるんじゃない?
熱とかジッタとかスキューとか駆動電流とか終端とかを気にせずに済む時代が来ますか? と思ったけど、設計担当範囲の話になるのか。
>>727 熱とかジッタとかスキューとかファンイン・アウトとか終端とかを気にせず設計した
オープンハードウエア界の巨匠は存在したけどねw
729 :
774ワット発電中さん :2005/06/15(水) 23:37:00 ID:s1SJavJl
文系の情報処理ってプログラミングもやるのか? 情報科学とか 要は社会学みたいなことやるんじゃないの? 二年ぐらい前に 一からFPGA教えますみたいな派遣あったような記憶あるけど 採用試験にIQテストってのがあったW まあ確かにこういうのはIQの高さに比例するかもしれない
ソフトを書ければ物が出来る時代はそこまで来てる。 でもそれが使い物になる代物に合成される様になるにはまだまだ時間がかかるだろうね。 根底はいつも泥臭い物、これは多分これから先も変わらないよ。
そこんところ勘違いしてハードを馬鹿にするソフト屋志望の若者がおおいっす。
そうそう。「低級言語」はレベルひく〜(低い)って意味じゃないぞ。 ハードにより近いって意味だ>うちのソフト屋
今だってFPGAにぶち込むだけなら、熱もskewも気にしなくて平気じゃん。
回路規模から熱計算してからでなきゃ とてもじゃないがデバイス選べない。 FPGAの発熱がすごくて基板が変色したこともあった… 小規模ならなんも気にせんけど
フロアプランの段階で熱まで予想できるツールもあるが、素人さんが使える値段じゃないね。
ストラタ熱杉
FPGA用のクリップ+ヒート辛苦ってある?
すんません、初歩的なことだとは思うんですが質問させてください。 ・暗黙の了解で、チーム内では全角コメント禁止なんだけど、これはやはり常識なんでしょうか。 ・全角コメントで不具合出た合成ツールってあるんですか? この間、ソフト屋さんのソースを眺める機会があったのですが、 全角コメントばっかりで羨ましかったです。 ソフト屋「だって、デバイスもツールも国産(Renesas)だから」
つうか言語仕様で2バイト文字は許されてないでしょ、確か…
(´・ω・`)そうでしたか…アリガトu
フォルダ名にもファイル名にもコメントにも全角文字使うなよ 超ダサい つーか、全角コメントが羨ましいって心理 本気で理解できないのだが なぜ?
gccは長らく2バイトコメントには対応してなかった。 今はどうか知らんが、ソースコードに日本語を含めないのはソフトでも常識だ。
英語の苦手な純朴の日本人だからです。
>>743 へっそうなの? HDL記述に 2ByteCode 入れた事は無いが、Cには良く入れてる。
上司の意向で、関数の頭に日本語コメントするテンプレが付いてるのがデフォなもので・・・
もしかして、こんなソースを外に出すと恥ずかしい?
MS XXや Visual XXの日本版はそりゃ日本語対応してるだろうよ。 ソフトでも日本語対応になってないツールも山ほどあるってこった。 わかってから対応するんじゃなくてコメントに日本語使わないとか、 ディレクトリ関係に日本語やSpaceを使わないのは当然の防御策
まずは言語の仕様書をちゃんと読め
748 :
745 :2005/06/22(水) 19:38:02 ID:YtB4QzpG
>>746 レスサンクス。 他ツール使った時の防衛策ですね。
>>747 すんません。誤解与えちゃったみたいですね。 私は
>>739 さんとは別人です。
>>743 さんのカキコに、つい横から反応しちゃったもので・・・ HDL記述の2byteCodeの件は知ってます。
749 :
774ワット発電中さん :2005/06/22(水) 23:04:22 ID:Hha79Rv9
>>742 それでカッコイイ!!っていうのも理解できん
無理して英語で書いて間違ってると…
コメントはあくまでコメントだ。 正確性を期すなら仕様書にきっちり書け
752 :
774ワット発電中さん :2005/06/22(水) 23:38:21 ID:3JyUAAcL
verilogの達人の方へ clk _| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄| reset ____________| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ q _____________| ̄|_______________ 上のようなクロック入力に対してリセット後1クロックのみ検出する信号qの作り方教えていただけませんか? 宿題ができずに困っています。 お願いします。
753 :
752 :2005/06/22(水) 23:41:34 ID:3JyUAAcL
なんかずれちゃいました。すみません。 リセット後最初のclkを1パルス分のみ検出したいのですが。 お願いします _| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄| clk ____________| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ reset _____________| ̄|_______________ q
>>753 うーん、これは難しい問題だな。
そもそも こんな難しいのをVerilogで書けるのかぁ?
>>753 どこまで調べてどこまで考えたのか晒せや
どこかにI2Cのスレーブデバイスのsimulation model(verilog)、 転がってませんか? フリーだと嬉しいんだけど…
assign oneshot = clk & gate; always@(posedge clk, negedge res ) begin if( !res ) begin counter <= 0; gate <= 0; end else begin if( !counter ) begin counter <= counter + 1; gate <= 1; end else begin gate <= 0; end end end リセット後2クロック目でひげが出るかな?
>>752 それだけでは仕様が不十分
resetは非同期リセットと同期リセットのどっち ?
非同期の場合、clkの立ち上がりと resetの立ち上がりが
同時に起きた場合 qをどう出力すればよいか ?
またresetの立ち上がりから qの highパルスを出力する
まで何クロックのディレイが許容されるのか ?
qはそれ以降の回路でクロック信号として使用されるのか ?
qは clkの highと同じ幅でなくてはならなのか ? 1 clk周期
ではいけないのか ?
さあ、答えれ
釣られ好きだなぁ
こんなキャラクタで波形書いてる暇があったら、HDL書いて試行錯誤してた方が良いと思うぞ
エッジ検出も分からないようならHDL以前にデジタル回路の基礎からやった方がいいのでは?
762 :
757 :2005/06/23(木) 15:50:51 ID:5qFT/Ks/
757のリストでは配置配線後(スパ3)のSimlateで案の上ひげが乗ったので改定 module OneShot( clk, res, gate, gate2, oneshot); input clk, res; output oneshot; output gate, gate2; reg gate, gate2; reg [3:0] counter; assign oneshot = clk & gate & gate2; always@(posedge clk, negedge res ) begin if( !res ) begin counter <= 0; gate <= 0; end else begin if( !counter ) begin counter <= counter + 1; gate <= 1; end else begin gate <= 0; end end end always@(negedge clk, negedge res ) begin if(!res ) begin gate2 <= 0; end else begin if( counter ) begin gate2 <= 0; end else begin gate2 <= 1; end end end endmodule 立下りでgate2をOffにした。 論理合成はXST、スパ3で273MHzで動くそうな。タイミングシミュレーションもOK
763 :
757 :2005/06/23(木) 16:01:23 ID:5qFT/Ks/
gate ,gate2 を出力してるのはあくまでもデバッグ用なので無視してね。 oneshotが出力
764 :
774ワット発電中さん :2005/06/23(木) 16:35:32 ID:fpaEQY/+
verilog理解できない馬鹿なのでVHDLで書いてみました。 条件はとりあえずパルスは1クロックだろうという事で設計してみました。 entity plus is Port (clk : in std_logic; rst : in std_logic; one_plus: out std_logic ); end plus; architecture Behavioral of plus is signal mode : std_logic; begin process(clk) begin if(clk = '1' and clk'event) then if(rst = '0') then mode <= '0'; one_plus <= '0'; else if(mode = '0')then one_plus <= '1'; mode <= '1'; else one_plus <= '0'; mode <= '1'; end if; end if; end if; end process; end Behavioral;
答えを書いてるフリして藁なコードな罠
766 :
774ワット発電中さん :2005/06/23(木) 16:57:16 ID:fpaEQY/+
答えられない香具師に限ってチャチャが好き。 男は黙って答えを書く。
entity plus is Port (clk : in std_logic; rst : in std_logic; one_plus: out std_logic ); end plus; architecture Behavioral of plus is signal mode : std_logic_vector(1 downto 0); begin process(clk) begin if(clk = '1' and clk'event) then if(rst = '0') then mode <= "00"; else mode <= mode(0) & rst; end if; end if; end process; one_plus <= mode(0) and not mode(1); end Behavioral;
768 :
752 :2005/06/24(金) 03:32:55 ID:9W82ArEC
だれがVHDLで答えてくれってお願いしたよ。 Verilogできねえ奴はスッコンデロ。 アフォか?ホンマに
宿題できなくて他人任せにしてるくせに態度だけはでかいなw
XilinxのISE WebPACK7.1i使っている人います? 色んな機能が動かなくないですか?チュートリアルを見てやりだしたんだけど snapshotとか全然効かないし、timing reportが出てこない。
すんませんVerilogでおながいしまつ
どっちのHDLも読めるぐらいにはなっておいた方がいいぞ 大事なのはやり方を覚えることなんだし。 簡単な例だし、ちょうどイイ機会じゃないか?
773 :
752 :2005/06/24(金) 11:50:15 ID:4zIlwy/D
>>772 嫌だね。
お前らみたいに下請けの零細企業になんか就職する気はさらさらないから、両方こなす必要なんてまったくない。
もう大手に就職が決まってるんだよ。まぁ、お前らに仕事振ってやるからありがたく思えよ。
あいかわらず態度でかいな。 おまえは研修期間に逃げ出すだろ、どうせ。 っていうか、おまえの上司になる人間がこのスレにいるかもよw
こんなクソ宿題もできないバカを採った企業様ご愁傷様です...。
>>774 偽者な悪寒
最近質問者に成りすますアホをよくみかけるキガス
Q脳の腐敗がさらに進んだのかな・・・・ま、梅雨だしな
778 :
752 :2005/06/24(金) 12:46:54 ID:4zIlwy/D
>>775 クソ宿題だと?
じゃ、コード晒せ。それも出来ずにお笑いなんだよアホが!
>>776 いいたい意味がわからん。
774(俺)は773に向けて書いたんで、752になりきろうとか思ってないんだが。
スルーしとけって。
ところで、この宿題の“本当の要求仕様”はどんなもんなんだ? あの超絶ワケワカランAAではサッパリ?だ
俺は十分意味が理解できたね。何の問題もない。
じゃあHDLじゃなくてCで書いてみ?VBでもなんでも自分が習得してる言語で。 方法がわかってるなら何でも書ける。わかんなきゃ何やってもダメ。 宿題は考えてやるんだよ。考えるのは頭。頭は生きてるうちに使う物だ。がんばれ。
>>783 何をわけわからんこと書いてるんだ?
お前こそがんばれや。
そもそも752が回路設計に必要な知識があるのかどうかが気になる…
>>785 そんなもん無くても構わないだろ、本人が宿題っていっているんだし。
回路図入力が一番簡単だな。
788 :
sage :2005/06/24(金) 23:43:12 ID:N9s+7dXz
module(clk,xrst,datain,q) reg ff1, ff2; always@(posedge clk or negedge xrst) if(!xrst)begin ff1<=1'b0; ff2<=1'b0; end else begin ff1<=datain; ff2<=ff1; end assign q=~ff2 & ff1; endmodule ここまで書いてて気づいた。 入力はresetかー。こりゃ、俺にははかけないや。 だれか答えを俺にも教えて。
module pulse (clk, xrst, q); inputclk, xrst; outputq; regq; regq_mask; always @(posedge clk or negedge xrst) begin if (!xrst) q <= 1'b0; else if (xrst == 1'b1 && q == 1'b0 && q_mask == 1'b0) q <= 1'b1; else q <= 1'b0; end always @(posedge clk or negedge xrst) begin if (!xrst) q_mask <= 1'b0; else if (q == 1'b1) q_mask <= 1'b1; else q_mask <= q_mask; end endmodule
790 :
758 :2005/06/25(土) 01:50:29 ID:RRAZhokE
もれが
>>758 で書いたことが明確にならんと回路を
実装することはできないんだが、本物の
>>752 は
どこ行った ?
しょうがないからとりあえず、以下の仮定をする。
(1) resetは clkに非同期。
(2) clkの立ち上がりとresetの立ち上がりが同時に
起きた場合 (正確には、使用するフリップフロ
ップの setup timeと hold timeの間に resetの
立ち上がりがあった場合)は出力 qはそれ以外の
場合より遅れてもよい。
(3) resetの立ち上がりから qの highパルスまでは
できる限り短い時間で出力すること。
(4) qはそれ以降の回路でクロック信号として使用さ
れない。
(5) q の high幅は 1clk周期とする。
以下次号
791 :
758 :2005/06/25(土) 01:51:25 ID:RRAZhokE
その他 (6) resetにグリッチはないものとする。 (7) モジュール名は mkpulseとする。 (8) Verilog-HDL (RTL)で記述すること。 (9) 負論理なのに resetという名前はいやらしいが、 そういう仕様なので従う。 以下次号
次号マダー?
793 :
758 :2005/06/25(土) 01:55:27 ID:RRAZhokE
module mkpulse ( reset, clk, q ); input reset; // Active-low asynchronouse reset input clk; // Using positive edge output q; // Pulse width is one clock cycle reg delay1reset; reg delay2reset; reg delay3reset; // Synchronize asynchronous reset signal always @(negedge reset or posedge clk) begin if (~reset) delay1reset <= 1'b0; else delay1reset <= 1'b1; end always @(posedge clk) begin delay3reset <= delay2reset; delay2reset <= delay1reset; end // Make one clock cycle width pulse for rising edge of delay2reset assign q = ~delay3reset & delay2reset; endmodule 以下次号
794 :
758 :2005/06/25(土) 01:56:06 ID:RRAZhokE
一方、resetという名前から非同期リセットという 仮定をしたが、今のところそのような指定はない。 よって resetは clkに同期していると仮定することも できる。 すると、以下次号
795 :
758 :2005/06/25(土) 01:58:27 ID:RRAZhokE
module mkpulse ( reset, clk, q ); input reset; // Active-low synchronouse reset input clk; // Using positive edge output q; // Pulse width is one clock cycle reg delay1reset; always @(posedge clk) delay1reset <= reset; // Make one clock cycle width pulse for rising edge of reset assign q = ~delay1reset & reset; endmodule 以上
796 :
774ワット発電中さん :2005/06/25(土) 02:17:58 ID:qLwyTd70
ばーーーーか ----->>>
>>758 ID:RRAZhokE 死ねよ
797 :
火魔人 :2005/06/25(土) 04:37:57 ID:4D+YN02A
reg q; initial begin q = 1'b0; end always @(posedge reset) begin @(posedge clk) q = 1'b1 ; @(posedge clk) q = 1'b0 ; end 合成できる物って言ってなかったから・・・
初心者です `define STATE1 3'b000 と parameter STATE1 3'b000 はどう使い分ければいいのでしょうか? parameterだとモジュールごとに同じのを書かないとだめみたいだし、 `defineだとレオナルドでは警告がでたし、 同じ定義を複数のモジュールやファイルで共用はできないのでしょうか?
>>798 parameterを別のファイルに書いて、`includeで読み込むようにしてたよ。
今はVHDLなんで使ってないが。
800 :
774ワット発電中さん :2005/07/01(金) 18:00:38 ID:4oZSX0ys
VHDLのintegerは32ビットは扱えないの?
扱える(符号付)。
802 :
774ワット発電中さん :2005/07/01(金) 21:09:25 ID:4oZSX0ys
符合なし32ビットはダメ?
だめ。 Natural, Positiveなどあるがいずれも31bitまで。
804 :
774ワット発電中さん :2005/07/01(金) 22:39:15 ID:4oZSX0ys
知らなかったorz しょうがないから単純なカウンタなんで std_logic_vectorにします
つーか、おかしいと思ったら少ないbitのカウンタ等を記述しSimして自分で納得する迄 試せると思うが。 やらないと言う事じゃ所詮その程度の知力と能力しかない証拠だわな。
>>805 そこまでは試して31ビットまでは動くことがわかったけど
論理合成で蹴られる理由がわからなくて
もしかして言語仕様かと思ったらあらやっぱりみたいな・・・
(´-`).。oO(なぜ言語仕様を最初に読まないの)
>>807 そんなところで引っ掛かると思ってないから
スマソ
これって全てに於いて共通することだよ。>先ず仕様確認 しかし、これで学習しただろう。 このスレに圧倒的に多いパターンなので萎えまくりだが。
すみません、言語仕様が何に書かれてるかもわかりません
> なぜ言語仕様を最初に読まないの 読んでないけど、Integerは32bitとして扱うツールが一般的、って話じゃなかったっけ? VHDLとしては。
>>811 一般的じゃなくてVHDLの仕様ですね。
813 :
774ワット発電中さん :2005/07/04(月) 01:27:25 ID:3sPfcV16
VHDLではまりやすい言語仕様ってどんなものがある?
組み合わせロジックを明示的に記述する文法がない
>>814 それは合成ツールの仕様なんじゃないの?
verilogHDLのモジュールを動かして波形を表示できるフリーソフトって無いですか? 1のLibero 6.0って所に登録してCDが来るまで待たなきゃいけないんですかね… できてばDL版が欲しいのですが
>>815 Verilogのfunctionに相当する書式がVHDLにあるか?
サブプログラムが組み合わせロジックになる保障はどこにあるんだ?
verilogだとwireかregかで明示的に書けるけど、 VHDLだとそれが出来ないってことやね。
>>821 おれも普段つかってるよぉ。
あとは文法チェッカがあればのぉ、できればPC-UNIXとWinで使える奴…
>>819 なんだ、戻り値が一個欲しいんじゃないのか(w
825 :
774ワット発電中さん :2005/07/05(火) 11:24:35 ID:C/UCYGWV
function文を何のために使うかわかってないアホ発見----->
>>824
826 :
816 :2005/07/05(火) 14:18:37 ID:VAPy/rIO
>>821 さんありがとうございます!
ロゴにちょっとビビりましたが、これで宿題が終わりそうです!
てか記述量の問題を除けば信号の状態動きをきちんとかけるのはVHDL。
非同期のFFを記述すればVerilogの不完全さがよく解る。
>>820 には理解不能だろうけどね。
でも、現実社会では好みと仕事に応じて好きな方を選べばいい。
>>827 別に言語の優劣の話ではなくて、
>>813 の話を受けてVHDLのはまりやす
い点を挙げただけだと思うけど。
出来る出来ないの話ならどちらかというと分が悪いのは・・・
つか、論点は何処? 単に記述に関する宗教論なのか?
明示的って言葉にアレを持ち出す無知さを笑ってるだけ。
明示的に他モジュールを宣言するcomponentに相当するverilogの記述は なにかな。
832 :
821 :2005/07/07(木) 20:33:45 ID:2EifYSI9
お役に立てたようでよかったです。 学生さん?かな。 今後のことを考えるのであればメジャーなシミュレータにも慣れておいたほうがいいかも。 Model-Simとか。
このスレで既に常識になってる事、過去ログ読めば解る事を一々聞いてる様ではその時点でエンジニアの 素質無し。 既にエンジニアと言い張るなら辞めた方が良い低レベル。
834 :
774ワット発電中さん :2005/07/08(金) 13:55:10 ID:/Zw+xZjk
「そんなこと習ってません!」って逆ギレするエンジニアも辞めた方が良い
835 :
774ワット発電中さん :2005/07/08(金) 13:56:30 ID:/Zw+xZjk
人間を
人間は辞めなくていいよ。そこまでは言わない。
わざわざ時間を使って、過去スレ読むより、新たに問い直したほうが手っ取り早く答えが返ってくる場合が多い。
罵倒するやつにはさせとけばいい。
>>833 わざわざ糞忠告するぐらいならその間に答え書いてやれ。
それが嫌なら、何も書き込む必要は全くない。別にお前に聞いてるわけじゃねえ。黙ってな。
>>837 自分で自分の道を拓けぬ者は、人の親切を簡単に無駄に出来る奴だ。
何を言われるか解らないからそんな的外れなレスを返すのだろうね。
そろそろ気付いたらどうだ自分の無能に。
>>838 そろそろ気付いたらどうだ自分の糞ぶりに
ここは学校でも親切な人の寄合場でもない。 真摯な意見を聞く勇気がない者は改善も無理だろうね。
>>ID:ofL5amLB そろそろゴミは死ねや!
本当の事を言われて切れ間栗の厨ってマジ格好悪いね。
843 :
774ワット発電中さん :2005/07/09(土) 12:18:21 ID:7VfOAgWB
人間辞めるのはとびきり優秀なエンジニアくらいでしょ? 漏れの知人はいまだに頭の病気で入院中なのだが
> 頭の病気で入院中なのだが 大丈夫。 ナガシマさんだって復活したんだ!
845 :
774ワット発電中さん :2005/07/10(日) 11:00:57 ID:C0xlfYHC
初心者です。おまいら教えてください。 FPGAの評価基板でやってるんだけど、トップモジュールで module test(CLK,SIGOUT) input CLK; reg count = 0; output SIGOUT; always @ (posedge CLK or negedge CLK) count <= 〜count; ・・・後略 とやると count <= 〜count;のラインで The logic for <count> does not match a known FF or Latch template. というエラーが出るんだけど何故でしょう。 always @ (posedge CLK)にすると大丈夫なんですが。 お願いします。
両エッジで動作するFFの構造を論理合成ツールに教えてやれよ
ターゲットデバイスの仕様を知り、己の無知さ加減を思い知れば、百戦危うからず
848 :
774ワット発電中さん :2005/07/10(日) 14:07:40 ID:2MKTggdH
>>846 Xilinxには、両エッジFFがあったと思うぞ。
全てのデバイスにはないと思うけど
なんとも非常識な使い方だな。
寺で実装しようとしたらどうするのかな?
851 :
845 :2005/07/11(月) 05:15:38 ID:ZDld/4j6
>>846 でも、他の場所では、使えるたりするんですが、何しろまだ始めたばかり
なんで、いろいろ模索中。
>>848 Spartan-3なんですが、データシートとか読んでいたら、IOブロックは、
二つのFFを組み合わせてDDR用に両エッジ使えるようにしてあると書いてありました。
>>849 あ、本当はcount <= count + 1;とかやって、いたんですが、いろいろ実験
中で。
DDR I/F用なら廉価版のCycloneでも持ってたな 寺で普通のLEで両エッジなんて無かったような。財はあるの? 846の通り、教えてやるしかないんじゃない?
>>851 >でも、他の場所では、使えるたりするんですが、
他の場所って何なんだよ。
立ち上がりと立下りをひとつのalwaysに書いて一体どこの会社の製品がが論理合成できるのか言ってみろや。
「己の無知さ加減を知る」がまだ足りないようだな
無知の知ってやつな。
856 :
774ワット発電中さん :2005/07/12(火) 00:00:37 ID:+fG7zAXH
>>853 >立ち上がりと立下りをひとつのalwaysに書いて一体どこの会社の製品がが論理合成できるのか言ってみろや。
845じゃないが、普通にできると思うが。XSTやSymplifyでもできる。
できないのは845にあるように両エッジをクロックエッジとして使う場合。
これはいままで合成するツールは見たことが無い。
845さん、Spartan−IIIのDDRレジスタをつかうなら、残念だけれどプリミティブライブラリ
(FDDRSE)とかを使いな。残念ながら合成はできないんだよ。
FPGAって、、D-FFじゃなくて latchとかって使えるの? チップの入出力がF/Fじゃなくて Latch構成のものって言われたんですが、、作れるのか不安
>>856 >845じゃないが、普通にできると思うが。XSTやSymplifyでもできる。
あのなぁ
always@(posedge A, negedge B)
はできて当たり前だろうが。そんなことをわざわざ書き込むな。
俺は
>>845 の
always@(posedge A, negedge A)
を言ってるんだ。
>できないのは845にあるように両エッジをクロックエッジとして使う場合。
クロックかどうかは関係ないね。一般に信号線に対して合成できないんだ。
あと negedge A と posegde Aで処理が独立してる(それぞれ別のレジスタに出力する)場合。 always@(negedge A) alwasy@(posedge A) と独立させれば、合成可能だ。
>857 全てのFPGAで可能かどうかは知らんがXILINXは可能。 別の答えとしてDFF+ゲート回路でgated D latchを作れるよな。
>>857 D-latchのマクロがあるならそれを構造記述で
インスタンスする方法もあるだろうし、
D-FFとMUXの組み合わせでD-latctと同様の動作をする
合成可能な回路を記述することもできるし、
いろいろやり方はあるけど。
>858 大昔の知識で喋るな。たとえば剤でFDDを推論させるために always @ (posedge C or negedge C) begin Q <= D; end という実例がライブラリガイドに載っている。 Dual edge FF を推論させるにはこう書くしかないから、 今は書けるようになっているのが普通だ。
>>852 実際7.1のXSTとSynplify 8.1でやってやるからデバイスとオプションを書けや。
それと合成できるというならそのソース示せや。ライブラリじゃなくな。
864 :
774ワット発電中さん :2005/07/12(火) 12:02:32 ID:BGTRq6vo
Spa3E オプションスイッチデフォルト always@( posedge A, negedge A ) begin C <= ~B; end その場合のXSTは The logic for <C> does not match a known FF or Latch template. でエラーだ。
always@(cocacola)
867 :
774ワット発電中さん :2005/07/12(火) 12:24:06 ID:OUt/xt3H
ねえ、今のFPGAって中にPLL持ってるんだから 素直に2倍クロックでやればいいじゃん
結局、CoolRunner以外Virtex 4, Spa3いずれも合成はできない。
>>862 逃亡か?さっさとソース示せや。
>869 おまえさんの主張が >858 から >869 まで矮小化してくれれば 俺としては必要十分なんでこれ以上何か書くことはない。すまんね。
>>870 FPGAではライブラリを使わず合成するHDL記述法は全く一般的ではないのに、
何を戯言ほざいてるんだ?CPLDの世界でチマチマ生きとれ。
>今は書けるようになっているのが普通だ。
普通ねー。FPGAではすべてエラーになるのに普通か?
これは、現時点でクールランナーだけはそういう書き方が許されていると表現するんだ。
一部で局所的に成立することを全体がそうであるように言うなアホが。
アホはどっちかな?
873 :
774ワット発電中さん :2005/07/12(火) 18:51:18 ID:uRSf/uPG
とアホの代表が申しております
874 :
774ワット発電中さん :2005/07/12(火) 18:53:28 ID:OUt/xt3H
うわ〜ん!アホゆうやつがアホなんや〜!
私のために喧嘩はやめて
アホという奴がアホってのを数学的に証明する事は可能である。
877 :
774ワット発電中さん :2005/07/13(水) 00:24:48 ID:0RHL68ir
というお前がアホであることは証明するまでもなく明らかである。
always@(bothedge A)とか記述させてくれんかのぅ。
879 :
774ワット発電中さん :2005/07/13(水) 16:19:17 ID:d/JO85hT
それはalways@(A)と同じでない?
レベルとエッジの違いがわかるかな?
レベルとエッジトリガの違いはあっても目的としては同じことになると思うが? 2値でレベルが変化するってことは信号のエッジが必ずできるってことだよな? 俺としてはalways(A)と書くんじゃなくて function foo; assign binbin = foo(A); とかして組み合わせ回路にしちゃう。
882 :
774ワット発電中さん :2005/07/13(水) 17:38:07 ID:d/JO85hT
両エッジってつまりレベルやん
あほか! 「レベルでカウンター回ったらどないなんねん。」 と突っ込んでおこう。 always@(edge A) と記述したいのでは?
レベルでカウンタ回ったら? Lo->Hiで1回 Hi->Loで1回 それぞれ回るだけだが何か? always@(A) begin counter <= counter + 1; end だろ?
プププ
bakadane
887 :
774ワット発電中さん :2005/07/14(木) 02:12:18 ID:rPDoDQn0
> ID:JIV4AdAm ゆとり教育の弊害なのかな・・・ 学生だったら別にいいんだが、社会人だったら君ヤバイ、やばすぎるよ。 あと1年ぐらいはちゃんと設計してからココに書きなよ。
always@(edge A) と記述したいのでは?
>>884 釣りなのか? だったらここの住人を見くびりすぎ
マジなのか? だったらスゲェ珍獣を発見した気分 ププ
だからこそ、VHDLがいいんだよ。 VHDLで同じことを考えれば、すぐに分かるのに
>>890 A' event and (ここをどう記述する?)
892 :
774ワット発電中さん :2005/07/14(木) 10:52:46 ID:ypsQmtw+
ちゃうねん
>>884 は、なんもまちごうてへんねん
ただそんな石がないっちゅうだけやねん
物理的にありえないデバイスについて物理的に理不尽な状況を シミュレーションする行為って意味ないよな
894 :
774ワット発電中さん :2005/07/14(木) 14:40:24 ID:ypsQmtw+
あんな、伝えようとする熱意 熱意が世界を切りひらくんやで …って宇宙人がゆうとった
>>891 event を使わない記述をすればOK
>>893 >物理的に理不尽な状況をシミュレーションする
とは具体的にどういう状況?
あり得ない前提を持ち出しその点の不備を徹底的に叩く。 詭弁の特徴だな。
>>897 具体的にというのは、実際のデバイスでいうとどのようなケースなのかという意味です。
今の流れから考えると「両エッジで動作するシミュレーションには意味がない」と言いた
いのかな?
まさかね・・・
>>899 レベルと両エッジを同じものと考えるのは理不尽だよなって流れだろ
ププッ
「レベルでカウンタ回すって意味わかんねーぞ」っていう反論と思ってOK?
902 :
882 :2005/07/16(土) 00:31:26 ID:8vEt7zJD
釣れた釣れた 大漁
>>882 >両エッジってつまりレベルやん
ギャッハハハ
間違いにようやく気づいてやんの。大笑
そして見苦しい
初心者で申し訳ないのですが、 always @(posedge a or negedge a) と always @(a) はどちらが良いですか?
905 :
904 :2005/07/16(土) 11:55:11 ID:SFjO8flD
というのも、aが X → 0/1 や 0/1 → X などのときにどうなるのかなと 思ったので。的外れだったらすんまそん
H''
908 :
774ワット発電中さん :2005/07/17(日) 23:49:34 ID:9FYnYPei
最近、ロジック記述ばかりで、HDL使ってないなー。
スケマチックのことか?
VHDLみたいな糞言語をこの後におよんでなんで今更使わにゃならんのだ?
911 :
学生 :2005/07/18(月) 16:54:47 ID:vh1ICOVp
Quartus2でシュミレーションすると Warning: Design contains 14 input pin(s) that do not drive logic となるのですがどうすれば動くのでしょうか? 出力波形も出ないのですが、、、
912 :
学生 :2005/07/19(火) 00:47:48 ID:/HmVcs/q
ちなみにコンパイルすると、total logic elementsが0のままです。
913 :
774ワット発電中さん :2005/07/19(火) 00:49:45 ID:ZVv5JVsO
最近、MAXIIばかりでカルタス使ってないなー
914 :
774ワット発電中さん :2005/07/19(火) 01:23:00 ID:S3EZyh6u
915 :
911 :2005/07/19(火) 01:34:29 ID:6rAB43cm
嫌だね
>>910 信号の状態流れを直接記述出来る言語は今のところVHDLだけです。
どっちが良いとか言わないがそれを解ってないお前はかなりの馬鹿だね。
>>916 >信号の状態流れを直接記述出来る言語は今のところVHDLだけです。
お前がVHDLしか理解できてないことがよくわかった。
くだらんこと取り上げてVHDLがあたかも優位であるような主張するとはマヌケの極みか?
死んだらどうよ?
918 :
774ワット発電中さん :2005/07/19(火) 09:18:17 ID:rLNouXCV
>>911 死ぬまで悩んでいなさい。
たぶんコードが正しく書かれていないので入力ピンが無効化されている。
シミュレーションの入力データはどうやって作ったかわからんが信号名が間違えている事も考えられる。
14本だと両手じゃ足りないんだろうな。
まず最初はアンドゲート1つだけで確認してみると井伊かも。
片手で間に合う本数だとできるかもよ。
>>917 理解してないのはお前ではないか?
間抜けだなぁ。
>>917 はびへーびあって言葉を知らないのでしょう。
煽りを入れるには未熟すぎて自滅と。(w
夏にはありがちな光景ですが。
921 :
654 :2005/07/21(木) 00:32:41 ID:CFOsondZ
このすれでは建設的にたのむよ
罵倒語しか出せない馬鹿が居なければそうなるのにね。
>>922 >間抜けだなぁ。
>馬鹿が居なければそうなるのにね。
すなわちお前がいなければこのスレが建設的になるってことだな。
夏厨がこのスレに書き込むな。早く宿題仕上げて。ママのおっぱいのんでねんねしな。
> 罵倒語しか出せない馬鹿が居なければそうなるのにね。 罵倒語レスを無視しつつ、建設的なレスを書ける人がいれば 建設的なスレになるんだがな。結局、無理なんだわ(w
>>923 ご自分のレスをよく見ましょうね。
頭の宜しそうな紳士様。(ゲラ
僕はVHDLしか知りません Verilogも勉強しといた方が良いですか?
せっかくの夏休みだから勉強しておきましょう。
ありがとうございます がんがります
ID:KemUW8Cg あったまわるいのう。 >間抜けだなぁ。 >馬鹿が居なければそうなるのにね。 >頭の宜しそうな紳士様 じゃまだよお前。
何時までも引っ張る厨が一番馬鹿だよ。 多くのネラーはそう思ってる。 つまらない話題を引っ張るなら何か有意義なネタでも投入すればヒーローなのに 何やってるの?
あのー、引っ張るって無関係な者ですが何か恨みでも? 良いから何かネタをくれよ。
粘着質は無視で良いと思うよ。
>>932 夏になったら湧くのはいつものことだから。
放置が特効薬だと思うわ。
この板自体厨が少なかったのに残念だな。 他の板と同じになったら嫌だよね。
自演厨はときどき板
そろそろ流れが戻ってる?
「CPLDやFPGAで全加算器を構成する場合、 CLAを実装するのは面積的にも速度的にも無駄」 という記述を見たのですが、具体的によく分かりません。 とりあえず切っ掛けだけでも構いませんので 御指導頂けると有り難いのですが。
>>937 CLA = carry look ahead ってのは理解してる?
最近のCPLD/FPGAは、ロジックセルに加算器のためのキャリー専用パスを
持ってたりするから、HDLで A <= B + C みたいな書き方した方が
一般に良い結果が得られるぞ
初心者ですがお願いします。 次のように、CHRCDEに入力した8bitのデータを前後にstart bit (1bit)と stop bit (2bit)をつけて11bitにしてシリアルに連続して出したい のですが次のモジュールを合成すると、入力がアースに落とされた形に されてしまうのですが、どうしてでしょうか?ちなみに、XilinxのWebPACK7.1i を使ってます。 module chargen(CLKIN, READY, CHRCODE, SEND, SIGOUT); input CLKIN; input READY; input [7:0] CHRCODE; input SEND; output SIGOUT; reg [10:0] charout ; reg bitout = 1; always @ (posedge CLKIN) begin if(READY) begin if (SEND) begin charout = {2'b11,CHRCODE,1'b0}; bitout = charout[0]; charout = charout >> 1; charout = {bitout,10'b0} | charout; end end else bitout = 1; end assign SIGOUT = bitout; endmodule
940 :
939 :2005/07/23(土) 14:12:13 ID:SOVJbdin
941 :
774ワット発電中さん :2005/07/23(土) 17:49:26 ID:yhOh4SI3
このスレとっとと埋めきっちまおうぜ。
>>939 alwaysのなかでブロッキング代入をわざわざ使う意味は?
無意味な梅は嵐と同じ。 つまらん提案は無用。
>>941 最近はそういう書き方が流行ってるんでしょうよ。
埋 め 立 て カ ウ ン ト ダ ウ ン ス タ ー ト
どっかの誰かが書いたというソース(設計書は無い)を改造するように言われたのですが、 if(いべんと)then if(hen1=1)then hoge<=1; end if; if(hen2=1)then hoge<=0; end if; end if; こんな記述に遭遇して、ただでさえ不慣れなVHDLに混乱しました。 この場合、hen2=1は、hen1=1に対してelsifで書けばいいと思うのだけど、 こういう書き方はふつうにあるんですか?
case文でも良いんじゃないの? 趣味の問題とみるが。
ふつうにあるが何か? elsifで書くと全くロジックが変わってくる。 つまり、 hwn1==1 かつ hen2 ==1 が成立する場合でもhoge <= 0にしたいんじゃないのか?
949 :
946 :2005/07/24(日) 11:01:34 ID:P1GRkTNY
ふつうにあるんですね。 それぞれがend if;で閉じてあることに違和感あったので… 一回のいべんとで、hen1=1とhen2=1が両方成り立つ場合、 hogeは式の優先順位から1になるのか、 それともふたつとも実行されて0になるのかで悩んでました。 >948 >hwn1==1 かつ hen2 ==1 が成立する場合でもhoge <= 0にしたいんじゃないのか? え?? こうなるとは思ってもみませんでした。 ということは、 hen<= hen2 & hen1; if(いべんと)then if(hen="01")then hoge<=1; elsif(hen="10")then hoge<=0; elsif(hen="11")then hoge<=1; end if; end if; と同じ回路だということでしょうか?
950 :
946 :2005/07/24(日) 11:09:07 ID:P1GRkTNY
↑ていうか、シミュレーションすればいいんですよね。
(明日やってみます)
>>944 まじですか?
それとも、嘘を嘘と(ry ですか??
もひとつ重ねて質問なのですが、
このスレでageられるソースにおいて、変数に「hoge」が多用されるのは何故でしょうか。
メソ?
>>946 HDL以前に通常のプログラム言語で
if(A) {
}
if(B){
}
と
if(A){
}else if(B){
}
の違いがわかってないよ。シミュレーションして試行錯誤的に進めるんじゃなくて
もいちど教科書読め
>>951 ありがとうございます ノシ
C言語で
if(A) {
}
if(B){
}
こう書かれたらどう動くはわかるのですが、
HWの記述ではひとつのいべんとがどこで終わるのか迷っておりました。
私が持ってる本ではこういう書き方がなかった……
ちょっと本屋で立ち読みしてきます
コンカレント文 と シーケンシャル文 の違いを学べ
>>953 ありがとうございます ノシ
コンカレント文で、該当の例文も発見しました…が、やっぱよくわからん。
また後で来ます。ありがとうでした。ノシ
955 :
774ワット発電中さん :2005/07/28(木) 12:52:37 ID:CQeF8FfS
早く使い切ろう。
嵐は去れ
957 :
774ワット発電中さん :2005/07/29(金) 21:39:19 ID:U6VPTzd0
台風一家
カウントダウンスタート
次スレは?
IcarusVerilogインストール後、コマンドプロンプトにてコンパイル試みましたが、 iverilogは内部コマンド外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。 とのエラーメッセージが出ます。 どうしたら改善されるでしょうか?
つ[環境変数のPATH]
962 :
960 :2005/07/31(日) 12:13:39 ID:aH35sDFp
>>961 さん
*:.。..。.:*・゜(n‘∀‘)η゜・.:*キタワァ
マジサンクスです!!
釣りじゃなかったのか...
verilogの前にやることがあるような気がする…
とりあえず次擦れ用のテンプレ集め、やらないか?
んじゃ、まずタイトル。 【PALASM】記述言語で論理設計 Project3【ABEL】
967 :
774ワット発電中さん :2005/08/02(火) 23:49:35 ID:S+jApFx5
非同期でか?
968 :
774ワット発電中さん :2005/08/03(水) 00:31:20 ID:ItlmCma/
「言語」って、そもそも何だ? 記号が意味を表すなら、MIL も言語か?
969 :
774ワット発電中さん :2005/08/03(水) 01:00:18 ID:hrwqnBBh
この板のバやい、マイコン、プログラマブルコントローラーに指令やプログラム を書き込む為の記号列全般を指すと思われまつ。
970 :
774ワット発電中さん :2005/08/03(水) 02:34:34 ID:Lw9Hhzg5
俺達の友情に言語(ことば)はいらない!
ラダー…のスレを探していたら、機械工学なのか
しんぷりふぁいも無料ライセンスもらえるみたいね、1ヶ月のやつ。 手続き面倒そうだけど・・・
974 :
774ワット発電中さん :2005/08/03(水) 19:53:55 ID:ItlmCma/
>>969 時系列が1つであるという制約を含めるか、それとも含めないか?
>>973 そういう期限付きの場合は,
PCのカレンダを逆戻しすれば永久に使えるんですか?
大昔のシェアウェアじゃないんだから...
977 :
774ワット発電中さん :2005/08/04(木) 12:20:44 ID:om0dcdEJ
漏れのPCは時計のクロックを100分周して突っ込んでいる