作者maxwellee (maxwell)
看板Electronics
標題[請益] 關於除頻電路(verilog)
時間Wed Apr 15 17:31:49 2009
我看到的除頻電路有兩種
以要產生2倍週期clk命名為clk2為例
法一:
always@(negedge clk or posedge rst)begin
if(rst)begin
clk2<=0;
end
else begin
clk2<=~clk2;
end
end
----------------
法二:
reg[1:0]ct;
always@(posedge clk or posedge rst)begin
if(rst)begin
ct<=0;
end
else begin
ct<=ct+1'b1;
end
end
assign clk2=ct[0]
--------------------
請問這兩種方法哪種比較好呢?個有什麼優劣點?
或是還有更適合的方法?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 編輯: maxwellee 來自: 203.68.162.102 (04/15 17:34)
1F:推 horsehead:第一種比較好 他經過的組合邏輯較少 延遲 跟 skew 問題 04/15 19:18
2F:→ horsehead:會比第二種來的漂亮一些 04/15 19:18
3F:推 horsehead:修正一下 延遲 跟 skew 問題應該都一樣 差別應該在第一 04/15 19:26
4F:→ horsehead:種的clock source 可以比較快 04/15 19:26
5F:推 fnrj:1 04/16 00:24
6F:推 pierreqq:除2只有好選1了, 第2個是除4的電路... 04/16 09:06
7F:推 horsehead:第二個也是除二 04/16 09:14
8F:推 pierreqq:因為是assign clk2=ct[1]而不是assign clk2=ct[0] 04/16 10:35
拍謝 我修正一下
我測試的結果power第一種方法較小 area第二種方法較小
請問這樣的結果合理嗎?
※ 編輯: maxwellee 來自: 203.68.162.102 (04/16 13:09)
9F:推 deathcustom:實際DFF layout的話似乎一個DFF就KO /2電路了 04/18 05:07