HDLの処理系も、それを実際に動かすシミュレータ・評価基板も、
安価で入手できるようになってきました。
このスレが目に入ったお嬢さん! HDLで何か作って遊んでみませんか。
日曜工作のHDL書き、学生さん、プロの方、主婦の方、カキコお待ちしております。
関連情報は >2-10 あたり。
入れ食いキーワード
・Nios、MicroBraze
・Artix-7、Kintex-7、Virtex-7、ハードコアCPU内蔵 Zynq-7000
前スレ (直近スレのみ)
2012/11/03〜 【Verilog】 記述言語で論理設計Project12 【VHDL】
http://uni.2ch.net/test/read.cgi/denki/1351913871/
2011/12/07〜 Project11
http://uni.2ch.net/test/read.cgi/denki/1323187568/
2010/09/17〜 Project10
http://kamome.2ch.net/test/read.cgi/denki/1284652343/
【Verilog】 記述言語で論理設計Project13 【VHDL】
レス数が900を超えています。1000を超えると表示できなくなるよ。
2014/03/06(木) 16:37:02.77ID:sOpHVFq3
834774ワット発電中さん
2016/10/10(月) 10:51:47.37ID:6iMx+As8835774ワット発電中さん
2016/10/10(月) 11:22:58.52ID:Q6I3vfg+ >>826
いい加減なこと書くのは良くないよ。
いい加減なこと書くのは良くないよ。
836774ワット発電中さん
2016/10/10(月) 11:44:56.86ID:MzKpf8a7 古いDesign Compiler の制約を引きずった書き方してきたので
最近の記述方法が知りたいなあ。
論理合成のために、こんな記述してた。
count = count - 1'b1;
A = A + B + 1'b1;
最近の記述方法が知りたいなあ。
論理合成のために、こんな記述してた。
count = count - 1'b1;
A = A + B + 1'b1;
837774ワット発電中さん
2016/10/10(月) 12:41:26.14ID:yZ3oZRGD >>833
ISEはそうなの? Primeしか知らない。Primeは問題なし。
ISEはそうなの? Primeしか知らない。Primeは問題なし。
838774ワット発電中さん
2016/10/10(月) 12:42:02.60ID:yZ3oZRGD Verilogのテクとして
ifロジック記述ではbegin endは使わない。
どうしても必要な大きなロジックの場合はfunctionにする。
したがって大きな組み合わせ回路はすべてfunctionで書く。
★alwaysを使った組み合わせ回路は書かない。
このようにするとregとwireが意味的に混在することがない。
これはverilog文法の混乱している箇所だから、禁則にする。
<=はレジスタライト専用
=はアサイン、組み合わせ回路専用
最近verilogを始めたばかりだが、驚くほど間違った通説があるようだ。
言語もひどいが教科書が酷い。間違いが多い。
alwaysで組み合わせを書くときにはregで定義するとか、何を考えて
コンパイラを作ったのか理解に苦しむ。
ifロジック記述ではbegin endは使わない。
どうしても必要な大きなロジックの場合はfunctionにする。
したがって大きな組み合わせ回路はすべてfunctionで書く。
★alwaysを使った組み合わせ回路は書かない。
このようにするとregとwireが意味的に混在することがない。
これはverilog文法の混乱している箇所だから、禁則にする。
<=はレジスタライト専用
=はアサイン、組み合わせ回路専用
最近verilogを始めたばかりだが、驚くほど間違った通説があるようだ。
言語もひどいが教科書が酷い。間違いが多い。
alwaysで組み合わせを書くときにはregで定義するとか、何を考えて
コンパイラを作ったのか理解に苦しむ。
839774ワット発電中さん
2016/10/10(月) 12:48:20.08ID:Qmw2RVOM 言語仕様で出来上がりが確定しちゃうより
中の人に自由に頑張って貰って、よりラッチやら何やら減らして貰った方が良いじゃん
中の人に自由に頑張って貰って、よりラッチやら何やら減らして貰った方が良いじゃん
840774ワット発電中さん
2016/10/10(月) 13:15:46.21ID:MzKpf8a7 >>838
言語がひどいとならVHDLを使った方が良いと思うよ。
言語がひどいとならVHDLを使った方が良いと思うよ。
841774ワット発電中さん
2016/10/10(月) 14:18:00.41ID:eSYzpTpi842774ワット発電中さん
2016/10/10(月) 14:24:04.65ID:Q6I3vfg+843774ワット発電中さん
2016/10/10(月) 14:56:07.73ID:zcGo6JRy >>838
System Verilogを使うといいぞ。
System Verilogを使うといいぞ。
844774ワット発電中さん
2016/10/10(月) 18:36:10.58ID:PcSZfyN6 838は自分ルールとしては概ね合理性あるように思うけど
if文でbegin〜end使うなっていうのはちょっと無理があるような
if文でbegin〜end使うなっていうのはちょっと無理があるような
845774ワット発電中さん
2016/10/10(月) 19:08:22.79ID:eSYzpTpi if文でbegin〜end使うなっていうのは、マイコンのアセンブラみたい。
次の行を実効するか、1つ飛ばした行を実効するか、みたいな。
実効 → 実行のまちがいです。
次の行を実効するか、1つ飛ばした行を実効するか、みたいな。
実効 → 実行のまちがいです。
846774ワット発電中さん
2016/10/10(月) 19:19:45.06ID:6IT8b84b847774ワット発電中さん
2016/10/10(月) 19:44:06.11ID:DoI5RKN2848774ワット発電中さん
2016/10/11(火) 04:42:00.08ID:03S+S6sS >begin endは使わない
わいは逆やな。if分岐では必ずbegin endで括る。
case文では可読性重視で削ってるけど。
わいは逆やな。if分岐では必ずbegin endで括る。
case文では可読性重視で削ってるけど。
849774ワット発電中さん
2016/10/11(火) 11:50:45.12ID:rkzrhgEy >>842
まあ例外もあるからどうしてもってときは許可する。
しかしこれのほうがいい。4行が2行だし、紙が節約できる。
enable <= (x == a);
data <= (x == a) ? hoge : data;
always もbeginendはなるべく入れない。
モジュールのinput,outputは2度書きしない。
module oneshot(input clk, reset, pls, output pr_q);
reg srff; wire cy; reg [3:0] count_q;
assign pr_q = srff;
assign cy = (count_q == 4'd10);
always @(posedge clk or posedge reset)
if (reset)
srff <= 0;
else if (pls | cy)
srff <= pls & (!cy);
always @(posedge clk or posedge reset)
if (reset)
count_q <= 0;
else if (srff)
count_q <= cy ? 0 : count_q + 1;
endmodule
まあ例外もあるからどうしてもってときは許可する。
しかしこれのほうがいい。4行が2行だし、紙が節約できる。
enable <= (x == a);
data <= (x == a) ? hoge : data;
always もbeginendはなるべく入れない。
モジュールのinput,outputは2度書きしない。
module oneshot(input clk, reset, pls, output pr_q);
reg srff; wire cy; reg [3:0] count_q;
assign pr_q = srff;
assign cy = (count_q == 4'd10);
always @(posedge clk or posedge reset)
if (reset)
srff <= 0;
else if (pls | cy)
srff <= pls & (!cy);
always @(posedge clk or posedge reset)
if (reset)
count_q <= 0;
else if (srff)
count_q <= cy ? 0 : count_q + 1;
endmodule
850774ワット発電中さん
2016/10/11(火) 12:06:37.08ID:rkzrhgEy >>841
798はちょっと意味わからんのだけど、ワンショット回路なら↑ね。
798はちょっと意味わからんのだけど、ワンショット回路なら↑ね。
851774ワット発電中さん
2016/10/11(火) 12:11:14.96ID:rkzrhgEy なんで非同期リセットをいれるかというとRTLがきれいになる。非同期リセットを
入れないと、プリミティブのクロックイネーブルを使わない回路になりやすい。
ある寺の場合だけど。
しかたないので非同期リセットを入れてる。W
入れないと、プリミティブのクロックイネーブルを使わない回路になりやすい。
ある寺の場合だけど。
しかたないので非同期リセットを入れてる。W
852774ワット発電中さん
2016/10/11(火) 12:33:52.34ID:rkzrhgEy >わいは逆やな。if分岐では必ずbegin endで括る。
いろいろ試してみたがbegin endは煮ても焼いても食えない。
悪いことはいわん、とにかく削除すべし。
いろいろ試してみたがbegin endは煮ても焼いても食えない。
悪いことはいわん、とにかく削除すべし。
853774ワット発電中さん
2016/10/11(火) 12:40:29.15ID:uySzsvl5 >>849
> if(reset)
> srff<=0;
もう1行増えたらどうするの? begin end 使うのですよね?
if(reset)
srff<=0;
dff<=1;
> if(reset)
> srff<=0;
もう1行増えたらどうするの? begin end 使うのですよね?
if(reset)
srff<=0;
dff<=1;
854774ワット発電中さん
2016/10/11(火) 14:05:11.72ID:rkzrhgEy if(reset)
{srff,dff}<= {0,1};
上の奴もこういう書き方が望ましい。
if(x==A)
{enable, data} <= {1, hoge};
{srff,dff}<= {0,1};
上の奴もこういう書き方が望ましい。
if(x==A)
{enable, data} <= {1, hoge};
855774ワット発電中さん
2016/10/11(火) 14:13:45.21ID:rkzrhgEy >もう1行増えたらどうするの? begin end 使うのですよね?
300ページある教科書をみたが、一か所も必要ないな。
それから
独自cpu開発って本400ページあるのをみたがパイプライン処理のところ
1箇所くらいやな。
あとはbegin end 削ったらずいぶん簡単なソースコードになる。
コードが激減する。
300ページある教科書をみたが、一か所も必要ないな。
それから
独自cpu開発って本400ページあるのをみたがパイプライン処理のところ
1箇所くらいやな。
あとはbegin end 削ったらずいぶん簡単なソースコードになる。
コードが激減する。
856774ワット発電中さん
2016/10/11(火) 14:45:05.76ID:rkzrhgEy だから複雑な組み合わせが発生する可能性はもちろんある。その場合はfunction
で書く。
しかし普通の制御はbegin endなんて必要ない。必要な時は下手な回路やと考えて
間違いない。
教科書に一か所もないというのは嘘で、必要なところは一か所もないということ。
例えばシリパラ変換
reg [7:0] ps;
begin
ps <= ps <<1;
ps[0] <= si;
end
こんな風に教科書にはかいてあるが,こんな書き方はまずい。
正しくは
ps <= {ps[6:0] << 1, si};
こうすると意味がはっきりする。
で書く。
しかし普通の制御はbegin endなんて必要ない。必要な時は下手な回路やと考えて
間違いない。
教科書に一か所もないというのは嘘で、必要なところは一か所もないということ。
例えばシリパラ変換
reg [7:0] ps;
begin
ps <= ps <<1;
ps[0] <= si;
end
こんな風に教科書にはかいてあるが,こんな書き方はまずい。
正しくは
ps <= {ps[6:0] << 1, si};
こうすると意味がはっきりする。
857774ワット発電中さん
2016/10/11(火) 14:47:35.71ID:rkzrhgEy もっと分かり易くかくとすると
{ps[7:1],ps[0]} <= {ps[6:0] << 1, si};
{ps[7:1],ps[0]} <= {ps[6:0] << 1, si};
858774ワット発電中さん
2016/10/11(火) 14:55:13.78ID:03S+S6sS > {srff,dff}<= {0,1};
こういうの見ただけで儂の頭がバグりそうになる。
こういうの見ただけで儂の頭がバグりそうになる。
859774ワット発電中さん
2016/10/11(火) 15:18:54.51ID:rkzrhgEy >858
慣れよ。
ただし、その場合にはbit幅を指定しないとエラーになる。
正しくは
{srff, dff} <= {1'd0, 1'd1};
ちょっと見づらいな。
{srff, dff} <= {low, high};
これなら見やすいが,,,,
慣れよ。
ただし、その場合にはbit幅を指定しないとエラーになる。
正しくは
{srff, dff} <= {1'd0, 1'd1};
ちょっと見づらいな。
{srff, dff} <= {low, high};
これなら見やすいが,,,,
860774ワット発電中さん
2016/10/11(火) 15:24:17.83ID:03S+S6sS 慣れでエラー仕込むなよw
861774ワット発電中さん
2016/10/11(火) 15:37:36.54ID:rkzrhgEy 俺もまだ慣れてないからな。W
862774ワット発電中さん
2016/10/11(火) 15:39:30.59ID:03S+S6sS >ps <= {ps[6:0] << 1, si};
これも慣れ?
これも慣れ?
863774ワット発電中さん
2016/10/11(火) 15:45:00.29ID:MqMlpS1H864774ワット発電中さん
2016/10/11(火) 16:10:19.48ID:03S+S6sS pythonぽいという意味では今風。
そういう書き方にカブレて言語批判を繰り広げるも、
実力が伴わずバグを続出。
そういう書き方にカブレて言語批判を繰り広げるも、
実力が伴わずバグを続出。
865774ワット発電中さん
2016/10/11(火) 17:35:01.45ID:b2rTYmZ5 >>856
教科書のは、合成できんやろ。
教科書のは、合成できんやろ。
866774ワット発電中さん
2016/10/11(火) 18:01:09.86ID:uySzsvl5 カッコ内に○×をつけてください
( ) begin end を使わないほうが、コンパイル時間が速い
( ) begin end を使う ほうが、コンパイル時間が速い
( ) begin end を使っても使わなくても、コンパイル時間は変わらない
( ) begin end を使わないほうが、FFの使用量が少ない
( ) begin end を使う ほうが、FFの使用量が少ない
( ) begin end を使っても使わなくても、FFの使用量は変わらない
( ) begin end を使わないほうが、コンパイル時間が速い
( ) begin end を使う ほうが、コンパイル時間が速い
( ) begin end を使っても使わなくても、コンパイル時間は変わらない
( ) begin end を使わないほうが、FFの使用量が少ない
( ) begin end を使う ほうが、FFの使用量が少ない
( ) begin end を使っても使わなくても、FFの使用量は変わらない
867774ワット発電中さん
2016/10/11(火) 18:29:13.69ID:gdPhewZD あーいるいるPython風に書く人
868774ワット発電中さん
2016/10/11(火) 19:10:50.51ID:rkzrhgEy Python一目見たが好きになれないな。W
どこが似てるのかなーー?
begin endは大きなゴミ。まずは大きなゴミは履いて捨てる。
ゴミの代わりに?とリストを積極的に使うだけだものな。
assign decode = !ena ? 4'b0000 :
sel == 0 ? 4'b0001 :
sel == 1 ? 4'b0010 :
sel == 2 ? 4'b0100 :
sel == 3 ? 4'b1000 :
4'bxxxx ;
?のこんな使い方はCライクだと思うが、、、どこがPython?
begin
ps <= ps <<1;
ps[0] <= si;
end
こんなんより
ps <= { ps[6:0] << 1, si };
このほうが昔も今もセンスは上だな
どこが似てるのかなーー?
begin endは大きなゴミ。まずは大きなゴミは履いて捨てる。
ゴミの代わりに?とリストを積極的に使うだけだものな。
assign decode = !ena ? 4'b0000 :
sel == 0 ? 4'b0001 :
sel == 1 ? 4'b0010 :
sel == 2 ? 4'b0100 :
sel == 3 ? 4'b1000 :
4'bxxxx ;
?のこんな使い方はCライクだと思うが、、、どこがPython?
begin
ps <= ps <<1;
ps[0] <= si;
end
こんなんより
ps <= { ps[6:0] << 1, si };
このほうが昔も今もセンスは上だな
869774ワット発電中さん
2016/10/11(火) 20:35:41.71ID:03S+S6sS × ps <= { ps[6:0] << 1, si };
○ ps <= { ps[6:0], si };
○ ps <= { ps[6:0], si };
870774ワット発電中さん
2016/10/11(火) 22:16:06.01ID:l9D3Os+V ・マイクロ波の危険性 法の外にいる御用学者達
https://www.youtube.com/watch?v=EJluXfJQCuk
・元MI5部員Dr. Barrie Trowerの語る電磁波兵器@
https://www.youtube.com/watch?v=NRoN2Fsci3o
・ニック・ベグジェッチ博士 HAARP 機密科学ハイテク洗脳@
https://www.youtube.com/watch?v=Kpf2iKOtSfg
動画「陰謀論 脳侵略者」
https://vimeo.com/119665215
https://vimeo.com/118485020
https://vimeo.com/119029616
それぞれの動画の加害装置の電磁波の出力が「小さい」と言っている理由について
レーザーに例えると、60Wでプラズマ核融合炉のプラズマを発生させるためにつかっているのに対して、家庭では電球が60W
このギャップに気付かなければならない
誘導放出され、増幅されたマイクロ波を計測するのではなく、メーザーの出力の表示の数字が強さの目安
だから、動画のインタビューに出てくる人達は、「弱い」とか「小さい」という単語を使っていると思われ
https://www.youtube.com/watch?v=EJluXfJQCuk
・元MI5部員Dr. Barrie Trowerの語る電磁波兵器@
https://www.youtube.com/watch?v=NRoN2Fsci3o
・ニック・ベグジェッチ博士 HAARP 機密科学ハイテク洗脳@
https://www.youtube.com/watch?v=Kpf2iKOtSfg
動画「陰謀論 脳侵略者」
https://vimeo.com/119665215
https://vimeo.com/118485020
https://vimeo.com/119029616
それぞれの動画の加害装置の電磁波の出力が「小さい」と言っている理由について
レーザーに例えると、60Wでプラズマ核融合炉のプラズマを発生させるためにつかっているのに対して、家庭では電球が60W
このギャップに気付かなければならない
誘導放出され、増幅されたマイクロ波を計測するのではなく、メーザーの出力の表示の数字が強さの目安
だから、動画のインタビューに出てくる人達は、「弱い」とか「小さい」という単語を使っていると思われ
871774ワット発電中さん
2016/10/11(火) 23:12:53.94ID:uySzsvl5 assign decode = !ena ? 4'b0000 :
sel == 0 ? 4'b0001 :
sel == 1 ? 4'b0010 :
sel == 2 ? 4'b0100 :
sel == 3 ? 4'b1000 :
バスのアドレスデコーダで、こんな書き方していました
sel == 0 ? 4'b0001 :
sel == 1 ? 4'b0010 :
sel == 2 ? 4'b0100 :
sel == 3 ? 4'b1000 :
バスのアドレスデコーダで、こんな書き方していました
872774ワット発電中さん
2016/10/11(火) 23:39:53.72ID:DM05OVZL >>849
紙を節約したいならalwaysもifも改行せずに1行にしたほうがいいんじゃないの?
紙を節約したいならalwaysもifも改行せずに1行にしたほうがいいんじゃないの?
873774ワット発電中さん
2016/10/12(水) 00:01:32.75ID:vHLBvbps >>864
登場から25年経ってる言語が今風なのかね
登場から25年経ってる言語が今風なのかね
874774ワット発電中さん
2016/10/12(水) 01:23:35.50ID:KzFQnxH+ >○ ps <= { ps[6:0], si };
そうか。こうだ!!!
めっちゃ美しい。
ps <= ps <<1;
こんな書き方では最下位ビットはどうなるのかわからん。
<<の演算子はいらないな。どう考えても使い道がない。ゴミ決定。
ifのbegin end,<<,>> 使用禁止
そうか。こうだ!!!
めっちゃ美しい。
ps <= ps <<1;
こんな書き方では最下位ビットはどうなるのかわからん。
<<の演算子はいらないな。どう考えても使い道がない。ゴミ決定。
ifのbegin end,<<,>> 使用禁止
875774ワット発電中さん
2016/10/12(水) 01:24:05.70ID:KzFQnxH+ >紙を節約したいならalwaysもifも改行せずに1行にしたほうがいいんじゃないの?
alwaysを1行にするのはダメ。
ifを1行にするのはありだとは思う。しかし
always @(posedge clk or posedge reset)
if (reset) //DFFの非同期リセット
count_q <= 0;
else if (srff) //DFFのクロックエネーブル
count_q <= cy ? 0 : count_q + 1; //DFFのデータ
RTLをみると上は
count[*].clr =(reset) //DFFの非同期リセット
count[*].ena =(srff) //DFFのクロックエネーブル
count[*].d = cy ? 0 : count[*].q + 1; //DFFのデータ
のように合成される。
ifはenableを意識した書き方だな。
alwaysを1行にするのはダメ。
ifを1行にするのはありだとは思う。しかし
always @(posedge clk or posedge reset)
if (reset) //DFFの非同期リセット
count_q <= 0;
else if (srff) //DFFのクロックエネーブル
count_q <= cy ? 0 : count_q + 1; //DFFのデータ
RTLをみると上は
count[*].clr =(reset) //DFFの非同期リセット
count[*].ena =(srff) //DFFのクロックエネーブル
count[*].d = cy ? 0 : count[*].q + 1; //DFFのデータ
のように合成される。
ifはenableを意識した書き方だな。
876774ワット発電中さん
2016/10/12(水) 06:08:52.13ID:APrV9kJg877774ワット発電中さん
2016/10/12(水) 06:10:37.09ID:C5En5uqG おまえら、VHDL使え。Verilogの緩い文法議論が、くそうぜえ。使ってないから、そういう議論が頭悪いことに気づかないのか
878774ワット発電中さん
2016/10/12(水) 06:13:42.62ID:C5En5uqG if文でbegin〜end は必ず使え<VHDL上がりの意見。
879774ワット発電中さん
2016/10/12(水) 06:36:12.10ID:Z8kt2vjy880774ワット発電中さん
2016/10/12(水) 07:04:43.82ID:C5En5uqG >>879
ニッポンから技術者が消えて、馬鹿な豚どもになりつつあるんだよ。だから仕方が無い。
ニッポンから技術者が消えて、馬鹿な豚どもになりつつあるんだよ。だから仕方が無い。
881774ワット発電中さん
2016/10/12(水) 07:08:13.45ID:C5En5uqG >>874
ps[7:0] <= { ps[6:0], si };
ps(7 downto 0) <= (ps(6 downto 0) & si );
じゃないとだめ。
ああ、VHDLしばらく触らせてもらえないから忘れてきた。
つうか、大手半導体レイアウト会社でも、VHDLをどうして使うかってわかんないんだな。しっかり、符号演算のためって書いてあげたのに。
ニッポンやバイヨ。
ps[7:0] <= { ps[6:0], si };
ps(7 downto 0) <= (ps(6 downto 0) & si );
じゃないとだめ。
ああ、VHDLしばらく触らせてもらえないから忘れてきた。
つうか、大手半導体レイアウト会社でも、VHDLをどうして使うかってわかんないんだな。しっかり、符号演算のためって書いてあげたのに。
ニッポンやバイヨ。
882774ワット発電中さん
2016/10/12(水) 07:26:02.86ID:GrfPE86B >しばらく触らせてもらえない
やはりVHDLは廃れますか。
verilogとVHDLの中間ぐらいでいいんだが、
System-verilogに向かうのかねえ。
やはりVHDLは廃れますか。
verilogとVHDLの中間ぐらいでいいんだが、
System-verilogに向かうのかねえ。
883774ワット発電中さん
2016/10/12(水) 07:35:05.20ID:C5En5uqG >>882
業種による。
アセンブラは廃れるけど、スーパーマリオの重力計算の微分方程式はすごいよ。
最近、オブジェクト指向の「ハードわかんね」というソフトウエアの技術者が、FPGAあたりをかじってマンセーとか、
ニコニコ本社で、「どうだオレサマすごいだろ」とかいうプレゼンをみせられたりして、つまんないというか、めんどくさい。
ぐらいに、廃れはしないと思うよ。
廃れていると思ったら、目線が狭いんだよ
業種による。
アセンブラは廃れるけど、スーパーマリオの重力計算の微分方程式はすごいよ。
最近、オブジェクト指向の「ハードわかんね」というソフトウエアの技術者が、FPGAあたりをかじってマンセーとか、
ニコニコ本社で、「どうだオレサマすごいだろ」とかいうプレゼンをみせられたりして、つまんないというか、めんどくさい。
ぐらいに、廃れはしないと思うよ。
廃れていると思ったら、目線が狭いんだよ
884774ワット発電中さん
2016/10/12(水) 08:02:12.04ID:KzFQnxH+ >シフトした残りには0が入るって決められてるから、
>分からん訳じゃ無いと思うけど。
つまりps[0]に関していえば、同じalways内で
ps[0] <= 0;
ps[0] <= si;
って2回書くってことだよな。この意味が不明というか、好きじゃない。
この書きかたは好きじゃない。こういう書き方って普通にやるのか?
ps[0] <= a;
ps[0] <= b;
ps[0] <= c;
これと同じなんだろうけど、
ps[0] <= a or b or c;
>分からん訳じゃ無いと思うけど。
つまりps[0]に関していえば、同じalways内で
ps[0] <= 0;
ps[0] <= si;
って2回書くってことだよな。この意味が不明というか、好きじゃない。
この書きかたは好きじゃない。こういう書き方って普通にやるのか?
ps[0] <= a;
ps[0] <= b;
ps[0] <= c;
これと同じなんだろうけど、
ps[0] <= a or b or c;
885774ワット発電中さん
2016/10/12(水) 08:04:13.54ID:KzFQnxH+ >おまえら、VHDL使え。Verilogの緩い文法議論が、くそうぜえ。使ってないから、そういう議論が頭悪いことに気づかないのか
VHDLはverilogよりもっと糞だということに早く気が付けよ。W
VHDLはverilogよりもっと糞だということに早く気が付けよ。W
886774ワット発電中さん
2016/10/12(水) 08:25:37.39ID:GrfPE86B887774ワット発電中さん
2016/10/12(水) 08:51:34.42ID:MInAQ2CY psはffの出力
ps<<1はpsを入力とする組み合わせ回路の出力
<<1がpsのffそのものをシフトするように勘違いしてるように見える
ps<<1はpsを入力とする組み合わせ回路の出力
<<1がpsのffそのものをシフトするように勘違いしてるように見える
888774ワット発電中さん
2016/10/12(水) 09:21:58.82ID:H6KHsZ+P 国防省がソフトはAda,ハードはVHDLとして無理強いした。
Adaが糞で、糞から生まれたVHDLは糞の子。
Adaが糞で、糞から生まれたVHDLは糞の子。
889774ワット発電中さん
2016/10/12(水) 11:18:39.63ID:+FcNU1ya ps[0] <= a;
ps[0] <= b;
ps[0] <= c;
これって、エラーで通らないんじゃないですか?
ps[0]俺はどうすりゃいいんだ? となる。
Verilogの柔軟な書き方は歓迎
でも、もう少し厳しい文法チェックが欲しい。
徹夜でもうろうとしているとデバッグが進まないから。
ps[0] <= b;
ps[0] <= c;
これって、エラーで通らないんじゃないですか?
ps[0]俺はどうすりゃいいんだ? となる。
Verilogの柔軟な書き方は歓迎
でも、もう少し厳しい文法チェックが欲しい。
徹夜でもうろうとしているとデバッグが進まないから。
890774ワット発電中さん
2016/10/12(水) 12:45:24.04ID:KzFQnxH+ >ps<<1はpsを入力とする組み合わせ回路の出力
><<1がpsのffそのものをシフトするように勘違いしてるように見える
組み合わせ回路だけどシフトだろ。
ps <= ps << 1
これは
ps[7].d = ps[6].q;
ps[6].d = ps[5].q;
ps[5].d = ps[4].q;
ps[4].d = ps[3].q;
ps[3].d = ps[2].q;
ps[2].d = ps[1].q;
ps[1].d = ps[0].q;
ps[0].d = 0;
こういう意味だよ。
だから
ps[0].d = si; こいつをもう一度書く。
2重定義でしか入力をセットできない。
><<1がpsのffそのものをシフトするように勘違いしてるように見える
組み合わせ回路だけどシフトだろ。
ps <= ps << 1
これは
ps[7].d = ps[6].q;
ps[6].d = ps[5].q;
ps[5].d = ps[4].q;
ps[4].d = ps[3].q;
ps[3].d = ps[2].q;
ps[2].d = ps[1].q;
ps[1].d = ps[0].q;
ps[0].d = 0;
こういう意味だよ。
だから
ps[0].d = si; こいつをもう一度書く。
2重定義でしか入力をセットできない。
891774ワット発電中さん
2016/10/12(水) 12:46:10.16ID:KzFQnxH+ >これって、エラーで通らないんじゃないですか?
通るんじゃね。それなんとなく見たことあるから。
orじゃないかもしれないが、、、、
もしエラーになるんならひょっとするとディフォールトかな?
count <= 99;
if(a == 3)
count <= count + 1;
これはa != 3の時はcount=99になるだろ。
ps[0].d = 0;じゃなくて
ps[0].d = 未定;
ps[0] <= si; で未定が確定なのかもしれない。
通るんじゃね。それなんとなく見たことあるから。
orじゃないかもしれないが、、、、
もしエラーになるんならひょっとするとディフォールトかな?
count <= 99;
if(a == 3)
count <= count + 1;
これはa != 3の時はcount=99になるだろ。
ps[0].d = 0;じゃなくて
ps[0].d = 未定;
ps[0] <= si; で未定が確定なのかもしれない。
892774ワット発電中さん
2016/10/12(水) 14:21:30.74ID:cg1IM12S 久しぶりに設計やらないといけなくなったんだけど
昔Model Simってテストベンチかかなくても、GUIで波形成形出来なかったっけ?
昔Model Simってテストベンチかかなくても、GUIで波形成形出来なかったっけ?
893名無しさん
2016/10/12(水) 15:04:12.25ID:/kKoBx9M if (test&mode[3:0]==4'b0010)
のコードを見て、verilog死ねと思った
のコードを見て、verilog死ねと思った
894774ワット発電中さん
2016/10/12(水) 18:03:22.04ID:qYGEQeZr ちょくちょく教科書という単語が出てくるけど何の本を指してるの?
895774ワット発電中さん
2016/10/12(水) 18:04:24.69ID:eMR/rK/f 絡みネタ来ましたよ
896arisa ◆QaHT6HayjI
2016/10/12(水) 18:12:14.69ID:NOMuf+ZS verilogで$signed使うと、バグが出て。
VHDLでuse IEEE.std_logic_unsigned.all すると止まるのは、
何とかならないものでしょうか。
VHDLでuse IEEE.std_logic_unsigned.all すると止まるのは、
何とかならないものでしょうか。
897arisa ◆QaHT6HayjI
2016/10/12(水) 18:13:47.06ID:C5En5uqG 間違った・・・・
verilogで$signed使うと、バグが出て。
VHDLでuse IEEE.std_logic_signed.all すると止まるのは、
何とかならないものでしょうか。
verilogで$signed使うと、バグが出て。
VHDLでuse IEEE.std_logic_signed.all すると止まるのは、
何とかならないものでしょうか。
898774ワット発電中さん
2016/10/12(水) 18:57:27.39ID:6xhXCb4o ps<<1を利用してpsを左シフトしつつps[0]にsiを代入したいから
always文の中でシーケンシャルな代入文を記述してるってことか
話を勘違いしてた
always文の中でシーケンシャルな代入文を記述してるってことか
話を勘違いしてた
899774ワット発電中さん
2016/10/12(水) 20:19:21.64ID:y9GS8u9k900arisa ◆QaHT6HayjI
2016/10/13(木) 05:35:53.77ID:dZW5rAGi >>899
VHDLでつくったのを戻してビット幅あわせてもおこるんよ。
VHDLで組むと起きないので、verilogの深くて単純な話にはまりそう。なので仕事では諦めた。
これ以上追うのは趣味の世界だし。
全てVHDLで組む信号処理の分野も理解できるし、verilog万歳な気持ちもよくわかる。
verilogがVHDLのように厳密な言語仕様にする別モードがあったら、VHDLいらない。
負の演算があるFIRフィルターを、verilogで組んでくださいとか言われたら切れるね。
できなくはないけど10倍デバックがかかる。
そこがデバック終わって数値演算ライブラリがverilogでできればいいけど、外部コンポーネント参照山のようにして、誰が見ても理解不能コードになることうけあい
面倒くさいから最初からVHDLでかいたほうがいいいやん。
テストベンチは、verilogの方が便利ね。
特にバス調停の決まり切った物。task文とか
verilogが曖昧過ぎて、その曖昧な部分を埋めたシミュレータとか論理合成ツールは偉いと思う。でも、デバックはVHDLじゃないと出来なさそうw
VHDLでつくったのを戻してビット幅あわせてもおこるんよ。
VHDLで組むと起きないので、verilogの深くて単純な話にはまりそう。なので仕事では諦めた。
これ以上追うのは趣味の世界だし。
全てVHDLで組む信号処理の分野も理解できるし、verilog万歳な気持ちもよくわかる。
verilogがVHDLのように厳密な言語仕様にする別モードがあったら、VHDLいらない。
負の演算があるFIRフィルターを、verilogで組んでくださいとか言われたら切れるね。
できなくはないけど10倍デバックがかかる。
そこがデバック終わって数値演算ライブラリがverilogでできればいいけど、外部コンポーネント参照山のようにして、誰が見ても理解不能コードになることうけあい
面倒くさいから最初からVHDLでかいたほうがいいいやん。
テストベンチは、verilogの方が便利ね。
特にバス調停の決まり切った物。task文とか
verilogが曖昧過ぎて、その曖昧な部分を埋めたシミュレータとか論理合成ツールは偉いと思う。でも、デバックはVHDLじゃないと出来なさそうw
901774ワット発電中さん
2016/10/13(木) 11:26:42.15ID:i7+FYgaz >>900
興味あるなー。でも勘違いしてるんじゃない?
曖昧っていったってビット幅は正確に決められるしどんなところが問題なのか、具体的
な例はないの?
「1−1が0にならよ」とか、まさか負のキャリが立たないとかW
verilogで負の演算ができないなんてことはないだろ。W
FIRって知らんが、x/+-が素直に動けばもんだいなくできると思うが、、、W
興味あるなー。でも勘違いしてるんじゃない?
曖昧っていったってビット幅は正確に決められるしどんなところが問題なのか、具体的
な例はないの?
「1−1が0にならよ」とか、まさか負のキャリが立たないとかW
verilogで負の演算ができないなんてことはないだろ。W
FIRって知らんが、x/+-が素直に動けばもんだいなくできると思うが、、、W
902774ワット発電中さん
2016/10/13(木) 12:01:44.40ID:1PGgeP2M903774ワット発電中さん
2016/10/13(木) 12:15:39.05ID:sPFxRlgf signedは敬遠してるな。機械様には全部符号なしで宣言してる。
符号付き演算だと思ってるのは人間だけで、あとは設計書類とコメントぐらい。
S*Sだと、{S1,R1}*{S2,R2}に分解して、筆算。
R1*R2 -((S1)? R2<<a:0) -((S2)? R1<<b:0) +((S1&S2)? 2^c:0);
あとは、例えば(-128)*(-128)をサポートするならbit幅が1つ余分に要るとか。
signedを使いこなせたらもっと楽になるんだろうけど
我ながら低レベルな記述をしてる。
符号付き演算だと思ってるのは人間だけで、あとは設計書類とコメントぐらい。
S*Sだと、{S1,R1}*{S2,R2}に分解して、筆算。
R1*R2 -((S1)? R2<<a:0) -((S2)? R1<<b:0) +((S1&S2)? 2^c:0);
あとは、例えば(-128)*(-128)をサポートするならbit幅が1つ余分に要るとか。
signedを使いこなせたらもっと楽になるんだろうけど
我ながら低レベルな記述をしてる。
904774ワット発電中さん
2016/10/13(木) 12:47:23.77ID:i7+FYgaz signedだからって関係ないだろ。 でも俺もfloat以外では使うことないな。
905774ワット発電中さん
2016/10/13(木) 16:13:06.19ID:1PGgeP2M >>> や <<< の出番ですね
906774ワット発電中さん
2016/10/13(木) 21:53:37.92ID:HgzOp4vD 論理回路設計の勉強をしてるのですが、プロの人達はまず最初にブロック図的なものを書くところから始めるのでしょうか
それとも構想を頭で描きながら記述していくのでしょうか
ブロック図などを書く場合はどういったツールを使用していますか
それとも構想を頭で描きながら記述していくのでしょうか
ブロック図などを書く場合はどういったツールを使用していますか
907774ワット発電中さん
2016/10/13(木) 22:07:46.57ID:zNmCQkYT >>906
紙と2Hの鉛筆
紙と2Hの鉛筆
908774ワット発電中さん
2016/10/13(木) 22:10:47.40ID:hnTHZ2s4 オレは裏紙にボールペン
909774ワット発電中さん
2016/10/13(木) 22:47:21.08ID:64+HsgyJ 紙とシャーペン
ブロック図を書いたら回路図を書いて
フリップフロップをalways、AND,ORはassignにする。
ブロック図を書いたら回路図を書いて
フリップフロップをalways、AND,ORはassignにする。
910774ワット発電中さん
2016/10/13(木) 23:59:52.10ID:i7+FYgaz 基本設計をしてデバイス選定をする。
Libreoffice Writer を立ち上げてタイトルを書く。日付を入れる。
次に概要を書く
解決すべき問題がないかをリストアップする。
IPなど必要資料をリストアップする。
全体構成を箇条書きする。
タイトル名でプロジェクトディレクトリを作成する。
その下に
ドキュメントディレクトリ
VerilogTopディレクトリを作る。さらにその下にサブプロジェクトのディレクトリ
ツリーを作成する。
あとは漫画を描きながら各モジュールを作成してテストベンチを作成してテストする。
漫画はジェットストリームでノートに書く。完成した漫画はスマフォで撮影して
Evernoteでクラウドに挙げて、Libreofficeのドキュメントに貼り付けていく。
テストベンチのWaveデータもsnippingツールで画像コピーをしてドキュメントに
貼り付けていく。
というようなやり方だな。
Libreoffice Writer を立ち上げてタイトルを書く。日付を入れる。
次に概要を書く
解決すべき問題がないかをリストアップする。
IPなど必要資料をリストアップする。
全体構成を箇条書きする。
タイトル名でプロジェクトディレクトリを作成する。
その下に
ドキュメントディレクトリ
VerilogTopディレクトリを作る。さらにその下にサブプロジェクトのディレクトリ
ツリーを作成する。
あとは漫画を描きながら各モジュールを作成してテストベンチを作成してテストする。
漫画はジェットストリームでノートに書く。完成した漫画はスマフォで撮影して
Evernoteでクラウドに挙げて、Libreofficeのドキュメントに貼り付けていく。
テストベンチのWaveデータもsnippingツールで画像コピーをしてドキュメントに
貼り付けていく。
というようなやり方だな。
911774ワット発電中さん
2016/10/14(金) 02:40:41.01ID:U+MZJOfy ジェットストリームって、書きやすいですよね
912arisa ◆QaHT6HayjI
2016/10/14(金) 05:38:50.68ID:M5fLLkZA Excelとかパワポとか言い出したら、目立・ル○サス系なのでそいつには気をつけろ!自分のやった領域以外の仕事はできない!
Wordでも書くよといいだしたら、信用できるかもw
Visioが使いやすいんじゃないかなあ。Word/Excel/パワポと描画エンジンはもう同じだけどw
要は、就職先によるだろ。
個人の場合は、描かない。めんどくさいし。
ブロック図で描かないと、設計できない人と。描いてしまうと、設計できなくなる人と。分かれる。
ASIC時代の人は、前者が多い。最近の人は、後者。
でも、両方体験して、どっちもできる賢者になるのをおすすめします。
>>910
在宅Webプログラマっぽい。かっこいい。w
余談というか、愚痴。
この仕事になった10年前あたりから、テストベンチの波形データを貼り付けたままで。満足。
「この信号のこの部分が、xx[ns]になっているから、仕様と一致することを確認した」
と書く意識のない奴ってなんなの。なぜかベテランに多い。
そういう人のverilogは、たいてい怪しくて、はまることが多い。
>>911
わし、ユニボール シグノ 0.5mm
ブロック図で、微妙な濃淡。微妙な太い細いが表現できて、毛筆のようなそのときの気持ちが表現できて気に入ってる。
ジェットストリームは、車の中とかの過酷な環境で使っている、あれいいよね。でもすぐになくす。
そういえば、最近、論理記号の定規をみないな、何処にしまったんだろ・・・
Wordでも書くよといいだしたら、信用できるかもw
Visioが使いやすいんじゃないかなあ。Word/Excel/パワポと描画エンジンはもう同じだけどw
要は、就職先によるだろ。
個人の場合は、描かない。めんどくさいし。
ブロック図で描かないと、設計できない人と。描いてしまうと、設計できなくなる人と。分かれる。
ASIC時代の人は、前者が多い。最近の人は、後者。
でも、両方体験して、どっちもできる賢者になるのをおすすめします。
>>910
在宅Webプログラマっぽい。かっこいい。w
余談というか、愚痴。
この仕事になった10年前あたりから、テストベンチの波形データを貼り付けたままで。満足。
「この信号のこの部分が、xx[ns]になっているから、仕様と一致することを確認した」
と書く意識のない奴ってなんなの。なぜかベテランに多い。
そういう人のverilogは、たいてい怪しくて、はまることが多い。
>>911
わし、ユニボール シグノ 0.5mm
ブロック図で、微妙な濃淡。微妙な太い細いが表現できて、毛筆のようなそのときの気持ちが表現できて気に入ってる。
ジェットストリームは、車の中とかの過酷な環境で使っている、あれいいよね。でもすぐになくす。
そういえば、最近、論理記号の定規をみないな、何処にしまったんだろ・・・
913arisa ◆QaHT6HayjI
2016/10/14(金) 05:48:34.90ID:M5fLLkZA914774ワット発電中さん
2016/10/14(金) 07:46:30.37ID:M87vCzzy915774ワット発電中さん
2016/10/14(金) 12:41:12.51ID:D7c3gZma 遠い地平線が消えて、深々とした夜の闇に心を休めるとき…
916774ワット発電中さん
2016/10/14(金) 13:28:27.84ID:AZkCOEOH 一つの光が宇宙へ飛んでゆく。
917774ワット発電中さん
2016/10/14(金) 15:43:05.55ID:TNvPoqxe それがぼくなんダヨー
918774ワット発電中さん
2016/10/14(金) 17:07:25.67ID:8geS1lyO >>809のお世話になった者です
I2Cのパターンを途中まで作ってみたのですが、考え方などあっているでしょうか
DATA[7:0]想定です
reg [4:0] cnt_addr;
reg [6:0] cnt_rate;
wire cnt_enable;
wire cry_addr;
// -- cnt_addr ----------------------------------------
always @(posedge clk or negedge reset) begin
if(reset == 1'b0)
cnt_addr <= 0;
else if(start_trigger == 1'b1)
cnt_addr <= 8;
else if(cnt_addr > 0)
if(cry_addr == 1'b1)
cnt_addr <= cnt_addr - 1;
else
cnt_addr <= cnt_addr;
else
cnt_addr <= 0;
end
assign cnt_enable = (cnt_addr > 0) ? 1'b1 : 1'b0;
// -- cnt_rate ----------------------------------------
always @(posedge clk or negedge reset) begin
if(reset == 1'b0)
cnt_rate <= 0;
else if(cnt_enable == 1'b1)
if(cry_addr == 1'b1)
cnt_rate <= 0;
else
cnt_rate <= cnt_rate + 1;
else
cnt_rate <= 0;
end
assign cry_addr = (cnt_rate == 99) ? 1'b1 : 1'b0;
I2Cのパターンを途中まで作ってみたのですが、考え方などあっているでしょうか
DATA[7:0]想定です
reg [4:0] cnt_addr;
reg [6:0] cnt_rate;
wire cnt_enable;
wire cry_addr;
// -- cnt_addr ----------------------------------------
always @(posedge clk or negedge reset) begin
if(reset == 1'b0)
cnt_addr <= 0;
else if(start_trigger == 1'b1)
cnt_addr <= 8;
else if(cnt_addr > 0)
if(cry_addr == 1'b1)
cnt_addr <= cnt_addr - 1;
else
cnt_addr <= cnt_addr;
else
cnt_addr <= 0;
end
assign cnt_enable = (cnt_addr > 0) ? 1'b1 : 1'b0;
// -- cnt_rate ----------------------------------------
always @(posedge clk or negedge reset) begin
if(reset == 1'b0)
cnt_rate <= 0;
else if(cnt_enable == 1'b1)
if(cry_addr == 1'b1)
cnt_rate <= 0;
else
cnt_rate <= cnt_rate + 1;
else
cnt_rate <= 0;
end
assign cry_addr = (cnt_rate == 99) ? 1'b1 : 1'b0;
919774ワット発電中さん
2016/10/14(金) 17:08:41.13ID:8geS1lyO scl/scl_o、sda/sda_oがあるのはどうしたほうがいいのかよくわからなくなり
とりあえず試しているところです。。
// -- scl -------------------------------------------
assign scl = out_scl(cnt_enable,cnt_addr,cnt_rate);
function out_scl;
input en;
input [4:0] addr;
input [6:0] cnt;
begin
if(en == 1'b1)
if(cnt < 50)
out_scl = 1'b1;
else
out_scl = 1'b0;
else
out_scl = 1'b0;
end
endfunction
// -- scl_o -------------------------------------------
always @(posedge clk or negedge reset) begin
if(reset == 1'b0)
scl_o <= 1'b0;
else if(cnt_enable == 1'b1)
if(cnt_rate < 50)
scl_o <= 1'b1;
else
scl_o <= 1'b0;
else
scl_o <= 1'b0;
end
とりあえず試しているところです。。
// -- scl -------------------------------------------
assign scl = out_scl(cnt_enable,cnt_addr,cnt_rate);
function out_scl;
input en;
input [4:0] addr;
input [6:0] cnt;
begin
if(en == 1'b1)
if(cnt < 50)
out_scl = 1'b1;
else
out_scl = 1'b0;
else
out_scl = 1'b0;
end
endfunction
// -- scl_o -------------------------------------------
always @(posedge clk or negedge reset) begin
if(reset == 1'b0)
scl_o <= 1'b0;
else if(cnt_enable == 1'b1)
if(cnt_rate < 50)
scl_o <= 1'b1;
else
scl_o <= 1'b0;
else
scl_o <= 1'b0;
end
920774ワット発電中さん
2016/10/14(金) 17:09:02.30ID:8geS1lyO reg [7:0] rom_sda = 8'b10110111;
// -- sda -------------------------------------------
assign sda = out_sda(cnt_enable,cnt_addr,rom_sda);
function out_sda;
input en;
input [4:0] addr;
input [7:0] rom_data;
begin
if(en == 1'b1)
out_sda = rom_data[addr - 1];
else
out_sda = 1'b0;
end
endfunction
// -- sda_o -------------------------------------------
always @(posedge clk or negedge reset) begin
if(reset == 1'b0)
sda_o <= 1'b0;
else if(cnt_enable == 1'b1)
sda_o <= rom_sda[cnt_addr - 1];
else
sda_o <= 1'b0;
end
// -- sda -------------------------------------------
assign sda = out_sda(cnt_enable,cnt_addr,rom_sda);
function out_sda;
input en;
input [4:0] addr;
input [7:0] rom_data;
begin
if(en == 1'b1)
out_sda = rom_data[addr - 1];
else
out_sda = 1'b0;
end
endfunction
// -- sda_o -------------------------------------------
always @(posedge clk or negedge reset) begin
if(reset == 1'b0)
sda_o <= 1'b0;
else if(cnt_enable == 1'b1)
sda_o <= rom_sda[cnt_addr - 1];
else
sda_o <= 1'b0;
end
921774ワット発電中さん
2016/10/14(金) 18:01:19.25ID:TNvPoqxe 簡単でも仕様を書く(目標を定める)
○ i2cマスタっぽい何かを作りたい
○ clkは何MHz SCLはその1/50
○ SCL↓とSDAの位相をずらさない
○ SCLもSDAもデフォルトLで構わない
○ スレーブアドレスは渡さない
○ r/wも渡さない
○ アクノリッジも見ない
○ データの8bitだけ渡す
○ シングルスレーブ、書き込みのみ
○ SDAはオープンドレインにしない
文法的にはアレだな。かわいそうだけど
begin~else否定派が生まれちゃったな。
resetは負論理ならxでもnでもpreでもsufでも付けましょう。
○ i2cマスタっぽい何かを作りたい
○ clkは何MHz SCLはその1/50
○ SCL↓とSDAの位相をずらさない
○ SCLもSDAもデフォルトLで構わない
○ スレーブアドレスは渡さない
○ r/wも渡さない
○ アクノリッジも見ない
○ データの8bitだけ渡す
○ シングルスレーブ、書き込みのみ
○ SDAはオープンドレインにしない
文法的にはアレだな。かわいそうだけど
begin~else否定派が生まれちゃったな。
resetは負論理ならxでもnでもpreでもsufでも付けましょう。
922774ワット発電中さん
2016/10/14(金) 18:09:06.55ID:eJCe6+VN なかなか筋がいい。綺麗だね。
しかし921がいうように仕様をきめること。
それからステートマシンでプロトコルを書くのが先だな。
スタート待ち
アドレス検出、もし不一致ならストップへ
アック検出
、、、、、、
ストップ
みたいな感じでステートマシンを書く
しかし921がいうように仕様をきめること。
それからステートマシンでプロトコルを書くのが先だな。
スタート待ち
アドレス検出、もし不一致ならストップへ
アック検出
、、、、、、
ストップ
みたいな感じでステートマシンを書く
923774ワット発電中さん
2016/10/14(金) 19:03:34.03ID:M87vCzzy >>921>>922
ありがとうございます
いろいろと至らない点がありすみません
指摘頂いたこと以後注意します
今はまだ考え方がふわふわしてて記述に自信が持てません
一応シミュレーションだけはかけていますが。。
begin〜endは自分も全部付けて複数行かくスタイルでやってましたが、ここ最近のスレのやりとりでちょっと見直してみました
考え方が問題なければ、スタート/ストップコンディション、ACK含めステートマシン的な考え方で出来ればと思ってます
ありがとうございます
いろいろと至らない点がありすみません
指摘頂いたこと以後注意します
今はまだ考え方がふわふわしてて記述に自信が持てません
一応シミュレーションだけはかけていますが。。
begin〜endは自分も全部付けて複数行かくスタイルでやってましたが、ここ最近のスレのやりとりでちょっと見直してみました
考え方が問題なければ、スタート/ストップコンディション、ACK含めステートマシン的な考え方で出来ればと思ってます
924arisa ◆QaHT6HayjI
2016/10/14(金) 19:13:10.80ID:0y15DUWZ うーん、opencore.orgのI2C masterを登録してダウンしてみるといいと思う。
今見たらメンテナンス中ってでるけど。
今見たらメンテナンス中ってでるけど。
925774ワット発電中さん
2016/10/14(金) 21:13:05.87ID:M87vCzzy926774ワット発電中さん
2016/10/14(金) 21:27:26.76ID:AZkCOEOH I2CはZだよ!
927774ワット発電中さん
2016/10/14(金) 21:29:27.23ID:TNvPoqxe 次のような記法は好きでない。(cnt_adrが0の時とかね)
rom_sda[cnt_addr - 1]
scl/sdaを組み合わせ回路で組んでいるが、
外部とやり取りする部分は基本FFにする。
rom_sda[cnt_addr - 1]
scl/sdaを組み合わせ回路で組んでいるが、
外部とやり取りする部分は基本FFにする。
928774ワット発電中さん
2016/10/14(金) 21:31:59.03ID:AZkCOEOH929774ワット発電中さん
2016/10/14(金) 21:38:31.90ID:TNvPoqxe そういえば、alteraだったかのライブラリで
reg <= 1'bz
という記述があって驚いた。
実際に(FPGAで)合成可能で二度驚いた。
reg <= 1'bz
という記述があって驚いた。
実際に(FPGAで)合成可能で二度驚いた。
930774ワット発電中さん
2016/10/14(金) 22:27:22.24ID:M87vCzzy931774ワット発電中さん
2016/10/15(土) 00:46:00.81ID:K5J3IGad >>929
で実際にハイインピーになった?
で実際にハイインピーになった?
932arisa ◆QaHT6HayjI
2016/10/15(土) 02:28:48.45ID:RFC1SU7U933774ワット発電中さん
2016/10/15(土) 07:44:10.02ID:RV4MTfqG そりゃFFにzを保持できる訳がないという先入観があったからな。
代入される信号もI/Oに繋がっていないと駄目だし、
合成結果も1/0を保持するFFと、open/driveを制御するFFの二つが
出力される。ASICしかしてない時は想像もしてなかった。
代入される信号もI/Oに繋がっていないと駄目だし、
合成結果も1/0を保持するFFと、open/driveを制御するFFの二つが
出力される。ASICしかしてない時は想像もしてなかった。
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 【ラジオ】永野芽郁、田中圭との不倫疑惑後初の『ANNX』で謝罪「誤解を招くような行動…反省」「本当にごめんなさい」★2 [Ailuropoda melanoleuca★]
- コメ5キロ、最高値4220円 16週連続上昇、前年比2倍 ★2 [蚤の市★]
- 【芸能】永野芽郁 「オールナイトニッポンX」出演のためニッポン放送入り 30人を超える報道陣集まる中… [jinjin★]
- 【国際】スペイン、大規模停電で国家安全保障会議を臨時に開催 ポルトガルでも列車運行できず [ぐれ★]
- 障害年金、不支給が倍増3万人に 24年度、幹部交代で厳格化か | 共同通信 [少考さん★]
- 【芸能】30歳歌手、万博の野外ライブの写真を公開しネット騒然 1・6万人収容の会場が衝撃のスカスカ… 「これ本番です」「実力不足」 [冬月記者★]
- 寝れない!!!!!!!!!!😡
- チャットgtpに「いい質問です!」って言われるとちょっと嬉しくなる奴wwvww
- 【悲報】万博、同時刻に「7割以上がリピーター」というほぼ同じ文面のポストがバチーンと大量投下🤔【ブルベリ】 [359965264]
- 永野芽郁、生放送で謝罪wwwwwwwwwwwwwwwwww「誤解を与えるような行動をしてしまい申し訳ない」 [183154323]
- chmateのインデントって最大どこまで伸ばせるのかな
- そろそろ本気で自給自足の訓練を始めるわ