[爆卦]verilog # delay合成是什麼?優點缺點精華區懶人包

為什麼這篇verilog # delay合成鄉民發文收入到精華區:因為在verilog # delay合成這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者pdgwu (熙)看板Electronics標題[問題] verilog 組合邏輯的delay時...


// module decoder
input clk;
input reset;
input [7:0] inData;

output [15:0] outData;

reg [3:0] state;
reg [3:0] next_state;

// sequential logic
always @(posedge clk or posedge reset)
begin
if(reset)
state <= S0;
else
state <= next_state;
end

// combinational logic : FSM and Decoder
always @(state or inData)
begin
outData = 16'h0000;
case(state)
S0:
begin
// ...
next_state = S1;
end
S1:
begin
// ...
case(inData[3:0])
4'b0000:
outData = 16'h1234;
4'b0001:
outData = 16'h5678;
...
endcase
next_state = S2;
end
S2:
...(略)
default:
...
endcase
end

觀察 timing analyzer 發現
worst-case tpd 約為18ns,worst-case tco 約為10ns
Clock "clk" internal fmax 可達340MHz

若上述module為M1,且M1輸出的結果要作為某個FIFO(rising edge trigger)的輸入
目前希望使用100MHz作為M1和FIFO的clock來源

但是根據上面分析卻發現組合邏輯在tpd的延遲超過了一個clock cycle(10n)的長度
如此一來其後的FIFO無法正確寫入M1來的資料

是否一定要將clock頻率降低來配合組合邏輯的延遲...
或者改變M1輸出維持2個clocks以上-->但是這樣跟把clock頻率降低好像類似 ~"~

還是有其他coding的技巧可以合成出較小延遲的電路

一般這樣的問題該如何解決呢? 為何有些電路都可以做到很高的處理頻率?

謝謝!

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.193.11.210
obov:想辦法optimize ur comb logic for min delay 10/27 08:49
obov:如果不行 就得重改state & logic 10/27 08:51
horsehead:你是使用altera的maxii對吧 去quartus ii 裡面的 10/27 23:35
horsehead:assignment editor 下 tpd 的 timing constraint 10/27 23:36
horsehead:指定最小tpd數值 但是每個晶片都有其optimize的極限 10/27 23:38
horsehead:所以不一定會過 如果無法達成就只能改你電路架構了 10/27 23:38
horsehead:不過把tpd用timing constraint從18改成10應該還可以 10/27 23:42
horsehead:就先試試看吧 10/27 23:42
pdgwu:感謝兩位的寶貴意見,先試著做做看,有問題再向各位請教m()m 10/28 14:23

你可能也想看看

搜尋相關網站