你好,使用以下程序即可,使用时只需改变N值,N的取值大小请看注释,此程序适合对任意时钟的整数分频(包括奇偶),此程序已通过验证。根据你的情况,想得到1HZ,N取50000000即可;想得到5HZ,N取10000000即可。/Author:BobLiuE-mail:shuangfeiyanworld@163comDevice:EP2C8Q208C8Tool:Quartus81Function:实现时钟的任意整数分频Version:2012-1-9v10/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@(posedgeCLK)beginif(N%2==0)//如果N为偶数beginif(N==2)//如果N为2CLK_div_N_1<=~CLK_div_N_1;elsebeginif(cnt1==(N-2)/2)begincnt1<=0;CLK_div_N_1<=~CLK_div_N_1;endelsecnt1<=cnt1+1;endendelse//如果N为奇数beginif(cnt1==N-1)cnt1<=0;elsecnt1<=cnt1+1;if((cnt1==N-1)||(cnt1==(N-1)/2))CLK_div_N_1<=~CLK_div_N_1;else;endend/产生备用时钟2/wireCLK0=(N%2)(~CLK):0;//如果N为偶数,备用时钟2(CLK_div_N_2)恒为0,即不需要用到此备用时钟reg[31:0]cnt2;regCLK_div_N_2;always@(posedgeCLK0)beginif(cnt2==N-1)cnt2<=0;elsecnt2<=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--BobLiu原创
以上就是关于二位整数平方运算器verilog语言实现,课程设计呀全部的内容,包括:二位整数平方运算器verilog语言实现,课程设计呀、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)