时序逻辑电路的Verilog HDL实现
一.实验要求
(1):编写JK触发器、8位数据锁存器、数据寄存器的Verilog HDL程序,并实现其仿真及其测试程序;
(2):在实验箱上设计含异步清零和同步使能的计数器。
(3):进行波形仿真测试后;画出仿真波形。
(4):写出实验心得
二.实验内容:
(1)1.JK触发器的元件符号如图7.14所示,其中J、K是数据输入端,CLR是复位控制输入端,当CLR=0时,触发器的状态被置为0态;CLK是时钟输入端;Q和QN是触发器的两个互补输出端。
JK触发器的元件符号JK触发器的状态方程为
Q n+1=J Q n+K Q n
JK触发器的verilog HDL程序
module jkff_rs(clk,j,k,q,rs,set);
input clk,j,k,set,rs;
output reg q;
always@(posedge clk,negedge rs,negedge set)
begin if(!rs) q<=1'b0;
else if(!set) q<=1'b1;
else case({j,k})
2'b00:q<=q;
2'b01:q<=1'b0;
2'b10:q<=1'b1;
2'b11:q<=~q;
default:q<=1'bx;
endcase
end
endmodule
JK触发器的功能:带异步清0,异步置1(低电平有效)JK触发器的仿真结果
2.8位数据锁存器锁存器元件符号如图所示。CLR是复位控制输入端,当CLR=0时,8位数据输出Q[7..0]=00000000。ENA是使能控制输入端,当ENA=1时,锁存器处于工作状态,输出Q[7..0]=D[7..0];ENA=0时,锁存器的状态保持不变。OE是三态输出控制端,当OE=1时,输出为高阻态;OE=0时,锁存器为正常输出状态。
8位数据锁存器元件符号
8位数据锁存器的verilog HDL程序
module tt1373(le,oe,q,d);
input le,oe;
input[7:0] d;
output reg[7:0] q;
always @(le,oe,d)
begin if((!oe)&&(le))q<=d;
else q<=8'bz;
end
endmodule
8位数据锁存器的功能:锁存器一次锁存8位数据,功能类似74LS373 8位数据锁存器的仿真结果
3.8位数据寄存器电路的元件符号如图7.18所示,其中CLR是复位控制输入端;LOD是预置控制输入端;S是移位方向控制输入端,当S=1时,是右移移位寄存器,S=0时,是左移移位寄存器;DIR是右移串入输入信号;DIL是左移串入输入信号。
数据寄存器的verilog HDL程序
module reg_w(dout,din,clk,clr);
parameter WIDTH=7;
input clk,clr;
input [WIDTH:0] din;
output reg[WIDTH:0] dout;
always@(posedge clk,posedge clr)
begin if(clr) dout<=0;
else dout<=din;
end
endmodule
数据寄存器的功能:该8位数据寄存器每次对8位并行输入的数据信号进行同步寄存,且具有异步清零端(clr)
数据寄存器的仿真结果
(2).8位二进制计数器的元件符号如图7.20所示,CLR是复位控制输入端;ENA是使能控制输入端;LOAD是预置控制输入端;D[7..0]是8位并行数据输入端;UPDOWN是加减控制输入端,当UPDOWN=0时,计数器作加法操作,UPDOWN=1时,计数器作减法操作;COUT是进/借位输出端。
8位二进制计数器元件符号
含异步清零和同步使能的计数器的verilog程序
module CNT4B(CLK,RST,ENA,CLK_1,RST_1,ENA_1,OUTY,COUT); input CLK,RST,ENA;
output CLK_1,RST_1,ENA_1;
output[3:0] OUTY;
output COUT;
reg[3:0] OUTY;
reg COUT;
wire CLK_1;
wire RST_1;
wire ENA_1;
assign CLK_1 = CLK;
assign RST_1 = RST;
assign ENA_1 = ENA;
always@(posedge CLK or negedge RST)
begin if(!RST)
begin OUTY<=4'b0000;
COUT<=1'b0;
end
else if(ENA) begin OUTY<=OUTY+1'b1;
COUT<=OUTY[0] & OUTY[1] & OUTY[2] & OUTY[3];
end
end
endmodule
说明:
rst是异步清0信号,高电平有效;clk是锁存信号;D[3..0]是4位数据输入端;ENA是使能信号
4位计数器的功能:计数使能、异步复位和计数值并行预置
含异步清零和同步使能的计数器的仿真结果
二.实验心得:
很喜欢这种老师的教学方式和考核方式,虽然课时不多,授课不多,但是目的性和灵活性很强。首先给了我们一些较为简洁的指导,然后分组确定了每个组的课题。之所以说喜欢这堂课是因为享受到了把看是不可能变为可能进而到实现的过程。
起初很摸不着头脑,比较浮躁。经过和小组的讨论后,平静了不少,也受益很多。然后开始着手在网上寻找各种有用的资料,静下心去阅读和思考。慢慢地有了一点点小成果,回寝室也多了一个目标。合作,多途径解决方案,这就是我受益最大的。这仅仅是一个开始,但绝不是结束。最后挺感谢漆老师的,经过这堂课的启迪,我懂得了不少方法,我会继续努力!加油。