(3)设计一个具有同步清零、同步置数端的十进制加法计数器。选1Hz信号作为CLK信号,4个LED灯指示计数状态,一个逻辑开关做清零端,另一个逻辑开关做置数端。(选做)
(4)设计一个具有异步清零、同步置数端的4位二进制加法计数器。选1Hz信号作为CLK信号,4个LED灯指示计数状态,一个逻辑开关做清零端,另一个逻辑开关做置数端。(选做) 实验内容 1. 秒脉冲发生器
(1)VERILOG程序
module maichong( input clk,clr, output reg[0:0]q );
reg [26:0] counter; always @(posedge clk)
if(counter==25000000) counter <= 0; else counter <= counter+1; reg clk_div; always @(posedge clk)
if(counter==25000000) clk_div <= ~clk_div; always@(posedge clk_div or posedge clr)
begin if(clr==1) q<=0; else if(q==2) q<=0; else q<=q+1; end endmodule (2)约束文件
NET\NET\
NET\ //LED4
2. 异步清零同步置数四位寄存器
(1)VERILOG程序 module jicunqi( input load, input clk, input clr, input wire [3:0]d, output reg [3:0]q );
reg [27:0]q1;
always @(posedge clk or posedge clr) begin if(clr==1) q1<=0; else q1<=q1+1; end
assign mclk=q1[27];
always @(posedge mclk or posedge clr) begin if(clr==1) q<=0; else if(load==1) q<=d; end endmodule (1)约束文件 NET\NET\NET\
NET\NET\NET\NET\NET\NET\NET\NET\
3. 同步清零同步置数十进制加法器
实验七、时序逻辑电路实验Ⅱ(2学时) 时序逻辑Ⅱ:
(1)用层次化自顶向下的设计方法设计一个60进制计数器,用动态数码管显示计数值,时钟采用1Hz信号,观察计数效果;
(2)用层次化自顶向下的设计方法设计一个24进制计数器,用动态数码管显示计数值,时钟采用1Hz信号,观察计数效果;
(3)设计一个完整的数字钟,小时和分钟用数码管显示,秒用发光二极管闪烁显示,每秒闪烁一次。如有可能,请增加校时功能(选做)
实验内容
1.60进制计数器 (1)VERILOG程序 module top ( input wire clk,
input wire clk0, input wire clr1,
output wire [3:0]Second_an, output wire [6:0]Second_q );
wire jinwei; //模块间链接定义(注意须是wire)
Second instance_Second ( .clk(clk), .sec(sec) );
cnt60 instance_cnt60 ( .clk(sec), .clr(clr), .clk0(clk0),
.cnt60_an(Second_an), .cnt60_q(Second_q), .carry(carry) );
//这里省去了60进制计数器进位输出变量carry
Endmodule module Second( input wire clk,