附录
设计源代码:
1. 计数器的分频模块 Verilog HDL 源代码(div.v):
module div(clk_50M,clk,reset);// 端口的定义
input clk_50M,reset;// 总的时钟是 50M
output clk;//分频后输出的时钟
reg clk;
reg [31:0] count;//32 位的计数器
always@ (posedge clk_50M or negedge reset)//异步复位
begin
if(!reset)
begin
clk<='d0;
count=32'd0;
end
else if(count==32'd25_000000)//判断计时器记到了 25000000 吗?
begin
count<=32'd0;//计到 25_000000 计数器清零
clk<=~clk;//输出的时钟取反
end//end begin
else count<=count+1'd1;// 没计到 25000000 计数器加一
end//end always
endmodule // 结束分频模块
2.数码管的分频模块 Verilog HDL 源代码(div1.v):
module div1(clk_50M,clk1,reset);// 端口的定义
input clk_50M,reset;// 总的时钟是 50M
output clk1;//分频后输出的时钟 1KHZ
reg clk1;
reg [31:0] count;//32 位的计数器
always@ (posedge clk_50M or negedge reset)//异步复位
begin
if(!reset)
begin
clk1<='d0;
count=32'd0;
end
else if(count==32'd25_000)// 判断计时器记到了 25_000 吗
begin
count<=32'd0;//计到 25_000 计数器清零
clk1<=~clk1;//输出的时钟取反
end//end begin
else count<=count+1'd1;// 没计到 25_000 计数器加一
end//end always