湖南工业大学EDA实验报告
时间:2025-06-23
时间:2025-06-23
verilog类实验文档
EDA技术及应用—Verilog HDL版
实 验 报 告
实验一 数字秒表的设计
一、 实验类型
综合性实验
二、实验仪器设备与工具软件
1.PC机(要求内存在256M以上); 2.EDA实验开发系统; 3.Quartus II软件
三、实验目的与任务
1.实验目的:(1)熟悉Quartus II/ISE Design suite/ispLEVER软件的基本使用方法 (2)熟悉EDA实验开发系统(B-ICE-EDA实验开发系统)的使用;
(3)熟悉Verilog HDL过程区块语句、if条件语句和元件实例化语句的综合使用。
(4)熟悉计数器、分频器等Verilog HDL基本逻辑电路的综合设计应用,掌握程序仿真是根据实际情况进行有关参数的调整方法。 2.实验任务:用Verilog HDL设计一个计时范围为0.01秒~1小时的数字秒表,并用Quartus II进行调试和验证,熟悉Verilog HDL程序的基本设计,熟悉Quartus II的设计输入、设计编译、仿真验证、时序分析、器件编程等基本操作。
四、实验基本原理与电路原理图
设计一个计时范围为0.01秒~1小时的数字秒表,首先需要获得一个比较精确的计时基准信号,这里是周期为1/100秒的计时脉冲。其次,除了对每一计数器需设置清零信号输入外,还需在六个计数器设置时钟使能信号,即计时允许信号,以便作为秒表的计时起、停控制开关。因此数字秒表可由一个分频器、四个十进制计数器(分别按1/100秒、1/10秒、1秒、1分的周期进行计数)以及两个六进制计数器(分别按10秒、10分的周期进行计数)组
verilog类实验文档
成,如图1.1所示。六个计数器中的每一计数器的4位输出,通过外设的BCD译码器输出显示。图1.1中六个4位二进制计数输出的最小显示值分别为:dout[3:0] 1/100秒、dout[7:4] 1/10秒、dout[11:8] 1秒、dout[15:12] 10秒、dout[19:16] 1分、dout[23:20] 10分。 实验原理图如下图1.1
clkgen
图1.1 数字秒表电路逻辑图
五、实验步骤
1、erilog HDL源程序
1) 3 MHz→100 Hz分频器的源程序clkgen.v module clkgen(clk, newclk); input clk; output newclk; reg newclk; integer cnt=0;
always @(posedge clk) begin
//if(cnt1<29999) //实际系统分频值 if(cnt < 29) //仿真时的分频值 begin
newclk <= 1'b0; cnt = cnt + 1; end else begin
newclk <= 1'b1; cnt = 0; end end
endmodule
2) 六进制计数器的源程序cnt6.v module cnt6(clk,clr,ena,cq,co);
verilog类实验文档
input clk, clr, ena; output [3:0] cq; output co; reg [3:0] cnt; reg co;
always @(posedge clk or posedge clr) begin
if (clr) cnt <= 4'b0;
else if (ena)
if (cnt==4'h5) cnt <= 4'h0; else
cnt <= cnt + 1; end
assign cq = cnt;
always @(posedge clk ) begin
if (cnt==4'h5) co = 4'h1; else
co= 4'h0; end endmodule
3)十进制计数器源程序cnt10.v module cnt6(clk,clr,ena,cq,co); input clk, clr, ena; output [3:0] cq; output co; reg [3:0] cnt; reg co;
always @(posedge clk or posedge clr) begin
if (clr) cnt <= 4'b0;
else if (ena)
if (cnt==4'h5) cnt <= 4'h0; else
cnt <= cnt + 1; end
assign cq = cnt;
verilog类实验文档
always @(posedge clk ) begin
if (cnt==4'h5) co = 4'h1; else
co= 4'h0; end endmodule
4)数字秒表的源程序times.v
module times(clk, clr, ena, dout); input clk, clr, ena; output [23:0] dout; wire clk, clr, ena; wire [23:0] dout;
wire s0, s1, s2, s3, s4, s5, s6, s7, s8; clkgen u0 (.clk(clk), .newclk(s0));
cnt10 u1 ( .clk(s0), .clr(clr),.ena(ena), .cq (dout[3:0]),.co (s1)); cnt10 u2 ( .clk(s1), .clr(clr),.ena(ena), .cq (dout[7:4]),.co (s2)); cnt10 u3 ( .clk(s2), .clr(clr),.ena(ena), .cq (dout[11:8]),.co (s3)); cnt6 u4 ( .clk(s3), .clr(clr),.ena(ena), .cq (dout[15:12]),.co (s4)); cnt10 u5 ( .clk(s4), .clr(clr),.ena(ena), .cq (dout[19:16]),.co (s5)); cnt6 u6 ( .clk(s5), .clr(clr),.ena(ena), .cq (dout[23:20]),.co ( )); endmodule
2
、序方针和管脚锁定
图1.2使用注释的方法进行程序的有关仿真参数的调整
1)下图1.3和14分别为使用Quartus II 8.0对clkgen和times的时序仿真的结果
verilog类实验文档
图1.3clkgen的时序仿真结果图(分频常数改为30)
图1.4times的时序仿真结果
3
、管脚锁定
图1.5管脚锁定
4.硬件逻辑验证
若使用GW48-CK EDA实验开发系统进行硬件逻辑验证,可选择实验电路结构图1.1和图1.4锁定。时钟信号clk可接CLOCK0,计数清零信号接键3,计数使能信号接键4,数码管1~数码管6分别显示以1/100 秒、1/10 秒、1 秒、10 秒、1 分、10分为计时基准的计数值。 进行硬件验证时方法如下:选择实验模式0,时钟信号clk与CLOCK0信号组中的3 MHz信号相接,键3和键4分别为计数清零信号和计数使能信号,计数开始后时间显示在六个数码管上。
verilog类实验文档
六、总结
这是第一个VerilogHDL版实验,在这次试验中在编写程序时由于自己的粗心导致输入有错误,经过软件调试,发现错误经过修改,最终调试成功,在硬件验证时需要修改相关参数,分频值需要修改为29999,通过本次实验对verilogHDL语言程序编写有了进一步的掌握。
verilog类实验文档
实验二 SOPC设计的基本应用