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分的周期进行计数)组
成,如图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
newclk
newclk
endmodule
2) 六进制计数器的源程序cnt6.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
else if (ena)
if (cnt==4'h5) cnt
cnt
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
else if (ena)
if (cnt==4'h5) cnt
cnt
assign cq = cnt;
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的时序仿真的结果
图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分别为计数清零信号和计数使能信号,计数开始后时间显示在六个数码管上。
六、总结
这是第一个VerilogHDL版实验,在这次试验中在编写程序时由于自己的粗心导致输入有错误,经过软件调试,发现错误经过修改,最终调试成功,在硬件验证时需要修改相关参数,分频值需要修改为29999,通过本次实验对verilogHDL语言程序编写有了进一步的掌握。
实验二 SOPC设计的基本应用
一、实验类型
研究探索性实验。
二、实验目的与任务
1.实验目的:熟悉NIOS II嵌入式处理器的设计过程和方法,熟悉QuartusII的SOPC开发
2.实验任务:通过创建一个Quartus II工程,创建Quartus II模块,将图标添加到BDF文件中,编译工程设计文件,配置FPGA等步骤完成一个Nios II嵌入式处理器的设计,再通过完成相应的软件实现,开发一个以Nios II为嵌入式处理器的SOPC
三、实验仪器设备与工具软件
1.PC机(要求内存在256M以上);
2.EDA实验开发系统(含Altera Nios Cyclone适配板); 3.Quartus II软件(含Nios II)。
四、实验基本原理
1.硬件开发流程
(1)用SOPC Builder系统综合软件来选取合适的CPU、存储器以及外围器件(如片内存储器、PIO、UART和片外存储器接口),并定制它们的功能。
(2)使用Quartus II软件来选取具体的Altera可编程器件系列,并对SOPC Builder生成的HDL设计文件进行布局仿真;再使用Quartus II软件来选取目标器件并对Nios II系统上的各种I/O口进行分配管脚,另外还要根据硬件编译选项或时序约束的设置。在编译的过程中,Quartus II从HDL源文件综合生成一个适合目标器件的网表。最后,生成配置文件。
(3)使用Quartus II编程器和Altera下载电缆,将配置文件(用户定制的NIOS II处理器系统的硬件设计)下载到开发板上。当校验完当前硬件设计后,软件开发者就可以把此开发板作为软件开发的初期硬件平台进行软件功能的开发验证了。 2.软件设计流程
(1)在用SOPC Builder系统集成软件进行硬件设计的同时,就可以开始编写独立于器件的C/C++软件,比如算法或控制程序。用户可以使用现成的软件库和开放的操作系统内核来加快开发进程。
(2)在Nios II IDE中建立新的软件工程时。IDE会根据SOPC Builder对系统的硬件配置自动生成一个定制HAL(硬件抽象层)系统库。这个库能为程序和底层硬件的通信提供借口驱动程序,它类似于创建Nios II系统时SOPC Builder生成的SDK。
(3)使用Nios II IDE对软件工程进行编译、调试。
(4)将硬件设计下载到开发板上后,就可以将软件下载到开发板上并在硬件上运行。
五、实验内容
1、硬件的设计
1)通过创建一个Quartus II工程,创建Quartus II模块
2)添加一个NIOS2软核 3)添加 NIOS II 处理器 4) 添加外设
a添加符合JTAG 接口标准的Debug接口 b 添加System ID c 添加系统时钟 d 添加FLASH
f 添加SDRAM g添加革新公司的IP 核SRAM (sram_256x16bit) h 添加一个Avalon Tri-state Bridge i 添加非易失性配置芯片 j 添加button I/O输入端口 k添加LED_PIO输出端口 l添加 RS232串行口 m 进行Aalon
数据线的连接
图2.1 Nios Ⅱ系统配置及其地址映射表
图2.2 完成原理图编辑后的结果
5)配置FPGA,进行管脚锁定
图2.3管脚锁定
6)下载到B-ICE-EDA/SOPC实验开发平台中
2、软件的设计
1)打开Nios II 10.1 IDE ,用它打开已编程好的软件
2)选择File>New>Nios II C/C++ Application:在Select Project Template 模板中,选择Blank Project Select Target Hardware 硬件目标板,选择bice_0.pdf应用程序工程名输入 LED。
3)编译工程,选中工程点击右键选择Build Project。
4)编译完成,选择Buttong工程,点击鼠标右键,运行Run As-》Nios II
Hardware
(5)调试程序。
(6)将程序下载到Flash中,硬件参考问价夹中的视频。
六、实验总结
通过本次实验对sopc开发的基本步骤有了进一步的了解,由于基于Nios II的SOPC系统的设计比较复杂,所以参考了老师提供的资料,虽然本次实验很难,但经过老师的指导和查阅书籍,最终顺利完成了硬件部分,在试验后的第三天晚上我来到实验室最终完成了软件部分,成功的实现了跑马灯功能。虽然这是EDA最后最后一个实验,但这并不表示结束,以后我会更加努力,提高自己的动手操作能力。
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分的周期进行计数)组
成,如图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
newclk
newclk
endmodule
2) 六进制计数器的源程序cnt6.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
else if (ena)
if (cnt==4'h5) cnt
cnt
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
else if (ena)
if (cnt==4'h5) cnt
cnt
assign cq = cnt;
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的时序仿真的结果
图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分别为计数清零信号和计数使能信号,计数开始后时间显示在六个数码管上。
六、总结
这是第一个VerilogHDL版实验,在这次试验中在编写程序时由于自己的粗心导致输入有错误,经过软件调试,发现错误经过修改,最终调试成功,在硬件验证时需要修改相关参数,分频值需要修改为29999,通过本次实验对verilogHDL语言程序编写有了进一步的掌握。
实验二 SOPC设计的基本应用
一、实验类型
研究探索性实验。
二、实验目的与任务
1.实验目的:熟悉NIOS II嵌入式处理器的设计过程和方法,熟悉QuartusII的SOPC开发
2.实验任务:通过创建一个Quartus II工程,创建Quartus II模块,将图标添加到BDF文件中,编译工程设计文件,配置FPGA等步骤完成一个Nios II嵌入式处理器的设计,再通过完成相应的软件实现,开发一个以Nios II为嵌入式处理器的SOPC
三、实验仪器设备与工具软件
1.PC机(要求内存在256M以上);
2.EDA实验开发系统(含Altera Nios Cyclone适配板); 3.Quartus II软件(含Nios II)。
四、实验基本原理
1.硬件开发流程
(1)用SOPC Builder系统综合软件来选取合适的CPU、存储器以及外围器件(如片内存储器、PIO、UART和片外存储器接口),并定制它们的功能。
(2)使用Quartus II软件来选取具体的Altera可编程器件系列,并对SOPC Builder生成的HDL设计文件进行布局仿真;再使用Quartus II软件来选取目标器件并对Nios II系统上的各种I/O口进行分配管脚,另外还要根据硬件编译选项或时序约束的设置。在编译的过程中,Quartus II从HDL源文件综合生成一个适合目标器件的网表。最后,生成配置文件。
(3)使用Quartus II编程器和Altera下载电缆,将配置文件(用户定制的NIOS II处理器系统的硬件设计)下载到开发板上。当校验完当前硬件设计后,软件开发者就可以把此开发板作为软件开发的初期硬件平台进行软件功能的开发验证了。 2.软件设计流程
(1)在用SOPC Builder系统集成软件进行硬件设计的同时,就可以开始编写独立于器件的C/C++软件,比如算法或控制程序。用户可以使用现成的软件库和开放的操作系统内核来加快开发进程。
(2)在Nios II IDE中建立新的软件工程时。IDE会根据SOPC Builder对系统的硬件配置自动生成一个定制HAL(硬件抽象层)系统库。这个库能为程序和底层硬件的通信提供借口驱动程序,它类似于创建Nios II系统时SOPC Builder生成的SDK。
(3)使用Nios II IDE对软件工程进行编译、调试。
(4)将硬件设计下载到开发板上后,就可以将软件下载到开发板上并在硬件上运行。
五、实验内容
1、硬件的设计
1)通过创建一个Quartus II工程,创建Quartus II模块
2)添加一个NIOS2软核 3)添加 NIOS II 处理器 4) 添加外设
a添加符合JTAG 接口标准的Debug接口 b 添加System ID c 添加系统时钟 d 添加FLASH
f 添加SDRAM g添加革新公司的IP 核SRAM (sram_256x16bit) h 添加一个Avalon Tri-state Bridge i 添加非易失性配置芯片 j 添加button I/O输入端口 k添加LED_PIO输出端口 l添加 RS232串行口 m 进行Aalon
数据线的连接
图2.1 Nios Ⅱ系统配置及其地址映射表
图2.2 完成原理图编辑后的结果
5)配置FPGA,进行管脚锁定
图2.3管脚锁定
6)下载到B-ICE-EDA/SOPC实验开发平台中
2、软件的设计
1)打开Nios II 10.1 IDE ,用它打开已编程好的软件
2)选择File>New>Nios II C/C++ Application:在Select Project Template 模板中,选择Blank Project Select Target Hardware 硬件目标板,选择bice_0.pdf应用程序工程名输入 LED。
3)编译工程,选中工程点击右键选择Build Project。
4)编译完成,选择Buttong工程,点击鼠标右键,运行Run As-》Nios II
Hardware
(5)调试程序。
(6)将程序下载到Flash中,硬件参考问价夹中的视频。
六、实验总结
通过本次实验对sopc开发的基本步骤有了进一步的了解,由于基于Nios II的SOPC系统的设计比较复杂,所以参考了老师提供的资料,虽然本次实验很难,但经过老师的指导和查阅书籍,最终顺利完成了硬件部分,在试验后的第三天晚上我来到实验室最终完成了软件部分,成功的实现了跑马灯功能。虽然这是EDA最后最后一个实验,但这并不表示结束,以后我会更加努力,提高自己的动手操作能力。