[問題] verilog觀念和如何設計

看板Electronics作者 (EEcheng)時間5年前 (2019/04/12 12:28), 編輯推噓6(608)
留言14則, 7人參與, 5年前最新討論串1/1
各位好, 我想請教幾個觀念, 和一個設計verilog的想法 先問個觀念: 1. 一個module結束的時機在甚麼時候? 是output被賦值的瞬間嗎? 若是這樣, 那如果我設計一個pipeline(多個always@(posedge clk), 最後一個always block做output的給值) 那這樣不就在第一個clk的 時候output就會接到一個不知名的訊號然後結束嗎, 而不會等到真正 的值來? 2. 組合電路會和循序電路寫在同一個模組嗎? 如下 always@(posedge clk)begin A區........ end ......在兩個block中間做一個組合電路 always@(posedge clk)begin B區...... end 最後問一個關於怎麼設計的問題: -- 我目前有一個變數fraction, 我想在每一次迭代中檢查fraction的最高 bit是否為1, 不是則<<, 並且進入下一次迭代 -- 目前架構: always@(input1)begin .....做些處理得到fraction end always@(...... ....迭代處理fraction並決定輸出 .... end -- 目前遇到的困難: 1. 輸入並沒有提供clock, 但是我嘗試在module裡面做一個clk, 但模擬 器就會報error. ( 我的clk: always#10 clk~=clk; ) 若我沒有clock, 是否就無法迭代? 2. 無法確保把正確的值給輸出前, 下一個input訊號就來了, 還是我不需 管這個? 問題有點多, 先在這裡感謝各位的幫忙 ^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.112.53 ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1555043310.A.C31.html

04/12 12:47, 5年前 , 1F
一個module結束的時機在,你書念的不夠多
04/12 12:47, 1F

04/12 13:12, 5年前 , 2F
pipeline你應該要知道哪個時間的值是你要的..
04/12 13:12, 2F

04/12 16:23, 5年前 , 3F
先丟掉你軟體語言的包袱 module沒有結束的概念 它是一
04/12 16:23, 3F

04/12 16:23, 5年前 , 4F
塊電路
04/12 16:23, 4F

04/12 18:39, 5年前 , 5F
請看邏輯設計/數位邏輯 的書
04/12 18:39, 5F

04/13 23:35, 5年前 , 6F
寒假報一下cic開的verilog課程吧,成大有開課
04/13 23:35, 6F

04/21 02:29, 5年前 , 7F
assign 跟 always比較一下
04/21 02:29, 7F

04/28 21:46, 5年前 , 8F
1. module 是一塊電路,會一直存在著,你給了它什麼i
04/28 21:46, 8F

04/28 21:46, 5年前 , 9F
nput它就會輸出相應的結果
04/28 21:46, 9F

04/28 21:46, 5年前 , 10F
2. 組合和循序邏輯可以分開也可以合在一起,不一定要
04/28 21:46, 10F

04/28 21:46, 5年前 , 11F
分開寫,分開寫的話循序邏輯就只有把next值給到curre
04/28 21:46, 11F

04/28 21:46, 5年前 , 12F
nt值,組合邏輯寫你的function
04/28 21:46, 12F

04/28 21:46, 5年前 , 13F
3. 要在一個clk做完的話,可以用if或case來判斷要shi
04/28 21:46, 13F

04/28 21:46, 5年前 , 14F
ft幾次才能讓MSB為1,不然就會產生combination loop
04/28 21:46, 14F
文章代碼(AID): #1Si1Fkmn (Electronics)