實(shí)現(xiàn)三分頻電路最簡單的是:
利用計(jì)數(shù)器實(shí)現(xiàn)。
時(shí)序圖分析(本人比較懶,平常科研忙,所以直接手畫時(shí)序圖了,懶得用軟件畫了):
直接上圖分析:利用計(jì)數(shù)器每隔三個(gè)周期信號翻轉(zhuǎn)一次,同時(shí)在不同的計(jì)數(shù)下翻轉(zhuǎn)得到的同步信號
clk_1和clk_2,再利用異或即可實(shí)現(xiàn)出一個(gè)不同占空比的三分頻信號(同樣的方法也可擴(kuò)展到其他奇數(shù)分頻設(shè)計(jì)中)。例如占空比50%:
module Div_three(
input clk,
input rst_n,
output div_three
);
reg [1:0] cnt;
reg div_clk1;
reg div_clk2;
always @(posedge clk or negedge rst_n)begin
if(rst_n == 1'b0)begin
cnt <= 0;
end
else if(cnt == 2)
cnt <= 0;
else begin
cnt <= cnt + 1;
end
end
always @(posedge clk or negedge rst_n)begin
if(rst_n == 1'b0)begin
div_clk1 <= 0;
end
else if(cnt == 0)begin
div_clk1 <= ~div_clk1;
end
else
div_clk1 <= div_clk1;
end
always @(negedge clk or negedge rst_n)begin
if(rst_n == 1'b0)begin
div_clk2 <= 0;
end
else if(cnt == 2)begin
div_clk2 <= ~div_clk2;
end
else
div_clk2 <= div_clk2;
end
assign div_three = div_clk2 ^ div_clk1;
endmodule
占空比三分之一:
只用將上述代碼中div_clk2翻轉(zhuǎn)規(guī)律更改為 cnt==1 ,并且改為上升沿采樣:文章來源:http://www.zghlxwxcb.cn/news/detail-602261.html
always @(posedgeclk or negedge rst_n)begin
if(rst_n == 1'b0)begin
div_clk2 <= 0;
end
else if(cnt == 1)begin
div_clk2 <= ~div_clk2;
end
else
div_clk2 <= div_clk2;
end
assign div_three = div_clk2 ^ div_clk1;
占空比三分之二:
將上述代碼中div_clk2翻轉(zhuǎn)規(guī)律更改為 cnt==2 ,并且也是上升沿采樣:文章來源地址http://www.zghlxwxcb.cn/news/detail-602261.html
always @(posedgeclk or negedge rst_n)begin
if(rst_n == 1'b0)begin
div_clk2 <= 0;
end
else if(cnt == 2)begin
div_clk2 <= ~div_clk2;
end
else
div_clk2 <= div_clk2;
end
assign div_three = div_clk2 ^ div_clk1;
到了這里,關(guān)于IC面試??碱} Verilog三分頻電路設(shè)計(jì)(占空比50%,三分之一,三分之二)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!