always@() begin
if(rst_n==0) begin
ena<=1;
end
else begin
if (ena_cnt==您需要的分频等级) begin
ena<=1;
end
end
这个程序里,full寄存器一直没有被复位。
always@(posedge clk)
begin
if(cnt8==8'hff)
begin
cnt8=data;
full<=1;
end
else
begin
cnt8=cnt8+1;
full<=1;//把这一句改成full<=0试试
end
end
module tb_clk;
// Inputs
reg clk_100m;
reg rst;
// Outputs
wire clk_1m;
// Instantiate the Unit Under Test (UUT)
sdio_slave uut (
clk_100m(clk_100m),
rst(rst),
clk_1m(clk_1m)
);
initial begin
// Initialize Inputs
clk_100m=0;
rst= 0;
// Wait 100 ns for global reset to finish
#100;
rst=1;
#100000;
$finish
end
always #5 clk_100m=!clk_100m;
endmodule
O了 但是就怕给了你代码,你连仿真软件都不会用
你好,使用以下程序即可,使用时只需改变N值,N的取值大小请看注释,此程序适合对任意时钟的整数分频(包括奇偶),此程序已通过验证。根据你的情况,想得到1HZ,N取50000000即可;想得到5HZ,N取10000000即可。
/
Author:Bob Liu
E-mail:shuangfeiyanworld@163com
Device:EP2C8Q208C8
Tool:Quartus 81
Function: 实现时钟的任意整数分频
Version:2012-1-9 v10
/
modulediv_N(
inputCLK,// 基准时钟
outputCLK_div_N// N分频后得到的时钟
);
wire[31:0]N=20;// N为分频系数,N≥2即可,N的值为CLK除以CLK_div_N后取整(四舍五入)
/ 产生备用时钟1 /
reg[31:0]cnt1;
regCLK_div_N_1;
always @ (posedge CLK)
begin
if(N%2==0)// 如果N为偶数
begin
if(N==2)// 如果N为2
CLK_div_N_1 <= ~CLK_div_N_1;
else
begin
if(cnt1==(N-2)/2)
begin
cnt1 <= 0;
CLK_div_N_1 <= ~CLK_div_N_1;
end
else
cnt1 <= cnt1+1;
end
end
else// 如果N为奇数
begin
if(cnt1==N-1)
cnt1 <= 0;
else
cnt1 <= cnt1+1;
if((cnt1==N-1) || (cnt1==(N-1)/2))
CLK_div_N_1 <= ~CLK_div_N_1;
else ;
end
end
/ 产生备用时钟2 /
wireCLK0=(N%2) (~CLK):0;// 如果N为偶数,备用时钟2(CLK_div_N_2)恒为0,即不需要用到此备用时钟
reg[31:0]cnt2;
regCLK_div_N_2;
always @ (posedge CLK0)
begin
if(cnt2==N-1)
cnt2 <= 0;
else
cnt2 <= cnt2+1;
if((cnt2==N-1) || (cnt2==(N-1)/2))
CLK_div_N_2 <= ~CLK_div_N_2;
end
/ 产生最终分频时钟/
assignCLK_div_N = CLK_div_N_1 | CLK_div_N_2;
endmodule
-- Bob Liu原创
这是个分频的模块
module clk434(clkin,clkout);
input clkin;
output clkout;
reg [8:0]num;
reg clkout;
always @(posedge clkin)
begin
if(num==324)num=0; ----只需要修改这里的324和下面的162就行了
else num=num+1; ----- 比如50M分1MHz,clkin=50M,50000000/1000000=50,就把324改为50,162改为50/2=25
if(num>162)clkout=1;
else clkout=0;
end
endmodule
以上就是关于那位大哥帮忙给我写个分频器的程序,要C语言或者VERILOG语言的,谢谢!!全部的内容,包括:那位大哥帮忙给我写个分频器的程序,要C语言或者VERILOG语言的,谢谢!!、FPGA书上的分频器程序,一模一样却仿真不出来,结果一直为0。、用verilog写了一段分频器的程序,想仿真出图是不是需要些testbench,如果需要下面的验证程序怎么写啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)