[爆卦]Verilog assign reg是什麼?優點缺點精華區懶人包

為什麼這篇Verilog assign reg鄉民發文收入到精華區:因為在Verilog assign reg這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者eroha90021 (我是學電的收回了 現在蠻)看板Electronics標題[問題] Ver...


如題,我在一本書中看到一段講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
samm3320: 現在好像不能這樣寫 03/25 18:25
Battie: 在always block內要宣告reg,宣告reg就不能用assign 03/25 21:42
reg不是就是一種assign嗎 大的意思是不能把值用assign把本來的蓋掉嗎 謝謝
mmonkeyboyy: 現在不要用這個了 用always_ff _comb _latch 03/26 01:47
好我晚點找找 謝謝你
mmonkeyboyy: 這樣寫滿滿的 synth errors 學一下新的吧 03/26 01:55
kk887799: 問一下哪本書 03/26 08:57
黃英叡的verilog硬體描述語言 蠻舊的書了 十年有
※ 編輯: eroha90021 (140.117.248.3 臺灣), 03/26/2021 11:08:09
※ 編輯: eroha90021 (223.139.214.247 臺灣), 03/26/2021 11:08:45
samm3320: assign是用來描述組合邏輯的 03/26 11:12
大大的意思是如果有讓reg assign wire的話,如果要再接其他線路,要先deassign這樣嗎
samm3320: 你不能用英文去理解要用verilog去理解 03/26 11:12
※ 編輯: eroha90021 (223.139.214.247 臺灣), 03/26/2021 11:13:33
※ 編輯: eroha90021 (223.139.214.247 臺灣), 03/26/2021 11:15:12
samm3320: 不是啦,reg就不是組合邏輯啊 03/26 11:17
samm3320: 現在也沒什麼在用deassign 03/26 11:26
samm3320: 寫code之前先去了解一下combinational 跟 sequential lo 03/26 11:33
samm3320: gic吧 03/26 11:33
samm3320: 接下來去了解怎麼寫會合出怎麼樣的電路,才不會寫出沒法 03/26 11:35
samm3320: 合成的code 03/26 11:35
mmonkeyboyy: assign 不能在always裡 給你參考一下 03/26 12:03
mmonkeyboyy: 那一個連續概念 也就是他是條線 03/26 12:04
mmonkeyboyy: 這算很舊的verilog 現今SV都會要求寫_ff _comb _latc 03/26 12:04
mmonkeyboyy: h 這可以幫助後面的工具避掉很多問題 03/26 12:05
JerroLi: 推樓上;另外這本書應該有 20 年了?建議換一本新一點的 03/26 15:45
r901042004: 以verilog來說 03/26 17:59
r901042004: 只要記等號左邊用在assign要宣告成wire 03/26 17:59
r901042004: 用在always要宣告成reg,跟是不是flip flop無關 03/26 17:59
r901042004: 如果是用systemverilog 03/26 18:01
r901042004: 所有都宣告成logic,使用的話就照m大所說的 03/26 18:01
Battie: reg也可以是combinational logic,如果沒用posedge or nege 03/26 20:59
Battie: dge 03/26 20:59
Battie: 說實話,我從沒用過deassign 03/26 21:05
HenryLin123: 我覺得現在這樣寫會報錯,因為你有兩處q在左邊。 03/26 21:12
這樣這本書的寫法感覺不太ok的意思嗎
HenryLin123: always裡面也有可能是wire,不然一堆combination你每 03/26 21:16
HenryLin123: 個都寫一次assign? 03/26 21:16
mmonkeyboyy: 裡面就blocking assignment就好了啊= =" 03/26 21:37
mmonkeyboyy: 說到logic 對port 要小心一點用就是了 03/26 21:38
letitgo02: 這本書不要在看了,會害你 03/27 11:21
bookstar07: 這coding有點恐怖= = 03/28 01:48
好 謝謝 這本書其實錯蠻多的 但我剛學幾個禮拜而已 想說就先看個語法這樣
bookstar07: 換本新書看吧 03/28 01:48
bookstar07: 不然你遲早害死自己 … 03/28 01:49
g1990822: 宣告成reg不一定是register,reg也可以用來描述組合電路. 03/28 16:24
StrKO: Assign都用在wire吧... 03/29 19:11
StrKO: 不會用在always block裡面 03/29 19:11
eroha90021: 謝謝大家的回覆 我都有看過了 謝謝 03/30 19:21
※ 編輯: eroha90021 (223.138.126.0 臺灣), 03/30/2021 19:24:21
※ 編輯: eroha90021 (223.138.126.0 臺灣), 03/30/2021 19:29:38

你可能也想看看

搜尋相關網站