📄 counter16.v
字号:
// 实验名称 : 16位涟波计数器
// 程序名称 : counter16.v
// 日 期 : 2001/12/18
//*********************************************************
// 定义模块(module)
//*********************************************************
module counter16( reset_n, clk_in, clk16_out );
input reset_n; // 重置讯号输入
input clk_in; // 系统时脉输入
output [15:0] clk16_out; // 16位计数值输出
//*********************************************************
// 宣告制作一个16位涟波计数器所需要的缓存器和接线。
reg [15:0] clk16_out;
wire clk16_out0 = clk16_out[0];
wire clk16_out1 = clk16_out[1];
wire clk16_out2 = clk16_out[2];
wire clk16_out3 = clk16_out[3];
wire clk16_out4 = clk16_out[4];
wire clk16_out5 = clk16_out[5];
wire clk16_out6 = clk16_out[6];
wire clk16_out7 = clk16_out[7];
wire clk16_out8 = clk16_out[8];
wire clk16_out9 = clk16_out[9];
wire clk16_out10 = clk16_out[10];
wire clk16_out11 = clk16_out[11];
wire clk16_out12 = clk16_out[12];
wire clk16_out13 = clk16_out[13];
wire clk16_out14 = clk16_out[14];
// 使用标准的D-Type Filp-Flop描述语法。
// 以宣告的缓存器和接线顺序连结正反器,
// 实际制作一个16位的涟波计数器。
always @( negedge reset_n or negedge clk_in )
if( !reset_n ) clk16_out[0] <= 0;
else clk16_out[0] <= !clk16_out[0];
always @( negedge reset_n or negedge clk16_out0 )
if( !reset_n ) clk16_out[1] <= 0;
else clk16_out[1] <= !clk16_out[1];
always @( negedge reset_n or negedge clk16_out1 )
if( !reset_n ) clk16_out[2] <= 0;
else clk16_out[2] <= !clk16_out[2];
always @( negedge reset_n or negedge clk16_out2 )
if( !reset_n ) clk16_out[3] <= 0;
else clk16_out[3] <= !clk16_out[3];
always @( negedge reset_n or negedge clk16_out3 )
if( !reset_n ) clk16_out[4] <= 0;
else clk16_out[4] <= !clk16_out[4];
always @( negedge reset_n or negedge clk16_out4 )
if( !reset_n ) clk16_out[5] <= 0;
else clk16_out[5] <= !clk16_out[5];
always @( negedge reset_n or negedge clk16_out5 )
if( !reset_n ) clk16_out[6] <= 0;
else clk16_out[6] <= !clk16_out[6];
always @( negedge reset_n or negedge clk16_out6 )
if( !reset_n ) clk16_out[7] <= 0;
else clk16_out[7] <= !clk16_out[7];
always @( negedge reset_n or negedge clk16_out7 )
if( !reset_n ) clk16_out[8] <= 0;
else clk16_out[8] <= !clk16_out[8];
always @( negedge reset_n or negedge clk16_out8 )
if( !reset_n ) clk16_out[9] <= 0;
else clk16_out[9] <= !clk16_out[9];
always @( negedge reset_n or negedge clk16_out9 )
if( !reset_n ) clk16_out[10] <= 0;
else clk16_out[10] <= !clk16_out[10];
always @( negedge reset_n or negedge clk16_out10 )
if( !reset_n ) clk16_out[11] <= 0;
else clk16_out[11] <= !clk16_out[11];
always @( negedge reset_n or negedge clk16_out11 )
if( !reset_n ) clk16_out[12] <= 0;
else clk16_out[12] <= !clk16_out[12];
always @( negedge reset_n or negedge clk16_out12 )
if( !reset_n ) clk16_out[13] <= 0;
else clk16_out[13] <= !clk16_out[13];
always @( negedge reset_n or negedge clk16_out13 )
if( !reset_n ) clk16_out[14] <= 0;
else clk16_out[14] <= !clk16_out[14];
always @( negedge reset_n or negedge clk16_out14 )
if( !reset_n ) clk16_out[15] <= 0;
else clk16_out[15] <= !clk16_out[15];
//*********************************************************
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -