Verilog代码,用于从9999到0630的7段显示中的向下计数

Verilog代码,用于从9999到0630的7段显示中的向下计数,verilog,counter,Verilog,Counter,我想写一个代码,从9999倒计时到0630,当按下FPGA Nexys3上的重置按钮时,初始值将出现(9999) 这是我的框图: 我已经完成了慢时钟模块,但我不知道应该在哪个模块中写入重置代码?那应该是什么呢 如果我知道计数器(项目模块)的代码,我将能够编写其余模块 请帮我写计数器代码和重置代码 复位功能应使输出和内部寄存器分配初始计数器值 重置值为9999。计数器应在每个时钟脉冲上从9999倒计时到0630。到达0630后,它将复位,并且可以选择给出out脉冲指示 下面是一个示例代码,这可能

我想写一个代码,从9999倒计时到0630,当按下FPGA Nexys3上的重置按钮时,初始值将出现(9999)

这是我的框图:

我已经完成了慢时钟模块,但我不知道应该在哪个模块中写入重置代码?那应该是什么呢

如果我知道计数器(项目模块)的代码,我将能够编写其余模块


请帮我写计数器代码和重置代码

复位功能应使输出和内部寄存器分配初始计数器值

重置值为9999。计数器应在每个时钟脉冲上从9999倒计时到0630。到达0630后,它将复位,并且可以选择给出
out
脉冲指示

下面是一个示例代码,这可能不是最佳版本

module ctr(counter,reset,clk)//out

output reg [13:0] counter; 
// output reg out; 
input reset;
input clk;
always @(posedge clk, negedge reset) begin 
if(!reset) begin
  counter <= 14'd9999; 
  // out<=0;
end 
else begin
  if (counter == 14'd0630) begin 
    counter <= 14'd9999; 
    // out <= ~out; 
  end 
  else begin 
    counter <= counter -1; 
  end 
end
end
endmodule
模块ctr(计数器、复位、时钟)//输出
输出寄存器[13:0]计数器;
//输出寄存器输出;
输入复位;
输入时钟;
始终@(posedge时钟、negedge重置)开始
如果(!重置)开始

到目前为止你试过什么?请详细说明。这可以通过一个复位逻辑和一个always块轻松完成。有关上下计数器,请参阅和链接。您将了解计数器的工作原理。我是否需要添加另一个模块来将二进制文件转换为BCD,以便在FPGA板上进行测试?是的。我认为是这样。
bin2bcd
模块将从该计数器获取输出并给出BCD输出。这将是纯组合模块,因此理想情况下,没有输出延迟