|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
会Verilog的高手指点一下俺编的150:250分频器吧。仿真结果显示这个程序根本不能对输入时钟进行150:250分频!!但我的确找不出错误所在。拜托各位老大。
module entity(clk, clk_out)
input clk;
output clk_out;
reg high,low;
reg [7:0] rst_number_high;
reg [7:0] rst_number_low;
parameter count_rst_high=250, count_rst_low=150;
//开始对时钟信号进行150:250分频,产生clk_out.
always@(posedge camclk)
begin
if(triger_in)
begin
single_to_board[5]<=1'b0;
rst_number_high<=8'b0000_0000;
rst_number_low<=8'b0000_0000;
high <=1'b1;
low <=1'b0;//定义high和low的目的:让clk_out的高低电平不同时计数
end
else begin
if(low==0&&high==1) begin//开始高电平计数
if(rst_number_high==count_rst_high-8'b0000_0001)
begin
single_to_board[5]<=~single_to_board[5];
rst_number_high<=8'b0000_0000;
low<=1;
high<=0;
end
else
rst_number_high<=rst_number_high+8'b0000_0001;
end
if(low==1&&high==0)begin//开始低电平计数
if(rst_number_low==count_rst_low-8'b0000_0001)
begin
single_to_board[5]<=~single_to_board[5];
rst_number_low<=8'b0000_0000;
low<=0;
high<=1;
end
else
rst_number_low<=rst_number_low+8'b0000_0001;
end
end
end
endmodule |
|