作者: peterlin0224 (普通人) 看板: Tech_Job
標題: [請益] 請教邏輯電路合成問題
時間: Thu May 17 04:00:33 2012
小弟今天跑DC合成後,遇到一個怪問題
雖說這個RTL deign是別人做的
但是看起來它的基本coding沒問題
卻遇到底下問題:
flip-flop的clock合成成latch電路, 導致跑coverage時,
report這個flip-flop沒有測到.
這個clock是這個module的input port, 合成時有下constraint,
也有請它分析IN to REG / REG to REG/....等等的timing
不過因為DC把clock合成成latch,
所以實際合完的flip-flop clock是gated過後的clock....Orz
他的coding如下:
always @(posedge clk or negedge rst_n) begin
if(~rst_n) A <= 8'd0;
else begin
if(~B)
A <= C;
else
A <= A
end
end
=> 結果合完後, 接到flip-flop的clock是 clk的latch output
我有試過把combinational 和sequential分成兩個always來寫
結果一樣
不知道大家有沒有遇過這樣的問題,
怎麼解決??
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.42.249
→ uxijgil:你的意思是 clk變成generated clock ? 05/17 04:25
標題: [請益] 請教邏輯電路合成問題
時間: Thu May 17 04:00:33 2012
小弟今天跑DC合成後,遇到一個怪問題
雖說這個RTL deign是別人做的
但是看起來它的基本coding沒問題
卻遇到底下問題:
flip-flop的clock合成成latch電路, 導致跑coverage時,
report這個flip-flop沒有測到.
這個clock是這個module的input port, 合成時有下constraint,
也有請它分析IN to REG / REG to REG/....等等的timing
不過因為DC把clock合成成latch,
所以實際合完的flip-flop clock是gated過後的clock....Orz
他的coding如下:
always @(posedge clk or negedge rst_n) begin
if(~rst_n) A <= 8'd0;
else begin
if(~B)
A <= C;
else
A <= A
end
end
=> 結果合完後, 接到flip-flop的clock是 clk的latch output
我有試過把combinational 和sequential分成兩個always來寫
結果一樣
不知道大家有沒有遇過這樣的問題,
怎麼解決??
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.42.249
→ uxijgil:你的意思是 clk變成generated clock ? 05/17 04:25
全站熱搜
留言列表