X



トップページ電気・電子
1002コメント353KB

【Verilog】 記述言語で論理設計Project14 【VHDL】 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
0001774ワット発電中さん
垢版 |
2016/08/08(月) 08:14:48.93ID:Lhv7D4dX
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/

※前スレ
http://rio2016.2ch.net/test/read.cgi/denki/1394091422/
0002774ワット発電中さん
垢版 |
2016/08/08(月) 08:15:22.75ID:rS0bDErD
MIT発、VerilogをベースとしたDNAプログラミング言語
早く弄りたい
0003774ワット発電中さん
垢版 |
2016/08/08(月) 08:31:19.00ID:6R+oGpyJ
)))()())()(())))))(((()())((()))(()(((()()()((()())))((())(((()()))(((())))(
(())(()(((())()))))()())((()()()())((((()(()()())()(((()(()))))(())))())()()
((())()(()))(((())())()))(()())(((()()())((())())(()()((()(())))))()((()))()
()(())))(()()))))(()()))((()()()()))))()((())))()())(())()()(((())((((()((((
())(()))))(((((((((()()))())))()()))()(()))))((((())()())())))()(())((()((((
))()()(()((((()))())))((()()((()(()()(()()(()()))))(()()((())())()))())()(()
)())())())((())))()(()())))()(((((())))(((((()))((())()))(())((())((())(()()
())()()()()())())()()))(()(()))()(((()()()()()()))())()(()())(()))()(()(((((
())(())(()(()((((())(()(()(()())(()()))())()()())()()))())()(()))))()(()((()
())((()()(())((())(())(((()))))()))))((())(((()))()))()()(((())((())((())())
)(())()()))()()))()((())()(())(()((((())()))()))))((()))))((((())()((()(()((
)(()(((((((((())(()()((()))()()(((())())()()()()())))))()())(()))()()()))())
()())))()))()((((((()))()()))((())(()()((())()(())()())))()((()(((()()))(())
))(((()()(())))))(())))((())(())(()(()()(())((()(((()((()))))())())()))((()(
()())()(((())((()())(()))(()())))(((()(()())((()((())()()((())()))(())()))))
)))(()()))))()()((())()())))))(()(()))())(())((()((()(()))((((()((()(())((()
)()(())(()))(())(()))))((()))()()))()()()((((())())))((())()())((((((((())()
(())()))))())()()((((())())(((()()())()(()())))())()((()(((()())))((())))(((
()(())(((()()()()())()()))()()))(()()()()())()))(()()())))(())(((()))((()(((
(()))))())())))))())())())))(()()(()))(())(((((((()())()((((()((())))(()((((
())()()(())(()()))(()())())((()(())()((())()()()(()()))))()())((()())((()()(
()())))))())())(()()))()(()((())((())(()(())(((((())()())(((()(()()))()(()))
(()))())))(()))))())())(()())()()(()(()())()((()(((()())(()(((((()))()((()))
(()()))(()(()(())())(()()())())((()(()(((()))())))())))()(()))((()(()())(()(
)())))())())))))()())((()))()))()()()))(((()(()))(()()(((((((((()(())(())(((
(()(()()()))(()(()((()))))))()((((())(()()())())(()))(()))(((((())(()))))(()
())((())()))(((((()))(((())()(()()(()()((()()))()(()(((()()))()))())))()))()
()()()())())())))((())())((((()(())()()((()()((((()))()(())))(()))())))(()((
()())()())))(((((())()))))())))(()()())))))(()))(((()((((()(((()())((())()((
((((())()(())((()(()()())((()()()(()())()))()((())))(((())()))))))()((()))()
)))(((()(()()())()()((()())))((()(()))((((((()())((())(())())))()))()(()))()
)())(())())()(((((()(((()()())())())()))()))((()))))()(())(()))(()((()()()((
(()((()(()()(()((()))(((())()(((()(()))(()())))()(())())))())((())()(())))))
)())())()(())))))(((())()()(()(((())()())())(((()))))))))(((()(()(()()()((((
))()))(()()))())))()))))(())(((()()((())()))))()(((()))((())(()((()((((()(((
))))((((()())(((()(()))))))()(()(()()(())((((())))((())((()()))))()(()(())()
))(())(())()))((())(())))((()))())((((())(()((()))))(((()())))((())()()(()((
)((()())))(()(()))(())()(())()((((((((()(((()(()(())(()))))))(())))()))(()))
())(((())()))))((())(()(()()))()())))(())())(((())((((()()(()))())((()())()(
)(()))()())()()()()))(()()()()()())))())(()(()()))(()(()())))))((((((((()(((
)))(()()()())(()))(()((())))((((((((()(((())))))))()()))(((()())((((())))())
)))(())(()((((())())(()))()))))(()())))(())))()()))(()()((()())()((((()(((((
()()()()((())(()(())((()))(()(()))()()))()()(((())()()()())))))()(())()(()((
(((()(((())(()(())())())))()))))((())))(())(()()))(())(((((())((()))()()(())
)((()()()))())()()()(())((()()(()))())(((((())))((()))())())())(((()))((()()
())(()))(())))()(((())()()()()((())))())))(((()(()(()(((())())()))((()((()))
())))))(())()()()((((()()())()(()))()()(())))((()((())((())((()))))()()()(((
)()))))))()))((())))))()(()(()()(((()(())(()())((()()())))()())(((((((()(()(
((()())()(()()))())))())(())(()())()(())((())()()()((()))()())(((((()))()()(
(()(((())()()()(()(())(()))())()())()()((())(((())()))(())((())())))()((()))
0005774ワット発電中さん
垢版 |
2016/09/19(月) 21:11:12.20ID:UfMInlU2
)()(((()((())()())())())()((((()()))()))))))()()((((()))())(())()))(())(((((
(()))(()()()))())(()()())()(((()()((())))))(())()())(()()())(()()((((())())(
((()())(((()))())()()()()(()((())))(())))()()()))()()(())()(()(((())))()(()(
(()(()(((()())(()))()()))())))()()((()()))()))((()(())())))(((()(()(((()()))
)(())((())()((())))((())()((()())())(()()(()((()((()))(())))))))(()(()()))((
)(())))((()))((()(())))()((()()()((())()())(())))())()()()((()(()())()))((((
)))))()()(((()()(()())))()(()(()()())(()(())((()(()(())(((((()))((()))()))))
(()())(()(())()())((((((())())))(()))())())(())))(()))))(())((()(()()((()()(
)()(())((())()((((()))())(())()(())(()))))())())((()))()((())(()()(()()())((
)))((((())()))(())()((((())()()(()()((())()))))))()())())()()((())(()((((())
(())))((()))())(()(())())))())()(()()()())(())(((()((()))((()))())(()()(()((
()())()()))())(()()()((()))(((((((()())()()(((((())())))()()()))))))((())()(
())(()(())(())(()()))(())((()((()(())((())((()())))))(()((()()()(()))))))()(
))()()()(())((())(()(())))((((((((()((())))()))))(()(((())(()))))((())())())
)(()((())())()))()(())()(())()()()))))(((()(()(()))))(()((()))()())))(((((((
)))))))(((()))()((()((()((((()()()(((()()())))()))()(((())((()())))()(()))()
((())())())(()((()((((((()(((()((()))))()(((()))))))()))()()((()())))())()))
(())))((((()(()()()(()()())))((()(())()()()()(()())))())())()))((()(())())((
))())(((((())(((()(()()()(((()))()()())))))()))((())(()()(()))))())())(()(((
)))())()(()())))()((((()((()(())()()()))))(((()((()))()()()())(()()))()((()(
))))())))()((()(()()))(((((()(()()())()(()())(((()())(())(()(((())())))))()(
()(()))()())()))))))(())()()())))(()()(((()()())()))()))()(((()()(((()((((((
)))))()()()(((((((()(()))))()())((((())()))((((()))((())()((()((()))))(())))
()()))()())(()((()())()()(((()))(()((()()))()))()()()((((()(()))((()())())))
())()))()(())(()()(())(()((()((()(()((((())()()))(())())))(()((())())())()))
)(()()))())((()())((()))((((())())()(((((((((())))(()())())))(()())())())())
))((()))))())))()()((()(()()(())((()(((((())(())()(((()(())))(()(()))))(()))
)((((((()(()))())((()))))(()()()))())()())))()(()(((())((((())()))())((()))(
(((()))()(()((()(()(()))))()((())))())(()))((((((()))((()(((()))())()))())))
)()()()())(()()()(())((()((()()))()))(())))()))))(((((())))(()((()((()()())(
(()(((()))())(())))(())(((()(((())(())()()()())()(())(()))))()(()((()))))(()
)(((()((())()((()(()((())))))()())()(((())(()((()))))(())()()))()(())))((())
)((()(())())()))())()()(()()(())()())(())()(())((()(()(())(((())))))(())()((
((()())()()))((()()(()())()()(()(()(()(())(())))))())))))(((((())(())))(()((
(())()())(((()(()()(())(()()))(()())(())(((())()))(())(()()))(()))((())))(()
((((())((((())((((((()))(((()))()()()()()())())())))((((())))(()))))))()))()
))((()))())((())()(((())()()(()(())()()()())((((()((((())))()))()))))(())(()
)))(((((()))()()))()))())(()(())(()()(())))(()))()((()()))((()))))((()((((((
()()((()((()()()((())))(()))))()(()))())((())())())(((((())))(()(()(()()))()
()())((()(()))))))(()(()((())())()(()))))(()(())())(()))())(()(()((()()((()(
))()((())((()))()()())))))(())()))((()((((()(()((()()))())((()()()())))(((()
)())((())()()(((((())))(()()(()((())))(()()())())()(((()))()((()()))))(())()
()())(())()(()((((()(((()()))(()())()()))(())(((()(())()))(()())))()))())(()
()()))(((()())()()))()))))((((()(((())((((())(())((())))))()(()(())(()())())
())(()()()))()()))(()((()((()))))((()))((((()(((()())()))))))(()))((())((()(
))()()(((()((()))())))))))(((()())))())((()())(()()())()(())))((((()()(()(((
()((()))((((()((()((()(())())(())(((())())())(())(())((())(()))))))))()(()))
(()))())(((((()(((()(()(()()()))))))))(())((())))(()(()))(((()())((())))(())
))()))()()(()))()())()()((())())))(())((())))()()()((((())(((())(()(()))((((
(())(()(())))(()((((((())(((()))((())(()())())())()))())()))()())()(()((()))
0006774ワット発電中さん
垢版 |
2016/10/20(木) 11:30:26.87ID:1LMF7ZPy
仕事で論理設計して4年目だけど、未だにVerilogへの違和感が拭えない。
0007774ワット発電中さん
垢版 |
2016/10/20(木) 21:48:39.33ID:2yQ9b0KM
ALTERA(MCLK=50MHz)から1Hzを出力しようと思ったら、どういう方法が最適でしょうか
0008774ワット発電中さん
垢版 |
2016/10/20(木) 22:42:39.08ID:q013k26F
50MHzのカウンタをGPSからの1PPS信号でリセット、25Mパルスカウントで出力を1にする
0009774ワット発電中さん
垢版 |
2016/10/20(木) 23:07:50.96ID:kEXYS73H
ALTERA内部完結でお願いします(TT)
0010774ワット発電中さん
垢版 |
2016/10/21(金) 01:33:27.83ID:4x5KqsMp
50Mhzから1msecパルスを作成して有効利用をする。
1msecから100msecパルスを生成して有効利用をする。
100msecパルスから1Hzを作り出す。

役に立たない無駄社員の有効な使い方と同じだね。
0011774ワット発電中さん
垢版 |
2016/10/21(金) 01:35:08.36ID:4x5KqsMp
>9
100msecパルスの有効利用方法を10個ほどあげてみて。
0012774ワット発電中さん
垢版 |
2016/10/21(金) 08:11:36.34ID:4x5KqsMp
追跡が難しいエラー
A common error is to connect a signal which is supposed to be an input to
an output port.
Because Verilog is so flexible with regard to connecting ports, this will usually not be caught until simulation time, when a wire has two drivers on it when it should only have one, or when a wire has no drivers on it.
These errors can be difficult to track down.

インプットになるべき信号をアウトに接続してもエラーが出ない。
そんなことはないよな。こいつ何いってるんだろ。
0013774ワット発電中さん
垢版 |
2016/10/21(金) 13:56:04.52ID:SufmUTJs
0または2つ以上のドライバで駆動されるwire
open又は衝突するからか?
見つけにくいって事はねえだろ。
Lintがエラー出す。
Sim後ならNCでもverdiでも追跡は得意だろ。
……まともにport接続してれば。
0014774ワット発電中さん
垢版 |
2016/10/21(金) 15:36:12.07ID:NOXCEQzP
3state バスにするとセレクター作って合成してくれた。ISEの頃だけど。
0015774ワット発電中さん
垢版 |
2016/10/21(金) 20:44:49.18ID:4jdrtlj4
文法は一通り覚えたので、勉強用に本をいくつか買おうと思ってます
皆さんのおすすめの本はありますか?
0019774ワット発電中さん
垢版 |
2016/10/22(土) 12:29:52.49ID:m3ceeu3X
前スレのリセットなんだけど、リセットIC無し且PLL使わない場合どうすんのが一番いいんだ?
0020774ワット発電中さん
垢版 |
2016/10/22(土) 15:12:36.16ID:wYOYfDwe
デバイスごとに変わる。プロジェクトごとに変わる。
アプリケーションごとに変わる。
0021774ワット発電中さん
垢版 |
2016/10/22(土) 16:50:53.20ID:rxE0Rds1
>>20
ありがとう
今手元にDE0しかないんだけど、ユーザー回路のリセット作るとしたらどうするのが一番いいですか?
0022774ワット発電中さん
垢版 |
2016/10/22(土) 20:48:11.37ID:wYOYfDwe
既にボードになってるんだろ?
fpgaならコンフィグ後には初期化されてる。
クロックも止めないんだろ?
外部リセットも要望するなら同期化させといた方が安全安心。
0023774ワット発電中さん
垢版 |
2016/10/22(土) 22:10:59.02ID:gjpqHizY
コンフィグ時に初期値Max(たとえば0xFF)のダウンカウンタが
動いてる間はリセットっていうやつとかどう?
カウンタが0になったらリセット解除。
リセット信号はグローバルラインに乗せること。
0024774ワット発電中さん
垢版 |
2016/10/22(土) 23:14:45.28ID:tBp0gB6g
すべてのFFが同時に動作し始める保証がないので、カウンタよりはシフトレジスタのほうが良いよ。

logic [7:0] shft = 8'hFF;
always_ff @(posedge clk)
shft <= {shft, 1'b0};
assign rst = shft[7];

とか。
0025774ワット発電中さん
垢版 |
2016/10/22(土) 23:55:29.99ID:ail1AwUs
>>22-24
ありがとうございます

>>24の案がしっくりきました!
0026774ワット発電中さん
垢版 |
2016/10/23(日) 08:26:14.30ID:E/6vFupP
>>24
すべてのFFが同時に動作し始める保証がないってのは
コンフィグが終了するまでの間はリセット保持しておくべきってこと?
シフトレジスタの長さをそれに合わせて調節するという感じですか?
0027774ワット発電中さん
垢版 |
2016/10/23(日) 08:46:54.71ID:b19P+tLe
コンフィグが終了するまでは、>>24 の回路自体が存在しないよ(構成されてない)
何が解からないのかが解からない、のレベルか?
0028774ワット発電中さん
垢版 |
2016/10/23(日) 09:32:08.33ID:vxDfyLcA
>>24
logicというのは、regと何が違うのでしょうか?

あと、連接で、shift[6ころん0]としなくてもよいのでしょうか?
0029774ワット発電中さん
垢版 |
2016/10/23(日) 10:06:57.70ID:q9OP294G
24は SystemVerilog なんでしょ
shift のほうは、先頭ビットが捨てられるだけだから
warning は出るかもしれないけどエラーにはならないし
bit幅拡張する方向と違って結果どうなるかについて
あいまいな要素ないから使ってるんでは?

## 個人的には、VHDLの'high,'low,'range みたいなのが
## verilog にもあったら・・・って思う
0030774ワット発電中さん
垢版 |
2016/10/23(日) 11:18:49.56ID:E/6vFupP
>>27
コンフィグが終了するまで回路自体が存在しないのは>>24も同じことで、
すべてのFFが同時に動作し始める保証がないのはシフトレジスタも同じなのでは?
なんでカウンタよりシフトレジスタが良いのかが分かりません
0031774ワット発電中さん
垢版 |
2016/10/23(日) 11:22:23.71ID:E/6vFupP
シフトレジスタなら各FFの動作タイミングがずれても
1を保持してる状態がかわらないからかな?
0032774ワット発電中さん
垢版 |
2016/10/23(日) 11:40:18.65ID:N0lKtuS7
一般的な話をすると、変なクロックが入ると
バイナリカウンタは値が飛ぶ。
一番極端な話を持ち出すと0xFF→0x00遷移ではあらゆる値に飛び得る。

冷静な話をすると>>23の0xFFからのダウンカウンタは
最初の一発目で0xFE以外に飛ぶとしても0xFFなので
シフトレジスタと大差ない。
でも好みはシフトレジスタかな。
0033774ワット発電中さん
垢版 |
2016/10/23(日) 12:36:24.14ID:q9OP294G
最初のほうでコンフィグされた回路は全体のコンフィグ終了前に
動作し始めるの?
もしそうなら、前スレで出てたPLLのLocked信号なんか使った方法でも
PLLとリセット信号発生の回路が最初にコンフィグされるって保証ない
わけだから、ほかの先にコンフィグされた回路がリセットかからずに
走り出しちゃうってことになるんだけど
0038arisa ◆QaHT6HayjI
垢版 |
2016/10/26(水) 05:20:56.78ID:UGJyQrpm
>>13
「NCでもverdi」
金持っている企業じゃないと、そんなの使えないからw
0041774ワット発電中さん
垢版 |
2016/10/27(木) 00:05:22.41ID:vee62HAA
回路設計習い始めたけどブロッキング代入ってのがどうにもよくわからん。。
辻褄合わせの設計しか出来なくて嫌んなってきた
0042774ワット発電中さん
垢版 |
2016/10/27(木) 09:59:34.63ID:76ccvaD/
こんな書き方しないで
always @(posedge gclk or posedge reset)
if(reset)
fb_q <= 24'h0;
else
fb_q <= fb_input;

always @(posedge gclk or posedge reset)
if(reset)
fset_q <= 24'h0;
else
if (fset_ena)
fset_q <= fset_d;

こっちのほうがいいよな。
always @(posedge gclk)
fb_q <= fb_input;

always @(posedge gclk)
if (fset_ena)
fset_q <= fset_d;

always @(posedge reset) begin
fb_q <= 24'h0;
fset_q <= 24'h0;
end;
0045774ワット発電中さん
垢版 |
2016/10/27(木) 12:16:06.46ID:76ccvaD/
なんでや!!
0047774ワット発電中さん
垢版 |
2016/10/27(木) 14:16:03.86ID:+hWiMzlh
やっぱり end else begin を入れないと見にくいよね。

always @(posedge gclk) begin
  if( reset == 1'b1 ) begin
    fb_q <= 24'h0;
    fset_q <= 24'h0;

  end else begin
    fb_q <= fb_input;

    if (fset_ena == 1'b1 ) begin
      fset_q <= fset_d;

    end else begin
      fset_q <= fset_q;
    end
  end
end
0049774ワット発電中さん
垢版 |
2016/10/27(木) 15:34:27.96ID:foSI7Cd2
always @(posedge gclk) begin
  fb_q <= fb_input;
  if (fset_ena) fset_q <= fset_d;

  if (reset) begin
    fb_q <= 24'h0;
    fset_q <= 24'h0;
  end
end
0050774ワット発電中さん
垢版 |
2016/10/27(木) 15:58:29.38ID:76ccvaD/
>49
きれいだが、それだと同期リセットになるからだめ。意味が違ってくる。
0054774ワット発電中さん
垢版 |
2016/10/27(木) 16:59:56.61ID:76ccvaD/
こっちのほうが俄然いいと思う。なぜなら非同期リセットなんてロジック
本体にあると邪魔だ。ロジックがよみづらくなるから。

always @(posedge gclk) begin
  fb_q <= fb_input;
  if (fset_ena) fset_q <= fset_d;
end
always @(posedge reset) begin
  fb_q <= 24'h0;
  fset_q <= 24'h0;
end
0056774ワット発電中さん
垢版 |
2016/10/27(木) 17:07:49.74ID:76ccvaD/
とくにレジスタが大量にあるときは一か所で一括してクリアしてしまう。
こうするのがいいと思う。
always @(posedge reset) begin
  fb_q  <= 24'h0;
  fset_q <= 24'h0;
  asst_q <= 24'h0;
  vbnt_q <= 24'h0;
  z5tyuq <= 24'h0;
  sdft_q <= 24'h0;
  hjty_q <= 24'h0;
  fser_q <= 24'h0;
  njit_q <= 24'h0;
  mmlt_q <= 24'h0;
  hyut_q <= 24'h0;
  vvgt_q <= 24'h0;
  tyut_q <= 24'h0;
  i89t_q <= 24'h0;
end
0058774ワット発電中さん
垢版 |
2016/10/27(木) 17:57:21.69ID:76ccvaD/
これで特に問題なければ、モジュールのreg定義をサーチして自動的にクリアロジックを
つくるマクロを作っておけば、リセットを気にする必要なしにプログラムできる。
0060774ワット発電中さん
垢版 |
2016/10/27(木) 20:24:27.38ID:9XZtWH2D
ちょっとありかなと思った
0061774ワット発電中さん
垢版 |
2016/10/27(木) 20:48:49.63ID:+vRhZ6pm
もう、Verilog じゃなくて別の言語作ってくれよ。

マジでそう思う。

同期設計に特化して、クロックや非同期リセットなんてわざわざ指定せずに済むようしてくれ。
0062774ワット発電中さん
垢版 |
2016/10/27(木) 22:46:35.22ID:76ccvaD/
tclでマクロ作ってみた。 正規表現使うと簡単にできる

//--- reg reset logic ---
always@(posedge reset) begin
buf1 <= 0; // reg [7:0] buf1;
buf2 <= 0; // reg [7:0] buf2;
buf3 <= 0; // reg [7:0] buf3;
end
0063774ワット発電中さん
垢版 |
2016/10/27(木) 22:50:42.30ID:76ccvaD/
本当は set rq {\[(\d+):(\d+)\]} とか使ってレジスタサイズ出して 8'd0に
したほうがいいのかも
0065774ワット発電中さん
垢版 |
2016/10/28(金) 07:01:19.88ID:Xb9K6D44
>>64
ちんこには、コンドームをつけるのと同じです。
生が好きな人は生がいいだけの話です。
0066774ワット発電中さん
垢版 |
2016/10/28(金) 08:22:07.95ID:hTOCZhV6
parameter val1 = 11
parameter val2 = val1/2

1011→ビットシフト→0101
で「5」
という切り捨ての認識で大丈夫ですか?
0068774ワット発電中さん
垢版 |
2016/10/28(金) 11:53:59.55ID:cLqT6VZO
せっかくTCLでマクロ作ったのに腹立つことにコンパイラが全然受け付けんな。W
0069774ワット発電中さん
垢版 |
2016/10/28(金) 12:15:31.16ID:cLqT6VZO
モジュールのマッピングってどうしても不細工になるんだが
imageとしては
{dtout, ack} = i2c(clock, reset, dtin);
こういう感じだよな。
そこで考えたのがこれだ!!! どうだ。
//-------------------------------------------------------------
          i2c u1(          //I2C instance
dtout, ack,    // <===          //output
             clock, reset, dtin);//inuput
0070774ワット発電中さん
垢版 |
2016/10/28(金) 12:28:11.55ID:obq+eaMj
>>67
つまりただの除算の切り捨てってこと?
0071774ワット発電中さん
垢版 |
2016/10/28(金) 12:34:59.61ID:8EzvlAZ/
そんな小技を考えなくていい新言語を考えてくれよ
inoutもきれいにかけるようにしてね
0072774ワット発電中さん
垢版 |
2016/10/28(金) 13:01:12.07ID:UghvOnkc
>>70
parameter val1 = 11
parameter val2 = val1/3
ビットシフトなら↑とかどうするんだよ?
0073774ワット発電中さん
垢版 |
2016/10/28(金) 14:20:16.32ID:HcFs76sP
http://zakii.la.coocan.jp/hdl/25_parameter.htm
・・・なぜならば、マクロはどのソースファイル内でdefineしても、FPGA全体のソースファイルに対して有効になるので・・・

この人の認識、合ってる?
AやXを使ってる限りそのようにはならないけど 環境依存?
もし主張通りなら、わざわざ ファイル毎に `include xxxx.v とかする必要がなくなるので
そのコーディングなりを参考にさせて頂きたい
0075774ワット発電中さん
垢版 |
2016/10/28(金) 16:54:56.52ID:mUCi1lfQ
>>53
同感だけど、じゃあどう書く?って言われて有効な方法ないんじゃ?
3行に分ける?
0076774ワット発電中さん
垢版 |
2016/10/28(金) 18:18:50.49ID:ZSf1RGkG
>>73
関係ないけど、include するファイルのファイル名って、みんなどうしてる?
.h は編だし。.vi とか見かけるけど。
0077774ワット発電中さん
垢版 |
2016/10/28(金) 18:38:54.07ID:6QtTsAyX
>>72>>74
ありがと!納得
0079774ワット発電中さん
垢版 |
2016/10/29(土) 10:53:30.12ID:QsWfeqPD
SRFFってどう書いたらいい?
案1
always@(posedge clk or posedge reset)
 if (reset) srff <= 0;
 else if (s | r) srff <= s & ~r;

案2
always@(posedge clk or posedge reset)
 if (reset) srff <= 0;
 else 
  srff <= r ? 0 : 
       s ? 1 : srff;
案3
always @(posedge gclk)
  srff <= (srff & ~r) | ( s & ~r);

アルテラプリミティブXort自動変換の場合
always @(posedge gclk)
  srff <= (srff & ~r) | (~(srff) & s) | ( s & ~r);

s r srff
0  1  x   0
0  0     srff
1  0      1
1  1     ~srff (こいつが入るのはあり?)
0080774ワット発電中さん
垢版 |
2016/10/29(土) 10:56:35.83ID:QsWfeqPD
案3は非同期リセットいれるのを忘れたが、案3がベストか? 案1でこれまで
づっとやってきたんだが(1か月くらいだけど、、、)
0084774ワット発電中さん
垢版 |
2016/10/29(土) 13:03:55.92ID:xeCXpjZp
>>80

always_ff @(poseedge clk)
  if(s)
    q <= 1'b1;
  else if(r)
    q <= 1'b0;

これでいいんじゃないの?
クロック同期のものをSRFFというのかよくわからんけど。SRFF風?
0086774ワット発電中さん
垢版 |
2016/10/29(土) 13:46:41.91ID:y7F5gG4A
それ普通JKって言ったりして。

何なんだよJKビジネスって。
0087774ワット発電中さん
垢版 |
2016/10/29(土) 14:10:57.69ID:QsWfeqPD
>84
 ある寺ではprimitiveに同期srffってあるよ。11で出力が反転するけど。
0088774ワット発電中さん
垢版 |
2016/10/29(土) 14:13:56.21ID:QsWfeqPD
案4
always@(posedge clk or posedge reset)
 if (reset) srff <= 0;
 else srff <= (srff | s) & ~r;

実はこれが正解ね。
0091774ワット発電中さん
垢版 |
2016/10/29(土) 16:05:43.24ID:ijRGJpWi
ソースコードで入力したプログラムにテストフィクチャーを使って動作確認をしたい時
ソースコードはinputにクロック信号がくると仮定して作ったものである場合、テストフィクチャー上ではどのようなプログラムを記述すればよいのでしょうか?
イマイチ使い方がわかっていない状態で、論理合成は成功してるが信号が入ってきた動作確認が何をすれば確認できるのか全くわかっていないです
0092774ワット発電中さん
垢版 |
2016/10/29(土) 16:50:15.83ID:QsWfeqPD
>91
 test benchでググると書き方がわかるよ。
0093774ワット発電中さん
垢版 |
2016/10/31(月) 07:00:40.10ID:o2cah31x
>71
それちょっと考えてみたんだが、言語は作れるとして一般のプログラム言語のように
asmレベルの言語てあるんだろうか?
verilogに落とし込むという手もあるが、verilog自体がかなり抽象的だから細かい
記述がむつかしいよね。でもverilogに落とすのが無難かな。
0094774ワット発電中さん
垢版 |
2016/10/31(月) 07:02:11.15ID:o2cah31x
SystemCで書いたこれって意味わかる?わからんよね。W
C++はすこし使ったことがあるが、これはなんのこっちゃらわからん。どこがどう抽象
化されてるん?
これよりVerilogのほうがマシだろ。W
一体全体何を狙ってるんだろう。予算か。W

# include "systemc.h"
SC_MODULE(adder) // モジュール (クラス) 宣言
{
sc_in<int> a, b; // ポート
sc_out<int> sum;
void do_add() // プロセス
{
sum = a + b;
}
SC_CTOR(adder) // コンストラクタ
{
SC_METHOD(do_add); // カーネルへのdo_addの登録
sensitive << a << b; // do_addのセンシティビティリスト
}
};
0095774ワット発電中さん
垢版 |
2016/10/31(月) 07:03:31.39ID:o2cah31x
A+Bって書くだけなのにこれはやりすぎというもの。W
0097774ワット発電中さん
垢版 |
2016/10/31(月) 11:56:21.38ID:nEjhzlG5
入力判定でon信号がきてから±1秒でスイッチを押せているかどうかと言うのはどの様に書いていけば良いのでしょうか?
0098774ワット発電中さん
垢版 |
2016/10/31(月) 14:23:08.85ID:o2cah31x
if(スイッチが押されて1秒以内に入力判定が来た)or
(入力判定ONから1秒以内にスイッチが押されたか)
OK
else
NG
0099774ワット発電中さん
垢版 |
2016/10/31(月) 15:10:18.50ID:VfOGKPRp
天才やな
0100774ワット発電中さん
垢版 |
2016/10/31(月) 17:15:41.35ID:zgPTqaik
>on信号がきてから±1秒でスイッチを押せているかどうか
±1秒というのがわからん
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況