[問題] Verilog中Assign reg會不會衝突

看板Electronics作者 (我是學電的收回了 現在蠻)時間3年前 (2021/03/25 17:47), 3年前編輯推噓15(15024)
留言39則, 12人參與, 3年前最新討論串1/1
如題,我在一本書中看到一段講D Flip-flop的code 他的code有一段如下 always@(negedge clk) begin q=d; qbar=~d; end always@(reset) if(reset) begin assign q=1'b0; assign qbar=1'b1; end else begin deassign q; deassign qbar; end endmodule 這段文字中的q和qbar都是用reg儲存 並且在reset的時候鎖住q=0,qbar=1,reset解除才可變更q值 我想問的問題是,假設reset=1,在negedge被觸發的時候,q不會因為被assign成d, 又被assign成0,導致error發生嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.117.248.2 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1616665650.A.F9C.html

03/25 18:25, 3年前 , 1F
現在好像不能這樣寫
03/25 18:25, 1F

03/25 21:42, 3年前 , 2F
在always block內要宣告reg,宣告reg就不能用assign
03/25 21:42, 2F
reg不是就是一種assign嗎 大的意思是不能把值用assign把本來的蓋掉嗎 謝謝

03/26 01:47, 3年前 , 3F
現在不要用這個了 用always_ff _comb _latch
03/26 01:47, 3F
好我晚點找找 謝謝你

03/26 01:55, 3年前 , 4F
這樣寫滿滿的 synth errors 學一下新的吧
03/26 01:55, 4F

03/26 08:57, 3年前 , 5F
問一下哪本書
03/26 08:57, 5F
黃英叡的verilog硬體描述語言 蠻舊的書了 十年有 ※ 編輯: eroha90021 (140.117.248.3 臺灣), 03/26/2021 11:08:09 ※ 編輯: eroha90021 (223.139.214.247 臺灣), 03/26/2021 11:08:45

03/26 11:12, 3年前 , 6F
assign是用來描述組合邏輯的
03/26 11:12, 6F
大大的意思是如果有讓reg assign wire的話,如果要再接其他線路,要先deassign這樣嗎

03/26 11:12, 3年前 , 7F
你不能用英文去理解要用verilog去理解
03/26 11:12, 7F
※ 編輯: eroha90021 (223.139.214.247 臺灣), 03/26/2021 11:13:33 ※ 編輯: eroha90021 (223.139.214.247 臺灣), 03/26/2021 11:15:12

03/26 11:17, 3年前 , 8F
不是啦,reg就不是組合邏輯啊
03/26 11:17, 8F

03/26 11:26, 3年前 , 9F
現在也沒什麼在用deassign
03/26 11:26, 9F

03/26 11:33, 3年前 , 10F
寫code之前先去了解一下combinational 跟 sequential lo
03/26 11:33, 10F

03/26 11:33, 3年前 , 11F
gic吧
03/26 11:33, 11F

03/26 11:35, 3年前 , 12F
接下來去了解怎麼寫會合出怎麼樣的電路,才不會寫出沒法
03/26 11:35, 12F

03/26 11:35, 3年前 , 13F
合成的code
03/26 11:35, 13F

03/26 12:03, 3年前 , 14F
assign 不能在always裡 給你參考一下
03/26 12:03, 14F

03/26 12:04, 3年前 , 15F
那一個連續概念 也就是他是條線
03/26 12:04, 15F

03/26 12:04, 3年前 , 16F
這算很舊的verilog 現今SV都會要求寫_ff _comb _latc
03/26 12:04, 16F

03/26 12:05, 3年前 , 17F
h 這可以幫助後面的工具避掉很多問題
03/26 12:05, 17F

03/26 15:45, 3年前 , 18F
推樓上;另外這本書應該有 20 年了?建議換一本新一點的
03/26 15:45, 18F

03/26 17:59, 3年前 , 19F
以verilog來說
03/26 17:59, 19F

03/26 17:59, 3年前 , 20F
只要記等號左邊用在assign要宣告成wire
03/26 17:59, 20F

03/26 17:59, 3年前 , 21F
用在always要宣告成reg,跟是不是flip flop無關
03/26 17:59, 21F

03/26 18:01, 3年前 , 22F
如果是用systemverilog
03/26 18:01, 22F

03/26 18:01, 3年前 , 23F
所有都宣告成logic,使用的話就照m大所說的
03/26 18:01, 23F

03/26 20:59, 3年前 , 24F
reg也可以是combinational logic,如果沒用posedge or nege
03/26 20:59, 24F

03/26 20:59, 3年前 , 25F
dge
03/26 20:59, 25F

03/26 21:05, 3年前 , 26F
說實話,我從沒用過deassign
03/26 21:05, 26F

03/26 21:12, 3年前 , 27F
我覺得現在這樣寫會報錯,因為你有兩處q在左邊。
03/26 21:12, 27F
這樣這本書的寫法感覺不太ok的意思嗎

03/26 21:16, 3年前 , 28F
always裡面也有可能是wire,不然一堆combination你每
03/26 21:16, 28F

03/26 21:16, 3年前 , 29F
個都寫一次assign?
03/26 21:16, 29F

03/26 21:37, 3年前 , 30F
裡面就blocking assignment就好了啊= ="
03/26 21:37, 30F

03/26 21:38, 3年前 , 31F
說到logic 對port 要小心一點用就是了
03/26 21:38, 31F

03/27 11:21, 3年前 , 32F
這本書不要在看了,會害你
03/27 11:21, 32F

03/28 01:48, 3年前 , 33F
這coding有點恐怖= =
03/28 01:48, 33F
好 謝謝 這本書其實錯蠻多的 但我剛學幾個禮拜而已 想說就先看個語法這樣

03/28 01:48, 3年前 , 34F
換本新書看吧
03/28 01:48, 34F

03/28 01:49, 3年前 , 35F
不然你遲早害死自己 …
03/28 01:49, 35F

03/28 16:24, 3年前 , 36F
宣告成reg不一定是register,reg也可以用來描述組合電路.
03/28 16:24, 36F

03/29 19:11, 3年前 , 37F
Assign都用在wire吧...
03/29 19:11, 37F

03/29 19:11, 3年前 , 38F
不會用在always block裡面
03/29 19:11, 38F

03/30 19:21, 3年前 , 39F
謝謝大家的回覆 我都有看過了 謝謝
03/30 19:21, 39F
※ 編輯: eroha90021 (223.138.126.0 臺灣), 03/30/2021 19:24:21 ※ 編輯: eroha90021 (223.138.126.0 臺灣), 03/30/2021 19:29:38
文章代碼(AID): #1WN5mo-S (Electronics)