【always】Verilog & VHDLスレ【process】

このエントリーをはてなブックマークに追加
788名無しさん@3周年
残念だが VHDL の時代は終わったらしい

http://www.eedesign.com/columns/industry_gadfly/OEG20030407S0056
789名無しさん@3周年:03/04/10 14:39 ID:VHq3MLfF
>>788
消える運命なのは仕方が無いとして、VHDLのイベントの概念を
取り入れて貰えないかとはよく思う。

色々と書いていると、どうやってもVerilogでは書きづらい記述が
出てきてしまうからね。
両方使ってるとどうしても互いの悪いところが見えてしまうからなー。
790名無しさん@3周年:03/04/11 01:08 ID:NG2Ndlhi
HDLでBCD1桁同士の加算器をなるべく小さく作りたいのですが、
普通に
 input [3:0] a, b;
wire [3:0] sum = a + b;
wire cout = (a + b) > 10;
とかくと4bit binaryの加算器が合成されます。
それでも機能的に問題ないのですが、
もっと加算部分の回路を小さくする方法って有るのでしょうか?

単純に考えると
- 4bit binary 加算 : 入力が16*16通りの組み合わせ。
- BCD1桁の加算 : 入力が10*10通りの組み合わせ。
でBCDの方が小さくなっても良いんじゃないかと思ったのですが...
791名無しさん@3周年:03/04/11 01:27 ID:jyHAztiQ
頭の中で仕様書はできていて、波形も手書
きで完璧に書いているんですが、何も指示
されないので他人が理解できるような仕様
書を書いていません。それでもいいですか。
792名無しさん@3周年:03/04/11 02:01 ID:RdlGHJnd
>>790
>普通に

とか書いているがデバッグしてないな。
sumの値が間違っている
793名無しさん@3周年:03/04/11 02:31 ID:2Eq5me6g
>>790
加算器くらいゲートで書け
794名無しさん@3周年:03/04/11 02:51 ID:jyHAztiQ
ゲートで書いたらCLA使ってくれない。
795無料デバッガー:03/04/11 03:37 ID:RdlGHJnd
>>790
よく見たらcoutの値も間違っている。 a+b=10のとき。
もっとよく考えろ!
796790:03/04/11 03:45 ID:txURKFp5
>>792
すんません。デバッグしてないです。
自分の欲しい回路が、実は
『1桁BCD加算器ではなく入力にa<10, b<10の制約がある場合の4bit binary加算器』
だったので、間違えました。
carryのとこは、マジバグです

直しました。
input [3:0] a, b;// operand
output [3:0] out;// BCD sum
output cout;// carry
wire [4:0] sum = a + b;
assign cout = (sum >= 10);
assign out = cout ? (sum - 10) : sum;

>>792
HDLスレなのに...

ゲートで考えてもいいのですが、知りたいのは
上記のVerilog記述中の sum=a+b を構成する回路で、
入力a,bのとり得る値が0〜9の範囲であるとき、
半加算器1ヶ+全加算器x3ヶ で構成するよりも回路を小さくできるか?
です。
797名無しさん@3周年:03/04/11 05:40 ID:NwsbmW4a
798名無しさん@3周年:03/04/11 22:36 ID:LLRgvo5N
今月のトランジスタ技術ではVerilogですね。
今まではVHDLの方の記事が多かったと思うのですが、どでしょ?

799名無しさん@3周年:03/04/11 22:40 ID:LLRgvo5N
つっか、どうせ両方やるハメになるんなら、
Verilogから覚えたほうが早いか?、VHDLから覚えたほうが早いか?

なんとなくVerilogの方が、Cに似てない事もないから、とっつきやすい?
800名無しさん@3周年:03/04/11 22:58 ID:Ljfd3Ims
>>799
Cから入るなら、Verilogかな。
どっちも使ったが一長一短。個人的にはVHDLが好きだが
将来はないだろうね。
801名無しさん@3周年:03/04/12 14:19 ID:b92T271X
研究室の院生がpalasm以外使わせてくれません
802名無しさん@3周年:03/04/12 16:40 ID:c38Lvsy0
>>801
そんな研究室は潰れた方が良いよ。
只でももっとましなのがある。(w
803名無しさん@3周年:03/04/12 23:16 ID:GsslnYs0
>>802
確かに一生に一度くらい、方眼紙を使って
16V8用のRS-FFのJEDECヒューズ・マップを手作業で書いてみる

くらいのことをやっても無駄にはならない様な気もする。
804名無しさん@3周年:03/04/12 23:25 ID:qCY7oAjQ
>>803
2回目からは無駄
805名無しさん@3周年:03/04/13 08:30 ID:EGQRFMlR
>>804
いや、だから「一生に一度くらいは」ということで。
プロのエンジニアとして、こんなことやる暇はないだろうが、
学生のうちに1回やっておくのは無駄とは思えない。
(確かに2回目からは無駄なんだが)

きっとエンジニアだって、理屈わからずにVerilog書いている輩は絶対いるぞ
806名無しさん@3周年:03/04/13 11:13 ID:a4JRUoC+
PLDのアーキテクチャを理解するって勉強は必要かもしれんが
だからと言ってヒューズマップを作らなければならないという事には
ならないよ。
てか現状作ってもそれで終わりだろ? そんなカビが生えたような
システムを持ってる所の方が少ないよ。
やっても良いかも知れないが、使えないなら教科書を読んでるのと
大きく変わらない。

それより、CPLDの評価回路を作ってそれにどんどん回路をインプリ、
デバッグして開発とデバッグの全体像を掴む方が重要。
その過程で、どんな回路が生成されているのか、それで良いのか、
設計者の意図する回路を生成させるために必要な要素は、と言った
事を学べるんだから。
ヒューズマップ書いてる時間で随分色んな事が出来るんだからさ。
807名無しさん@3周年:03/04/13 21:39 ID:KsS8GDPs
う〜ん、難しいなぁ
Cコンパイラを使わずアセンブラ(もしくは機械語)でプログラム書け っていうのに近いか?
確かにやっておいたほうがいいかもしれない経験ではあるが。
暇で暇で、しかも回りにPCすらない、例えば法事で田舎の家に1晩泊まった時なんかには
やってもいいかな、っていう程度。
808名無しさん@3周年:03/04/14 08:59 ID:RVgzCx7E
トランジスタ技術を買った高専生なんですが
Cは中学生の頃から使っていました。
Cを知っているならVerilogを学習するほうがいいでしょうか?
トランジスタ技術もVerilogを解説している様なので。
809名無しさん@3周年:03/04/14 09:16 ID:CB7yrWba
>>808
言語その物の文法が殆ど同じだからね。
今後、Cベースに移行していくと考えるとVerilogが良いでしょう。
ただどうせ勉強するならどちらもやっておくと良い、VHDLには、
VHDLの良さもあるから。
810名無しさん@3周年:03/04/14 09:28 ID:IahQZXr4
>>807
Cプログラマでってあっても
アセンブラ書くことは必要だよ。
多分、意図してるのはハンドアセンブラだな。
811名無しさん@3周年:03/04/14 17:44 ID:nkSh5pGO
>>809
VerilogさんもどうせCライクにするんだったら、なんで
if文を if () { } ってな文法にしてくれなかったんかなぁ。
覚えにくくてしょうがない。
812名無しさん@3周年:03/04/14 17:54 ID:3l487p/q
モジュールインスタンスをループで複数個増やすことはできんのか with Verilog
813名無しさん@3周年:03/04/14 20:56 ID:IahQZXr4
>>811
俺もそう思う。
覚えにくいというよりbegin〜endなんかより{}がずっと短くて、見やすいよ。
ついでに`define `ifも#define #ifにしてくれればSystemCなんて要らないってか?
ケラケラ
814名無しさん@3周年:03/04/14 21:31 ID:CB7yrWba
Verilogも嫌いではないのだけど、信号を変化で捉えると言う概念が無いのが
どうも使いにくいな。
ラッチとワイヤーってのはどうも慣れないわ。
815名無しさん@3周年:03/04/15 00:58 ID:TwiRnd6i
>>812
Verilog 200X ならgenerate文でできるけど、
まともに実装しているシミュレーターも合成処理系も知らない。

非標準のプリプロセッサ
http://www.surefirev.com/vpp/
でもできるけど、イマイチ使いにくいかも。
816名無しさん@3周年:03/04/16 22:30 ID:oaowVRuf
>>796
全てをコントロールしようと思うな.
詳細な実装はツールに任せるのが論理合成との正しい付き合い方だ.
どうしても,と言うのであればDesignWareのコンポーネントを構造記述しろ.
以上.
817名無しさん@3周年:03/04/17 00:57 ID:olcZCCQw
使いやすいほうを選べばいい? VHDL Verilog
818790:03/04/17 01:44 ID:jSv6MQf9
>>816
ご助言ありがとうございます。
仰られるような事には普段気をつけているつもりです。

 『a[3:0]<10, b[3:0]<10の入力値制約の元でsum[3:0]=a+bを計算する』
という処理を、HDLで + operator を使って合成すると
DesignWareのbinary adderが合成されました。

今回、携わっている回路で上記処理が多かった(面積的にクリティカルだった)
ので、回路的に本当にBESTなのかと疑問に思ったのです。
ゲートの組み合わせによる構造記述も考えたのですが半加算器x1+全加算器x3の他に
思いつかず、またcase文での総当りを試しても(もちろん)小さくなりませんでした。
819山崎渉:03/04/17 08:43 ID:lBh9QBwB
(^^)
820名無しさん@3周年:03/04/17 14:12 ID:ieNTtFYk
modelsim の examples/mixedHDLのcompare.doを実行すると
いったん立ち上がった直後アボートしちゃうんです。コマンド入力すると

vsim -wlf gold.wlf wotk.top

で死ぬことがわかって、エラーメッセージとして
# Attempting stack trace sig 11
# Signal caught: signo [11]
# vsim_stacktrace.vstf written
# Current time Thu Apr 17 14:04:52 2003
# ModelSim Stack Trace
# Program = vsim
# Id = "5.7c"
# Version = "2003.03"
# Date = "Mar 13 2003"
# Platform = win32
# 0 0x00576082: '<unknown (@0x576082)> + 0xcfd12'
# 1 0x00576242: '<unknown (@0x576242)> + 0xcfed2'

# Corrupt Call Stack

** Fatal: (SIGSEGV) Bad pointer access. Closing vsim.
** Fatal: vsim is exiting with code 211.
(Exit codes are defined in the ModelSim messages appendix
of the ModelSim User's Manual.)

が出ます。同じ症状になった人います?他のPCでは出ないので、ハードウェア
のエラーなんでしょうかね?
memtestでもエラーは出ないんですけどね?
821学生さん:03/04/19 00:23 ID:foe2bAun
このスレのみなさんはご自身のキャリアパスをどのように考えておられますか?
822名無しさん@3周年:03/04/19 14:24 ID:NqQARzRp
>>818
>『a[3:0]<10, b[3:0]<10の入力値制約の元でsum[3:0]=a+bを計算する』
>という処理を、HDLで + operator を使って合成すると
>DesignWareのbinary adderが合成されました。

「入力値制約」ってどうやって指示したの?
とっても疑問
823720:03/04/19 22:13 ID:+rNS31AP
>>822
誤解を与えてすいません。
目的の処理内容には入力値に制約(というか条件?)があるのですが、
HDLや合成制約として、有効な指示を与えることはできませんでした。

一応  sum[3:0] = (a < 10 && b < 10) ? (a + b) : 4'bxxxx;
も試してみましたが、効果ありません。
case文で10*10条件書き下し、full_caseディレクティブを与えれば、
a>=10||b>=10にたいしdon't careという制約が表現できますが
binary加算器を使うよりも小さくはなりませんでした。
824山崎渉:03/04/20 03:54 ID:62iGJiyF
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
825名無しさん@3周年:03/04/20 14:53 ID:ihr8XSu0
条件付き代入文は単にマルチプレクサを推定する記述に過ぎないよ.
だから加算器の構成に(a<10 && b<10)という条件は全く関与しない.
単に入力を選択する論理に接続されるだけ.
Design Compilerがやることは単に+という算術演算子をDesignWareの
ライブラリ中のDW01_addに置き換えるだけ.DW01_addの実装はいくつか
準備されてるが,それはタイミングやエリアの制約条件で最適なものが
選択できるようになっているだけ.

823が望んでいるような”カスタムな”加算器を合成することは初めから
想定されてないよ.どうしても a<10 && b<10 という制約条件下で最適化
された加算器が欲しいなら,論理ゲートレベルで書き下すしかないな.


826名無しさん@3周年:03/04/20 22:37 ID:OdrcH+qX
>821
スレ違いでわ?
別スレ立てるか転職板に行くか
http://science.2ch.net/test/read.cgi/kikai/1012509519/l50にいったほうがいいんじゃない
827名無しさん@3周年:03/04/21 16:45 ID:jhlOnw8g
あげっと
VHDLの記述方法で教えてください。

a <= ( others => '0' ) & b( WIDTH-1 downto 0 );

Aは固定長レジスタ
BはAよりも短い可変長レジスタです。

BをAに代入する時に、上位を「0」で埋めたいのですが、
上記方法ではエラーがでてしまいます。
どのように記述されば良いのでしょうか?
828名無しさん@3周年:03/04/22 05:15 ID:F6DZcUtI
>>826
>821は「このスレのみなさん」に対する質問だから、スレ違いではないYo
質問内容はともかく...
829名無しさん@3周年:03/04/22 13:41 ID:UFwRaQt6
先日Verilogというものの存在を知ったばかりのソフト屋です。
ちょっとお聞きしたいのですが

module test3v(a1,a2,a3,b1,b2,b3,q1,q2,q3);
input a1,a2,a3;
input b1,b2,b3;
output q1,q2,q3;
function fand3;
input i1,i2,i3;
fand3 = i1 & i2 & i3;
endfunction

assign q1 = fand3(a1,a2,a3);
assign q2 = fand3(b1,b2,b1);
assign q3 = q1 & q2;
endmodule

という記述(Cみたいにfnad3のinputの中身をローカル変数っぽく記述する)
っていうのは正しい記法でしょうか?
830名無しさん@3周年:03/04/22 23:41 ID:Iu8dIr8p
>829
正しいというのが良くワカランが、文法としては合っているのでは?
831829:03/04/23 09:59 ID:Yxm6OwG1
>>830
あれでいいんですか?
チラっと見た本では、こういう場合
function fand3;
 input a1,a2,a3;
 fand3 = a1 & a2 & a3;
endfunction
と、assignするポートと同じポートを書いている例ばかりだったので。
Verilogのfunctionって所謂Cでいうところの、 引数−仮引数の関係では無いんじゃないかと
思ったもんで。
832名無しさん@3周年:03/04/23 11:57 ID:i3nzfPYe
>>831
ちょっと違うが(functionを呼んでもソフトウェアみたいにメモリの節約にはならない。
 どっちかというとマクロっぽい)
まぁ、そういう事ですね。
833名無しさん@3周年:03/04/24 00:59 ID:eUMl++KE
>>831
いや、引数−仮引数の関係(値渡し)で正しくて、
Cのマクロよりは関数に近いでしょ。
のようにfunction内でaに代入しても、aの値は変わらない。
moduleのaが、functionローカルなスコープのaに隠されるから。
834833:03/04/24 01:00 ID:eUMl++KE
|module test3(a, b, q);
| input [2:0] a;
| input [2:0] b;
| output [2:0] q;
| function fand3;
|input [2:0] a;
|begin
| fand3 = a[0] & a[1] & a[2];
| a = 3'bxxx;
|end
| endfunction
| assign q[0] = fand3(a);
| assign q[1] = fand3(b);
| assign q[2] = q[0] & q[1];
|endmodule
|module top;
| reg [2:0] a, b;
| wire [2:0] q;
| test3 U0(.q(q), .a(a), .b(b));
| initial begin
| $monitor("%t: %b %b -> %b", $time, a, b, q);
| a = 0; b = 0;
| #10;b = 7;
| #10;a = 7;
| #10;a = 0;
| #10;
| $finish;
| end
|endmodule
835833:03/04/24 01:05 ID:eUMl++KE
スコープ的には
- Verilogのfunction引数 <-> Cの関数の引数
- Verilogのmodule内変数 <-> Cで関数外宣言したstatic変数
のように対比すると考えやすいと思います。

Cのマクロに相当するものは、Verilog200xで導入されたけど、イラネ。
836名無しさん@3周年:03/04/24 12:10 ID:zJnDdjnb
>>833
その「マクロみたい」っていうのは「function使ったってレジスタの節約にはならない」
と言いたかったんじゃないすか?
837833:03/04/25 01:04 ID:O0Ar8rQX
確かに論理合成を考えると、
Verilogをパースして内部表現(GTECHとか)に落とした時点で
functionの構造は破壊されてるから、inline展開されるCのマクロにイメージが近いのかも
# 合成ツールは複数のfunction呼び出しを演算器共有のヒントに使わないのか?

わたしの場合は、シミュレーター実行状態をイメージしていて、
functionはスタックに積んで引数を渡すのに近い(最適化していない場合)
と思ったので、Cの関数に近いと言ってしまいますた

喩え話は誤解を招きやすいっす(>>835も変な喩えだ)
838動画直リン:03/04/25 01:13 ID:4J1jbtGy
839名無しさん@3周年:03/04/25 01:24 ID:1sNSQ3Ap
functionはマクロっぽいけど。それより大事なのは組み合わせ回路ができるってこと。
alwaysでもできるけど、よりはっきりしてる罠
840名無しさん@3周年:03/04/25 03:16 ID:F+eLJ0he
この辺りを見てると、VHDLに戻りたくなるなぁ。
ま好みの問題だけど。
841名無しさん@3周年:03/04/26 01:45 ID:gxmwDZZK
組み合わせ回路をfunctionで書くか、alwaysで書くか、の問題は
Verilogに仕掛けられた最大の罠だねー。
どっち派の派閥の言い分も一理あって、一度抗争が起こると果てし無く発展する。
一見論理的な論争になるが、結局は趣味の問題、適材適所としないと収束しない。
842名無しさん@3周年:03/04/26 15:11 ID:1iyVLQow

こんなのが発売されてるよーー

http://www.solitonwave.co.jp/product/hdl/index.html

電話したらまだ売っていた
843bloom:03/04/26 15:13 ID:BvlXMLH5
844名無しさん@3周年:03/04/26 21:24 ID:UvmM4LR2
>>841
趣味の問題といっても、Verilogを作った人間の意図としては
functionが組み合わせ、alwaysがラッチだろ。
結果は同じだからと、意図を無視する人間は、大概何らかしらの欠陥があるな。
845名無しさん@3周年:03/04/27 00:00 ID:JFdpjBW4
VHDLのパラメタライズ化で悩んでいます。

例えばN進カウンタのNをパラメータで渡すとします。
Nが100だった場合に必要なカウンタのビット幅は7ビットですが、
この7を求めるにはどうしたら良いのでしょうか?
846名無しさん@3周年:03/04/27 00:56 ID:0e9DocbI
>>841
>組み合わせ回路をfunctionで書くか、alwaysで書くか、の問題は
>Verilogに仕掛けられた最大の罠だねー。

通常はalways。 こっちのほうがlint関連とかのトラブルが少ない。
あと、デバッグが楽。
同じ組み合わせ論理を引数替えて複数使うときはfunction。
847名無しさん@3周年:03/04/27 08:32 ID:dUZnOjxv
>>845
そこまで便利ではないよ。
そもそも変数のビット幅とカウンタのビット幅の関係をよく考えてみれば解るはず。
どこをどう取り出すかを先に決めないでどう回路が出来るのだ?
848名無しさん@3周年:03/04/27 13:15 ID:v5jHvIJ3
>>この7を求めるにはどうしたら良いのでしょうか?
それに対して
>>そこまで便利ではないよ。
>>そもそも変数のビット幅とカウンタのビット幅の関係をよく考えてみれば解るはず。
>>どこをどう取り出すかを先に決めないでどう回路が出来るのだ?

何言ってるんだか?
論理としては、
[log2(100)]、[]ガウス記号
Cでやるなら
(int)(log2(100))
VHDLではコンパイルオプションでは無理だな。
Verilogなら`defineでlogをテーラ展開すればなんとかなるかもしれない。
849名無しさん@3周年:03/04/27 13:21 ID:v5jHvIJ3
すまん大訂正・・・カッコ悪
[log2(100)]+1
(int)(log2(100))+1
だった。
850845:03/04/27 15:55 ID:MHTUXFA6
>>848

アドバイス有り難うございます。

>VHDLではコンパイルオプションでは無理だな。

やっぱり無理ですが・・・
最終手段はCかなんかで変換プログラムを作るしか無いのですね。
851名無しさん@3周年:03/04/29 00:21 ID:3X6F+zaN
>>最終手段はCかなんかで変換プログラムを作るしか無いのですね。
これならperlあたりが便利だよ。
でもなぁ・・・そんなことすると統合環境上からだと使いにくいんだよな。
無理やりできても結局開発効率が低下すればHDLなんて使う意味がないんだよね。
Cと同じコンパイルオプションを採用してくれてたら何も問題なかったんだけどね。
852名無しさん@3周年:03/04/30 01:19 ID:nIVrPJAa
>>851
いや、最終手段というのは泥臭くてもなんでもインプレメンテーションすりゃあ良いと
開き直れば、手はいくらでもあるわけでして。
例えば100という数だって2進パラレルで入力されるのが普通だろうから、その並びをMSB側から見ていって
初めて1が表れた所より下のビット数が必要なわけだわな。
仕様が決まって10本入力用意してあるとして、MSBが1なら10bit、MSBが0でその下が1なら9bit必要と、

853名無しさん@3周年:03/05/01 02:38 ID:acfL8d4T
>>827
aが31Bit以下なら(32Bitは不可)
a<=conv_std_logic_vector(conv_integer(b(WIDTH-1 downto 0)),***);
854名無しさん@3周年:03/05/01 02:41 ID:acfL8d4T
>32Bitは不可
「32Bitは危険」に訂正
855名無しさん@3周年:03/05/01 10:31 ID:HlAzk+d6
>>842
お前か。2chで宣伝したのわ?
BBSが2ch臭くなって、パンヂーが誰も寄り付かんわ!

http://bbs1.kze.ne.jp/hdl_trainer/
856名無しさん@3周年:03/05/01 11:45 ID:0X+7dA9C
>>855
書き込みを見てると、下らない事書いてる方が
恥ずかしくなる内容だと・・・。
なんて言うか、本当に頭の悪さが滲み出てますね。
857名無しさん@3周年:03/05/01 23:52 ID:acfL8d4T
>>850
変換プログラム作るぐらいなら、
log2の関数を自分で作るのはだめなの?
858名無しさん@3周年:03/05/02 11:30 ID:1wOhIMuV
えと、XilinXのWeb Pack ISE (5.2.01i)を使っているのですが
module xx(a,b,y1,y2);
 input a,b;
 output y1,y2;

 assign y1 = a & a ;
 assign y2 = a & b ;
endmodule

ってな、ちょっと意味無し論理を合成すると、
出力された回路図を View RTL Schematic で見ると
なんか変 ( y2の入力がbだけになっていて、y1が見当たらない)
なんですが。

 assign y1 = a & !a ;
ってやると、ちゃんと(?) y1が常0になる回路図が出ます。
どでしょか?

859858:03/05/02 11:32 ID:1wOhIMuV
ちなみにImplementDesignは通るし、
ModelSimもちゃんと動作してますので、
ビュアだけの問題かもしれませんが
860名無しさん@3周年:03/05/02 12:10 ID:W2TshvSc
>>858
最適化されただけではないかと。

入力と同じ出力は不要と判断したのかな。
合成ツールのマニュアルを読んでみることを薦めちゃうわ。
861858:03/05/02 12:38 ID:DfBFrWiG
>>860
http://www.kari.to/upload/source/0001.png
いや、それがこうなるんですわ。
862名無しさん@3周年:03/05/02 23:17 ID:cFDUQkdG
>>850
そもそも range 付きの integer で記述するのはだめなのか?
とか聞いてみたり。
863名無しさん@3周年:03/05/02 23:50 ID:W2TshvSc
>>861
あんた、「最適化」の意味わかってるか?
864名無しさん@3周年:03/05/03 00:31 ID:+G3S1K6e
>>858
それはツールのバグちゃう?
865名無しさん@3周年:03/05/07 07:43 ID:VM00j003
スタンダードセルとHDLの相性はどうなんでしょうか?
いまいちスタンダードセルというのがよくわからないです。
866名無しさん@3周年:03/05/07 11:13 ID:Uw18AtH8
>>865
分かっていることを書いてみてよ。
でないとアドバイスのしようがないし。
867名無しさん@3周年:03/05/07 20:54 ID:VM00j003
>>866
今まで経験してきたのは、FPGAだけです。
FPGAだと、RTLでゲートレベルまで突っ込んだ設計はほとんどしないけど、
ASICだと、HDLでも、かなり細かいところまで手を加えると聞いてます。
で、スタンダードセルの場合は、どんな感じなのかなと思って。。。
868名無しさん@3周年:03/05/07 21:15 ID:u4sWa0HD
そもそもスタセルとHDLの相性云々て話を持ち出す事自体
どうかしてると思うな。

DCが生成した回路がまずいと思ったら、少し掘り下げて生成
される回路を意識して書くとかって位ではないか?
その辺りは実際経験してみたらいい。
869名無しさん@3周年:03/05/07 21:46 ID:gSdqqiRL
>867
RTLでゲートレベルまで突っ込んだ設計ってのは矛盾してないかい?その時点でRTLでは無
くなって単なるネットリストになっていると思うが。
合成結果を気にするのなら、俺の経験の範囲内だとVerilogだけで申し訳ないが、FPGAで
動作する記述が書けてればASICで動く記述は書ける。ASICのみの経験で合成結果を考え
ないような設計をしていた連中が、FPGAではまってたのを見たことがある。
ASICはFPGAより制約が無くて楽だと思っていいと思う。
870名無しさん@3周年:03/05/07 22:13 ID:tIyVMY+F
>>869
ま、ネットリストもHDLで書けるからな。
871名無しさん@3周年:03/05/07 22:15 ID:tIyVMY+F
>>869
> ASICはFPGAより制約が無くて楽だと思っていいと思う。

周波数が低いならそれでいいが、
数十MHz以上あって、プロセス0.25以下とかだと、それなりに大変だぞ。
RTLのファンクションを実現するための仕掛けをいろいろとやらないといけない。

FPGAの方が楽だと痛感する。
#失敗しても安いし。
872名無しさん@3周年:03/05/07 23:03 ID:Wgx5Y4MJ
>>869
>ASICはFPGAより制約が無くて楽だと思っていいと思う。

そりゃちょっと言いすぎかもね。まあいろいろある。
873名無しさん@3周年:03/05/08 00:22 ID:mRfmT30d
>871
>数十MHz以上あって、プロセス0.25以下とかだと、それなりに大変だぞ。

逆だろ?100MHz程度、0.13までやったことあるが、全然楽だったぞ。
ま、製品や規模にもよるとは思うけど、経験積んでてどこに注意すればよいか判って
れば、ルーチンワークみたいな感覚だけど。
あくまでHDLの話なんで、コンパイルしてから後のレイアウト等はおいといて。
874bloom:03/05/08 00:25 ID:HviAazGX
875名無しさん@3周年:03/05/08 07:36 ID:STQ2VpWO
>>873
> 逆だろ?100MHz程度、0.13までやったことあるが、全然楽だったぞ。
> ま、製品や規模にもよるとは思うけど、経験積んでてどこに注意すればよいか判って
> れば、ルーチンワークみたいな感覚だけど。

経験でホールドエラーなどを予測できるとは、たいしたもんだよ。
是非とも君に仕事を頼みたい。
876名無しさん@3周年:03/05/08 12:19 ID:QrZzXqmG
>>873
は集中定数分布定数使ったレイアウトを100MHzのバスで組んだことあるんかね・・・?
100MHzとなりゃ、空を飛んでるFMとおなじくらいだから、レイアウト悪いと隣接配線にも乗りまくるわけで・・・
877bloom:03/05/08 12:25 ID:HviAazGX
878名無しさん@3周年:03/05/08 13:23 ID:QrZzXqmG
そういや、PENは基本的にパイプラインを引き継いでるからアドレスラインとデータラインはPIN一個飛びずつ動作してるの利用して
2PINか3PINおきにVCCまたはGNDもうけてコプレーナライン形成し、さらにその上に多層基盤でマイクロストリップライン形成して
最大限にスピードを出せるようLSIも基盤も設計されてるが、単なるLSI屋じゃそこまで考えず整然とバカ正直にA線D線が順番に並んでるからスピードだそうとすれば
基盤屋にしてみれば相互緩衝がどうしても苦悩の種で、LSI屋にしてみればチップだけ作ってあと知らんて感じだからイタイ罠。

879名無しさん@3周年:03/05/08 15:54 ID:34YjL05/
>>878
200M程度ならそこまでしなくても動くぞ。
経験済みっす。
880名無しさん@3周年:03/05/08 16:20 ID:QrZzXqmG
>>879
200Mてチップの?バスだとチップは800Mにもなるからそうだろうな。
バスクロックは50Mか・・・。それでもかなりFMに近い罠。
基盤屋さんが動くように基盤を作ってくれたのだよ。
ところで100M、200Mって、どんな製品?
881名無しさん@3周年:03/05/08 16:22 ID:97IS2YuU
オナニー友の会
http://homepage3.nifty.com/coco-nut/
882bloom:03/05/08 16:25 ID:HviAazGX
883名無しさん@3周年:03/05/08 16:46 ID:QrZzXqmG
そういやよくあるよな。チップ屋がバカみたいに綺麗に順番に並べたバスラインのPINで
並んだまんまのバス配線じゃ動作しないから、PIN一本おきに、ベア作って中間層に持っていて、表層と中間層の間はべたアースのマイクロストリップかましてある手が混んだ基盤が・・・
バカチップ屋のためにそんな基盤設計させられたら基盤コストもかかってしょうがない罠。チップ屋は動く実装基盤見てただ喜ぶだけだろう。配線の実装が実物のようになっている理由なんて考えもしないし、そんな能力ないしな。
で、悪い方に転がって、ジッタがすごくて動きませんとなったときに、どうすればいいか分からなくて慌てふためくんだよな・・・
884名無しさん@3周年:03/05/08 16:54 ID:34YjL05/
>>880
いや、DDRSDRAMのI/Fだから、データバスに限って言えば400Mだったが。
で、基板上で色々と工夫をした物のコプレーナ云々は意識せずに出来たぞ。
当然、Simで伝送路の特性や波形も見たりするわけね。
必要ない部分に無駄な技術を投入することもないって事だよ。

あとさ、基板屋に任せっきりで動いたって思ってる君は甘過ぎだな。
885名無しさん@3周年:03/05/08 16:55 ID:34YjL05/
基板を基盤と書く奴も信用出来んがな。(w
886名無しさん@3周年:03/05/08 17:04 ID:QrZzXqmG
↑バスクロック400Mでそれでよく動いたなぁ。
少なくともライン2,3本に一本はGND入れないと動きそうにないんだが。
当然2層目はベタアースでしょ?
887名無しさん@3周年:03/05/08 17:19 ID:34YjL05/
>>886
まーな、特性インピーダンス50[Ω]保証の基板だし。
IBISやらPSpiceを使ったSimをするから実際には余り
凝った事をしなくてもきちんとマージンまで見越した
設計が出来る所まで来てるんだよ。

もっともっと高周波になると難しいだろうね。

ただ、RAMBUSでも実績があるがあれもそれ程難しい
物で無かったと記憶してるよ。
888素人:03/05/08 18:33 ID:dCnHSWTA
質問なんですけど、32×8のDDR400の石って、どうしてスポットで65ドルもしているのですか?高すぎませんか?
作るのが難しいのですか?ごめんなさい。おばかな質問です。
889名無しさん@3周年:03/05/08 19:52 ID:obrjHHKh
>>887
けっきょくあなたが偉いのではなく、設計ノウハウを持っている基板屋さんが
とっても偉いだけでないの?

どうもこの書かれている内容は、俺の知っている某PCB屋の技術者のような
気がするのだが・・・。

>>888
そんなもんだろう、、、、、うちも、、、
890名無しさん@3周年:03/05/08 22:18 ID:34YjL05/
>>889
基板屋さんが偉いんですか。(w

少なくとも君がよく解ってない奴だって事だけは理解出来た。
インピーダンス管理と、Simを一緒にしてるんか?
891名無しさん@3周年:03/05/08 23:20 ID:obrjHHKh
>>890
いや、悪いがかなり良く知っている。ここで書いてもあなたの文章同様信憑性はないが。

>まーな、特性インピーダンス50[Ω]保証の基板だし。
こんなのは回路設計者は指定するだけで、公差+/-5%などに収めることができる基板屋さんが偉いと
書いたんだ。

まぁ890さん。
よくがんばったよ。これからも日本の技術の更新のために
次のレポートをよろしく
892名無しさん@3周年:03/05/08 23:26 ID:obrjHHKh
スレにそった事を書くけれど
FSM(ステートマシン)オプティマイザって必要あるかい?
俺はVerilog-HDLでコードを書いた瞬間に、合成後のステートマシンの形式は
決まってしまうと思うんだけれど

究極のステートマシンはシフトレジスタです、と聞いたことがあるんだけれどね。

最近の高位合成ツールの説明にFSMオプティマイズがだいたい乗っているから
もし、これが効果的ならこれらサポートのツールを次期導入に進言しようかと。
893名無しさん@3周年:03/05/08 23:48 ID:34YjL05/
てか君の書いてる事って全然たいしたこと無いんだけど。

アホもそこまで行ったら立派だわ。
894名無しさん@3周年:03/05/08 23:49 ID:34YjL05/
的外れな事を大いばりで書くのが最近の流行のようで。(w
895名無しさん@3周年:03/05/09 00:00 ID:RF9rTDfE
>>894
相手してあげようか?
896名無しさん@3周年:03/05/09 00:23 ID:8xbjMy4O
うちの会社の別の部署なんだが、過去にASICもCPLDも殆ど経験無いのに いきなりFPGAを製品に使うことにして
開発は何を考えたか、Cだと。
VerilogもVHDLも分かる人いないからだと。

で、思ったような結果が得られなくて苦しんでるらしい。まあ、マネージャがヴァカなんだな。
高い金額のツールを買えば便利だろうぐらいに思ってCで書いてるようだ、救いがたい。
897bloom:03/05/09 00:25 ID:qyXUH2Id
898名無しさん@3周年:03/05/09 00:27 ID:cWZVblFE
>>894
それ、自分の書きこみを落ち着いてみてみなよ.
あなたのことじゃないかな?

俺以外の人もそれで反応しているんじゃないかい?

バスクロック200Mhzの設計、本当によくがんばったね。
ごくろうさま
899名無しさん@3周年:03/05/09 00:39 ID:A6bamqE+
>>896
EDA営業の糞な嘘宣伝にはめられただけだよね。またちょいちょい聞くんだ、そういう話(w
900名無しさん@3周年:03/05/09 00:46 ID:3kysBjTV
>>896
結局、現状は、CからHDLを吐き出すための中間ツールだからね。
それ以前に、ハードの事をある程度解っていないと、HDLを使う
事はかなり無理があるのを解ってなかったのだろう。
それを導入するなら、シンプリファイかアンプリファイを買った方が
ずっと役に立ったのではないかな。
901892:03/05/09 00:57 ID:cWZVblFE
横レスすみません
それってフィジカルシンセサイザ(Amplifyのほう)の導入のほうがよかったということですか。
さきのFSMもそうですが、フィジカルシンセサイザは非常に有効なツールだとは
聞いているので、ご存知であれば教えてください
902名無しさん@3周年:03/05/09 01:18 ID:3kysBjTV
>>901
いや、漏れもそこまでは知らないですよ。
ただ、使ってる人にはよく勧められます。
五百万がなかなか出せないから導入はすぐってわけに
いかないのが悩み所ですね。

あと、シーケンサに関しては、ワンホットを自前で書いてれば
それ以上高速な回路にはなりようがないのではないかなって
思いますよ。
903892:03/05/09 01:48 ID:cWZVblFE
横レスで回答ありがとうございます

うちも営業が来てフィジカルは薦められているので興味はあるんです
価格はまさにそのとおりであり、たしかに手出しづらいです(汗

シーケンサのほうもそうですよね、、、
ステートマシン系ってオプティマイズさせるようなコードを書くほうが
難しいような気もしてくるのですが、これは設計になれているからカモ
904名無しさん@3周年:03/05/09 02:54 ID:yVpHUubK
>871
>数十MHz以上あって、プロセス0.25以下とかだと、それなりに大変だぞ。

そのクラスだと、ここらに出たような手設計オプティマイズはしない(しても
プロセス&EDAのおかげでするだけの効果/労力が無いし、無理な手設計の結果バグを
誘発するようなことになっては恐いし、そんなオプティマイズする暇あるなら
ほかの検証でもやってな、ってことになる) から、かえって楽かも。

マネージメントにかかる労力は桁違いだが。
905名無しさん@3周年:03/05/09 03:07 ID:J8s6JkNe
ホントのところ200MHzバスクロックのASICって簡単なのかそうじゃないのかどっちなのよ。
最新のFPGAだと何MHzぐらいで動くと世間の相場なのよ?例えば16ビットx16ビットの乗算回路では?
もっと具体例としていいのがあればそれを使ってくれてもいいけど。
906名無しさん@3周年:03/05/09 23:05 ID:X8+OwS+N
FSMのオプティマイズって、面積・スピード方向だと殆ど効果ないと思う。
コンパイラが静的な方法でオプティマイズした結果と、人間がHDLで適当にアサインした結果で
大幅に変わった例を知らない。

けど、消費電力にシビアなシステムでは、オプティマイズにsimのプロファイル結果を反映できると
結構変わりそうな気がする。
907堕天使:03/05/10 21:25 ID:oARjlPaY
908名無しさん@3周年:03/05/10 22:22 ID:qkI9dU/Y
女性は無料で遊べる!逢える!恋愛出きる!
もう寂しい生活とは縁を切ろうね!
愛して 愛される そんな出会いがなきゃ
生きてる 意味がない!
http://www.sweet.st
909動画直リン:03/05/10 22:25 ID:NuXhkOeV
910名無しさん@3周年:03/05/11 18:02 ID:6MQrf2Zh
>最新のFPGAだと何MHzぐらいで動くと世間の相場なのよ?例えば16ビットx16ビットの乗算回路では?

よく知らん。ヒマだったらFPGA会社からツールやライブラリを
ダウンロードして試してちょうだい。
でもこうゆうのってあんまり意味ないよ。
たとえ500MHzで動いても、周りがついていけない。
たとえ20MHzでしか動かなくても、CPUコアやDDR使うなら
それに合わせてバスは50、66、100、133MHzとかに
するだろうから、133MHz7サイクル乗算器とかになるでしょ。
911名無しさん@3周年:03/05/12 01:18 ID:pgzDguhR
>905
今時、200MHz程度ならRTLから合成できる組み込みCPUもある。
ま、俺は200MHzはまだやったことないからちょっとは悩むと思うが、ASIC内なら
そう難しくないと思う。
外に出す場合は最近盛り上がっているように大変だけど、基板屋とちゃんと相談
すれば良いこと。仕事が細分化されてるから、自分のとこだけできれば良いとい
うことでは最終的に良いものはできない。
ただ、これはHDLとは関係無い話だけど。
だんだんスレ違いになってるような・・・
912名無しさん@3周年:03/05/12 03:43 ID:HFcOwNTP
>133MHz7サイクル乗算器とかになるでしょ。
なんで7サイクル?
どうせなら1サイクルを目指してもいいじゃん。
何もPCのペリフェラルに使うことを前提にすることもないと思うんだけどね。
913名無しさん@3周年:03/05/12 06:16 ID:eRKdkDZP
>>911
相談だけでは基板上で、200Mは難しいぞ。
実際現場に乗り込んでSimの結果をどう反映させるか等の
努力が必要。

この辺りが解ってない奴は自分の無能を基板屋の所為に
したりするんだろうが。
914名無しさん@3周年:03/05/12 07:25 ID:PfExja+C
>913
そこら辺の細かいニュアンスは察してくれ。一々細かいことまで書く気はしない。
でも、補足してくれてありがd。
ASICのロジックしか経験してない奴って、そこら辺のこと全然知らないことがある
から、そんな奴がリーダーになって石作るとえらいことになる。一度、「俺は動か
ない石を1年かけて作るのか?」と真剣に悩んだことがあるw
915名無しさん@3周年:03/05/13 23:09 ID:YDkUdJsD
非常に初歩的な質問で申し訳ありませんが入出力端子inoutを持ったmoduleの
テストフィクスチャを書こうとしているのですが、なんと定義したらよいのかわかりません。
regでもないし、wireにしたら文法チェックは通るのですが…。
916名無しさん@3周年:03/05/13 23:30 ID:wyghNHop
>>915
signal でいいですよ。
917名無しさん@3周年:03/05/14 00:03 ID:8mmAjebp
>>912
910はPCペリフェラルとは言ってないぞ。PCコアだからFPGAの上にPCを乗せる話だね。
それで外部にDDR使うならそことのI/Fは133MHzになると言ってる。

まあ乗算器つきのPCシステムオンチップということになるのだろうけど、500MHzで乗算器
動かしても、PCコアが500MHzで走ってない限り意味無いのかも。500MHzはFPGAではまだきつそうだよね?
もし走るとしたら、PCコアの命令拡張という意味では有意義かと。まあ、DSPに近いかね。

コアがI/Fの倍数クロックで動くCPUなんてあたりまえの世界だよね。
あ、結局912と同じ結論か?すまんね。
918915:03/05/14 14:56 ID:Ev2pde1q
>>916
すみません。verilogで書いているのですがsignal宣言はVHDLだけのものなんですよね?(自信なし)
919名無しさん@3周年:03/05/14 16:26 ID:M1knrdCz
>>918
おまいさんのやりたいことがわからん。

質問を的確に書くのも、技術者に必要な素養だぞ。
920名無しさん@3周年:03/05/15 00:54 ID:YCVWO13e
>>915
wireでとおるのなら、テストフィクスチャはそのwireをドライブすれば良いじゃん。
inout使うのなら普通は渡来ステートバスを表現しているのだろうから、
例えばbusifを使ったら?
921名無しさん@3周年:03/05/19 04:41 ID:Wkq3uXML
このスレさぁ。盛り上がるときは
ワッとくるけど、すぐ沈静化しちゃうんだよなぁ。


ネタ振りだけど・・・
ISE5.2i だけど。サービスパックどころかIPアップデータってのが出てるけど・・・
これ大バグバージョンってことなのけ?
922名無しさん@3周年:03/05/19 12:19 ID:NxBMA/cv
HDLでなくて申し訳ないんですが、2つのアナログ値(電圧)を大小比較して
1bitの出力を出す(コンパレータ?)回路で有名どころがあったら名前とか
ご教授いただけないでしょうか・・・。
923名無しさん@3周年:03/05/19 18:03 ID:j6geNrES
>>922
つっか、コンパレータだよな。
オペアンプでもOK? LM358とか?
PICマイコンのアナログコンパレータ搭載機でもOKだっ!
924名無しさん@3周年:03/05/19 18:07 ID:hq0rqus+
>>922
有名どころのコンパレータのデータシートを読めば回路図載ってるよ
CQ出版からでてる規格表しらべてごらん
925名無しさん@3周年:03/05/19 21:10 ID:NxBMA/cv
>>923-924
ありがとうございます。
CMOSでこのような回路を組むにはと色々さがしたのですが。
とりあえず、お二方から頂いた情報を調べてみます。
926名無しさん@3周年:03/05/19 21:37 ID:W/S5mA08
FPGAの場合、Vrefを使う事も出来るよ。>コンパレータ
927名無しさん@3周年:03/05/20 03:50 ID:NXwI49oq
量産品に載せるならそれこそ値段考えてちゃんと設計する必要があるけど。
試作やジグでいいなら>>923がいうようにPICでやるのがてっとりばやいんじゃないの?
でだんだんアナログ回路例なんてのを忘れていく・・・
928名無しさん@3周年:03/05/20 10:17 ID:NY2Giev0
>>927
PICの方がいいか?どう考えてもコンパレータの方がてっとりばやいが。
PICだったらプログラム(というか、設定だけだけど)せにゃならんし。
(後で、やっぱり2ビットパラレルで出したいという変更をせにゃならん
 なんて事にならないかぎり)
929名無しさん@3周年:03/05/23 03:16 ID:EYv/w/22
やっぱりオペアンでしょ。暇ならディスクリートで組んでみるってのはど?
930名無しさん@3周年:03/05/28 03:36 ID:PFsK3hgM
そろそろ新スレたててくれ
931山崎渉:03/05/28 15:01 ID:/6YB7YdC
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
932名無しさん@3周年:03/05/30 20:46 ID:OlxqXjk/
VHDLで書いたのを回路図にできるフリーのソフトってないですか?


933932:03/05/30 21:58 ID:OlxqXjk/
ごめんなさい
Xilinxでできました。

けど、CADで読み込めない…
934名無しさん@3周年:03/05/31 00:46 ID:qQl6bioW
>933
フリーなの?
935名無しさん@3周年:03/05/31 01:33 ID:30nXwoLf
>>934
Webpackの標準機能でできるよ
936名無しさん@3周年:03/05/31 02:19 ID:gWanLwnO
あなたが探してる話題あれはこれでしょ♪
http://angelers.free-city.net/page003.html
937名無しさん@3周年:03/06/06 21:56 ID:NAaMqylW
signal INPUT : std_logic_vector(3 downto 0);
signal TMP : std_logic;
begin

INPUT <= J & K & CK & R;
process ( INPUT ) begin
case INPUT is
when "0111" => TMP <= '0';
when "1011" => TMP <= '1';
when "1111" => TMP <= not TMP;
when "0110" => TMP <= '0';
when "1010" => TMP <= '0';
when "1110" => TMP <= '0';
when "0010" => TMP <= '0';
when others => null;
end case;
end process;
がインプリメントデザインできません。
文法エラーは出ないのですが。
どこを帰ればいいのでしょうか?
938名無しさん@3周年:03/06/07 02:52 ID:39z6mARB
>937
VHDLは久しく見てないので、違ったらスマソ。

> when "1111" => TMP <= not TMP;
これ、アリなの?

processの条件が、
> INPUT <= J & K & CK & R;
> process ( INPUT ) begin
だと、単なるセレクタイメージなんですが…
939938:03/06/07 02:56 ID:39z6mARB
というか、もしかして、F/Fを書こうとしている?
だったら、そこで、caseを使う事自体が間違い…

>937の場合
> どこを帰ればいいのでしょうか?
という答えに、「教科書に帰れ」となってしまうかも。

とりあえず、どんな回路を書きたいの?
940名無しさん@3周年:03/06/07 14:17 ID:wGZF3Fk3
>937
意図する動作になるかはわからないけど、とりあえず
process ( INPUT,TMP ) begin
としてみたら。
941Leliel(れりえる):03/06/07 15:01 ID:oiP1nr77
>>937さんへ
CK=Clockの事だと思うのですが、FFであればCKのエッジを取り込みタイミングにするような
回路を記述するのではないでしょうか?
942名無しさん@3周年:03/06/07 15:03 ID:lGXqlKqW
>>940
基本的に動作のためのキーだから入力だけで回路を
動かす意図なら、TMPをセンシティビティーリストに
入れる必要は無いと思うが。
943名無しさん@3周年:03/06/07 17:09 ID:QWIPkPbL
なんか知らない間に質が落ちてるな。

>>937は、もう一度教科書を読み直したほうがいい。
944名無しさん@3周年:03/06/07 18:21 ID:wGZF3Fk3
>942[
この行があったので、、
 when "1111" => TMP <= not TMP;
センシビティリストは合成時無視されるので(デザインコンパイラだけの話なのかな?)、
RTLでの動作と合成後の動作が異ならないよう、クロック同期以外のプロセス文の場合
すべての入力があったほうがいいのでは?
945名無しさん@3周年:03/06/07 18:26 ID:wGZF3Fk3
補足。
RTLと合成後で結果が違う例。
process(C)begin
 A<=C;
 B<=A
end;

RTLと合成後で結果が同じ例。
process(A,C)begin
 A<=C;
 B<=A
end;
946938:03/06/07 22:13 ID:39z6mARB
>944

言っている事は、正しいが
> RTLでの動作と合成後の動作が異ならないよう
コレは異なる時点でダメでしょう。
(説明が自分でできるレベルならいいけど)

で、>937
セレクタを書きたいのなら、リストにTMPを加えれば良いのではないかと。

どんな回路を作りたいのか、それの動作の「きっかけ」となる信号は何じゃ?
というんを意識すれば宜しいのではないかと…
#これ学生なら許すけど社会人ならステだな。調べ方が間違っているから(w
947名無しさん@3周年:03/06/07 23:38 ID:IH7YWypa
>>946
セレクタを書きたいのなら
>when "1111" => TMP <= not TMP;
が全然駄目だよね。組み合わせ回路がループになるんですが。
948938:03/06/08 00:01 ID:QpYSQEdS
>947
あ、そらそうだ…TMPiとか入力を変えて(ry

というように、文法はOKでも合成できないケースは多々あります。 >937
#そら、テストベンチを書くためには合成の制約は関係ないですから。
ですので「どんな回路を書きたいか?」を意識して書く事が大切です。
#合成ツールは四次元ポケットではありません。そうなら嬉しいけど(w
949名無しさん@3周年:03/06/11 16:41 ID:7yXHKlNP
あの、ちょっとお聞きしたいのですが・・・、
PCのマザーボード等に乗っているCPU,ブリッジLSIなどは、
(フルカスタムLSIというのでしょうか。間違ってたらすいません)
HDLで書いてそれを合成して、レイアウトして、Mebesフォーマットに変換してマスク製造するのですか?
(大事なSIMを省いてしまいましたがスマソデス)
950名無しさん@3周年:03/06/12 17:45 ID:oV0RTRm8
Verilogでシフトレジスタをすっきり&格好良く記述するにはどうすれば良いでしょうか?
いつもは↓なんですが、なんかスッキリこない・・・
ループで書いても記述しても良いのですが、
ひと目みてシフトレジスタだと解らないし。

dbuf[0] <= in;
dbuf[1] <= dbuf[0];
dbuf[2]<= dbuf[1];
dbuf[3]<= dbuf[2];
dbuf[4]<= dbuf[3];
dbuf[5]<= dbuf[4];
dbuf[6]<= dbuf[5];
dbuf[7]<= dbuf[6];
951名無しさん@3周年:03/06/12 20:05 ID:MLPr7DDV
シフトレジスタはこう書くと一番シンプルでは
dbuf[0] <= in;
dbuf[7:1] <= dbuf[6:0];
952名無しさん@3周年:03/06/12 22:02 ID:Uf4rDYro
>>951
いや、ループで書いても「ひとめで分からない」人だから、却下。

ひとめでわかるように、

                                             dbuf[0] <= in;
                                      dbuf[1] <= dbuf[0];
                                dbuf[2]<= dbuf[1];
                          dbuf[3]<= dbuf[2];
                    dbuf[4]<= dbuf[3];
              dbuf[5]<= dbuf[4];
       dbuf[6]<= dbuf[5];
dbuf[7]<= dbuf[6];


と、これくらいにしないとだめ。
953938:03/06/13 00:45 ID:2fx1PNlr
他人のソースとかって探したりしないの > 950

dbuf[7:0] <= {dbuf[6,0],in}

とかって、普通に見るような気がするが…
#dbuf7,dbuf6とかって名前でreg宣言されるとアレですが。
954名無しさん@3周年:03/06/13 20:07 ID:ciGk+xL9
Peak VHDLお試し版使ってみたのですが、compileで
Simulation has not been enable.Please verify that you have registered your software.
とでてできません。ガイドで指定されたように1ファイル50セミコロン以内に抑えて、階層も上位側をテストベンチにしたのですが・・・
ちなみに添付されてるexampleフォルダの中のファイルもコンパイルしても同じように出ます。
本によると、添付されてる例はシミュレーションできるようなことが書いてあったのですが。どうなっちゃてるんでしょう。
おねがいしますゥ(´Д`;;)
955名無しさん@3周年:03/06/13 23:06 ID:n/XjX1vI
>953
ダメですよ。FFを介していれば別ですが、、
FFを介さない下記がどんな回路になるか考えてください。
A <= not A;
956938:03/06/14 01:37 ID:dfySxD4N
>955
ん?
wire A
で、宣言していて、これって書けるの?

暗黙でreg [7:0] dbufと思っていたが。









あ、釣られたか(;_;)
957954:03/06/15 11:54 ID:tMHHtGq9
他のHDL関係のスレで「MEなんか無かったことにしておけ」
というのを見たんですが、も;..、もしかしてMEだと
>>954のPeak VHDLお試し版は動かなかったりしますか?
あぁ、全然進まない・・・。よろしくです。(´Д`;;)
958名無しさん@3周年:03/06/15 19:56 ID:RrahMB9j
>>957
お試し版の説明に何か書いていないか?

ちなみにMeは色々ごちゃごちゃシステムにくっつけているせいでリソースがうんこ少ない
959名無しさん@3周年
>>958
当方、メモリ128MBite、OSはMEなのですが、
Peak VHDLのプロジェクトFileと.hdlファイル(RTLとテストベンチ)立ち上げたときの
システムリソース見てみたのですが、
システムリソース 残り 57%
Userリソース   残り 57%
GDIリソース   残り 85%
でした。足りないですか?