马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
这是一个50 M 分频产生880 Hz,而分频得到的信号的占空比为30%的程序 56818×30%=17045 module div(clk,reset,clk_div,counter); input clk,reset; output clk_div; output [15:0] counter; reg [15:0] counter; reg clk_div; always @(posedge clk) if(!reset) counter <= 0;
else if(counter==56817) counter <= 0;
else counter <= counter+1; always @(posedge clk) if(!reset) clk_div <= 0;
else if(counter<17045) clk_div <= 1;
else clk_div <= 0; endmodule 小生刚接触Verilog,有很多不懂,大虾们帮一下哈··· question one: 50MHZ的意思是一秒钟时钟信号跳变50000000次,而分频的结果是一秒钟clk_div 跳变880次,那么在count为17045时就跳变了,但是频率应该就不是880HZ了? 应是50000000*1/17045HZ? question two : 还有counter计数是每隔多长时间记一个数呢(十进制)? three:在quartus写的程序都必须要写测试文件才可以验证其逻辑正确性吗? 谢啦···· |