EDA技术及应用—VerilogHDL版
实验报告
实验一数字秒表的设计
一、实验类型
综合性实验
二、实验仪器设备与工具软件
1.PC机(要求内存在256M以上);
2.EDA实验开发系统;
3.QuartusII软件
三、实验目的与任务
1.实验目的:(1)熟悉QuartusII/ISEDesignsuite/ispLEVER软件的基本使用方法
(2)熟悉EDA实验开发系统(B-ICE-EDA实验开发系统)的使用;
(3)熟悉VerilogHDL过程区块语句、if条件语句和元件实例化语句的综合使用。
(4)熟悉计数器、分频器等VerilogHDL基本逻辑电路的综合设计应用,掌握程序仿真是根据实际情况进行有关参数的调整方法。
2.实验任务:用VerilogHDL设计一个计时范围为0.01秒~1小时的数字秒表,并用QuartusII进行调试和验证,熟悉VerilogHDL程序的基本设计,熟悉QuartusII的设计输入、设计编译、仿真验证、时序分析、器件编程等基本操作。
四、实验基本原理与电路原理图
设计一个计时范围为0.01秒~1小时的数字秒表,首先需要获得一个比较精确的计时基准信号,这里是周期为1/100秒的计时脉冲。其次,除了对每一计数器需设置清零信号输入外,还需在六个计数器设置时钟使能信号,即计时允许信号,以便作为秒表的计时起、停控制开关。因此数字秒表可由一个分频器、四个十进制计数器(分别按1/100秒、1/10秒、1秒、1分的周期进行计数)以及两个六进制计数器(分别按10秒、10分的周期进行计数)组
成,如图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、erilogHDL源程序
1)3MHz→100Hz分频器的源程序XXX(clk,newclk);inputclk;outputnewclk;regnewclk;integercnt=0;
always@(posedgeclk)begin
/if(cnt1<29999)/实际系统分频值if(cnt<29)/仿真时的分频值begin
newclk<=1'b0;cnt=cnt+1;endelsebegin
newclk<=1'b1;cnt=0;endend
endmodule
2)六进制计数器的源程序XXX(clk,clr,ena,cq,co);
inputclk,clr,ena;
output[3:0]cq;
outputco;
reg[3:0]cnt;
regco;
always@(posedgeclkorposedgeclr)begin
if(clr)
cnt<=4'b0;
else
if(ena)
if(cnt==4'h5)
cnt<=4'h0;
else
cnt<=cnt+1;
assigncq=cnt;
always@(posedgeclk)
begin
if(cnt==4'h5)
co=4'h1;
else
co=4'h0;
endmodule
3)十进制计数器源程序XXX(clk,clr,ena,cq,co);inputclk,clr,ena;
output[3:0]cq;
outputco;
reg[3:0]cnt;
regco;
always@(posedgeclkorposedgeclr)begin
if(clr)
cnt<=4'b0;
else
if(ena)
if(cnt==4'h5)
cnt<=4'h0;
else
cnt<=cnt+1;
assigncq=cnt;
always@(posedgeclk)
begin
if(cnt==4'h5)
co=4'h1;
else
co=4'h0;
endmodule
4)数字秒表的源程序times.v
moduletimes(clk,clr,ena,dout);
inputclk,clr,ena;
output[23:0]dout;
wireclk,clr,ena;
wire[23:0]dout;
wires0,s1,s2,s3,s4,s5,s6,s7,s8;
clkgenu0(.clk(clk),.newclk(s0));
cnt10u1(.clk(s0),.clr(clr),.ena(ena),.cq(dout[3:0]),.co(s1));cnt10u2(.clk(s1),.clr(clr),.ena(ena),.cq(dout[7:4]),.co(s2));cnt10u3(.clk(s2),.clr(clr),.ena(ena),.cq(dout[11:8]),.co(s3));cnt6u4(.clk(s3),.clr(clr),.ena(ena),.cq(dout[15:12]),.co(s4));cnt10u5(.clk(s4),.clr(clr),.ena(ena),.cq(dout[19:16]),.co(s5));cnt6u6(.clk(s5),.clr(clr),.ena(ena),.cq(dout[23:20]),.co());endmodule
、序方针和管脚锁定
图1.2使用注释的方法进行程序的有关仿真参数的调整
1)下图1.3和14分别为使用QuartusII8.0对clkgen和times的时序仿真的结果
图1.3clkgen的时序仿真结果图(分频常数改为30)
图1.4times的时序仿真结果
、管脚锁定
图1.5管脚锁定
4.硬件逻辑验证
若使用GW48-CKEDA实验开发系统进行硬件逻辑验证,可选择实验电路结构图1.1和图1.4锁定。时钟信号clk可接CLOCK0,计数清零信号接键3,计数使能信号接键4,数码管1~数码管6分别显示以1/100秒、1/10秒、1秒、10秒、1分、10分为计时基准的计数值。进行硬件验证时方法如下:选择实验模式0,时钟信号clk与CLOCK0信号组中的3MHz信号相接,键3和键4分别为计数清零信号和计数使能信号,计数开始后时间显示在六个数码管上。
六、总结
这是第一个VerilogHDL版实验,在这次试验中在编写程序时由于自己的粗心导致输入有错误,经过软件调试,发现错误经过修改,最终调试成功,在硬件验证时需要修改相关参数,分频值需要修改为29999,通过本次实验对verilogHDL语言程序编写有了进一步的掌握。
实验二SOPC设计的基本应用
一、实验类型
研究探索性实验。
二、实验目的与任务
1.实验目的:熟悉NIOSII嵌入式处理器的设计过程和方法,熟悉QuartusII的SOPC开发
2.实验任务:通过创建一个QuartusII工程,创建QuartusII模块,将图标添加到BDF文件中,编译工程设计文件,配置FPGA等步骤完成一个NiosII嵌入式处理器的设计,再通过完成相应的软件实现,开发一个以NiosII为嵌入式处理器的SOPC
三、实验仪器设备与工具软件
1.PC机(要求内存在256M以上);
2.EDA实验开发系统(含AlteraNiosCyclone适配板);
3.QuartusII软件(含NiosII)。
四、实验基本原理
1.硬件开发流程
(1)用SOPCBuilder系统综合软件来选取合适的CPU、存储器以及外围器件(如片内存储器、PIO、UART和片外存储器接口),并定制它们的功能。
(2)使用QuartusII软件来选取具体的Altera可编程器件系列,并对SOPCBuilder生成的HDL设计文件进行布局仿真;再使用QuartusII软件来选取目标器件并对NiosII系统上的各种I/O口进行分配管脚,另外还要根据硬件编译选项或时序约束的设置。在编译的过程中,QuartusII从HDL源文件综合生成一个适合目标器件的网表。最后,生成配置文件。
(3)使用QuartusII编程器和Altera电缆,将配置文件(用户定制的NIOSII处理器系统的硬件设计)到开发板上。当校验完当前硬件设计后,软件开发者就可以把此开发板作为软件开发的初期硬件平台进行软件功能的开发验证了。
2.软件设计流程
(1)在用SOPCBuilder系统集成软件进行硬件设计的同时,就可以开始编写于器件的C/C++软件,比如算法或控制程序。用户可以使用现成的软件库和开放的操作系统内核来加快开发进程。
(2)在NiosIIIDE中建立新的软件工程时。IDE会根据SOPCBuilder对系统的硬件配置自动生成一个定制HAL(硬件抽象层)系统库。这个库能为程序和底层硬件的通信提供借口驱动程序,它类似于创建NiosII系统时SOPCBuilder生成的SDK。
(3)使用NiosIIIDE对软件工程进行编译、调试。
(4)将硬件设计到开发板上后,就可以将软件到开发板上并在硬件上运行。
五、实验内容
1、硬件的设计
1)通过创建一个QuartusII工程,创建QuartusII模块
2)添加一个NIOS2软核
3)添加NIOSII处理器
4)添加外设
a添加符合JTAG接口标准的Debug接口b添加SystemID
c添加系统时钟d添加FLASH
f添加SDRAMg添加革新公司的IP核SRAM(sram_256_16bit)h添加一个AvalonTri-stateBridgei添加非易失性配置芯片
j添加buttonI/O输入端口k添加LED_PIO输出端口
l添加RS232串行口m进行Aalon
数据线的连接
图2.1NiosⅡ系统配置及其地址映射表
图2.2完成原理图编辑后的结果
5)配置FPGA,进行管脚锁定
图2.3管脚锁定
6)到B-ICE-EDA/SOPC实验开发平台中
2、软件的设计
1)打开NiosII10.1IDE,用它打开已编程好的软件
2)选择File>New>NiosIIC/C++Application:在SelectProjectTemplate模板中,选择BlankProjectSelectTargetHardware硬件目标板,选择XXX应用程序工程名输入LED。
3)编译工程,选中工程点击右键选择BuildProject。
4)编译完成,选择Buttong工程,点击鼠标右键,运行RunAs-》NiosII
Hardware
(5)调试程序。
(6)将程序到Flash中,硬件参考问价夹中的视频。
六、实验总结
通过本次实验对sopc开发的基本步骤有了进一步的了解,由于基于NiosII的SOPC系统的设计比较复杂,所以参考了老师提供的资料,虽然本次实验很难,但经过老师的指导和查阅书籍,最终顺利完成了硬件部分,在试验后的第三天晚上我来到实验室最终完成了软件部分,成功的实现了跑马灯功能。虽然这是EDA最后最后一个实验,但这并不表示结束,以后我会更加努力,提高自己的动手操作能力。
下载本文