看板 Electronics 關於我們 聯絡資訊
如題,我在一本書中看到一段講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