当前位置:文档之家› 电子系EDA技术QuartusⅡ实验讲义

电子系EDA技术QuartusⅡ实验讲义

电子系EDA技术QuartusⅡ实验讲义
电子系EDA技术QuartusⅡ实验讲义

EDA技术指导书

惠为君

盐城工学院信息学院

实验是使用Altera公司的QuartusⅡ工具软件,完成对设计电路的Verilog HDL源程序的编辑、编译、仿真、引脚锁定和编程下载等操作,下载目标芯片选择Altera公司的MAX7000S系列的EPM7128SLC84-15器件,并用杭州康芯电子有限公司研制生产的GW48EDA开发实验平台,实现对设计结果的硬件验证。

预备知识

QuartusⅡ设计指南

1、创建一个工程

使用QuartusⅡ软件的第1步是创建一个新的工程,用户可以通过创建工程向导来完成这一工作。

打开File菜单,选择New Project Wizard启动创建工程向导,如图a所示。

图a 选择New Project Wizard启动创建工程向导

图b New Project Wizard...向导图

在创建工程向导的第一步输入工程的工作目录、工程的名称以及工程所包含的顶层模块的名称,如

图c所示。

第2步选择工程所包含的文件,也可以不选,直接单击Next进入第3步,如图d所示。

图d创建工程向导(二)

选择目标器件,用户可以通过设置各种限定条件减少下面列出的器件数目,在选中目标器件之后单击Next进入下一步,如图e所示。

图e 创建工程向导(三)

QuartusⅡ软件包含有第三方EDA软件的接口,可以在设计的不同阶段调用不同的EDA工具完成所需的操作;如果不做选择,则表示设计的所有流程均由QuartusⅡ软件完成,如图f所示。

图f创建工程向导(四)

最后一步是检查工程的各项参数,单击Finish完成工程的创建过程,如图g所示。

图g 创建工程向导(五)

2、文本设计输入

打开文本编辑器

我们首先在创建好一个设计工程以后,通过选择“File”|“New”命令,在弹出的新建设计文件选择窗口中,选择“Device Design Files”标签页下的Verilog HDL File然后单击“OK”按钮,将会打开一个文本编辑器窗口

【实验1】简单组合电路的设计(三选一电路)

(1)实验目的;熟悉QuartusII的Verilog HDL文本设计流程全过程,学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。

(2)实验内容1:首先参照预备知识和第11章给出的步骤,利用QuartusII完成2选1多路选择器的文本编辑输入(mux21a.v)和仿真测试等步骤,给出(mux21a.v)的仿真波形。最后在实验系统上进行硬件测试,实际验证本项设计的功能。

【实验1程序1】

module mux21a (a, b, s, y);

input a,b,s;

output y;

reg y;

always @(a or b or s)

begin

if (s==1'b0)

begin

y<=a;

end

else

begin

y<=b;

end

end

endmodule

(3)实验内容2:完成多路选择器,把mux21a看成是一个元件,利用元件例化模块语句描述,并将此文件放在同一目录E:\muxfile中.以下是参考程序:

【实验1程序2】

module MUXK (a1, a2, a3, s0, s1, outy);

input a1, a2, a3, s0, s1;

output outy;

wire outy;

wire tmp;

mux21a u1 (.a(a2),.b(a3),.s(s0),.y(tmp));

mux21a u2 (.a (a1),.b (tmp),.s (s1),.y (outy));

endmodule

参照第11章的步骤对上例分别进行编译、综合、仿真.并对其仿真波形图1作出分析说明。

图1 仿真波形

(4)实验内容3:引脚锁定以及硬件下载测试。若目标器件是EPM7128SLC84-15,选实验电路模式5,用键1(PIO0,引脚号为4)控制s0:用键2(PIO1,引脚号为5)控制s1:a3、a2和a1分别接clock5(引脚号为75)、clock0(引脚号为2)和clock2(引脚号为70);输出信号outy仍接扬声器Spker(引脚号为81)。通过短路帽选择clock0接256Hz信号,clock5接1024Hz,clock2接8Hz信号。引脚锁定窗如图2所示。最后进行编译、下载和硬件测试实验。

(5)实验报告:根据以上的实验内容写出实验报告,包括程序设计、软件编译、仿真分析、硬件测试和详细实验过程;给出程序分析报告、仿真波形图及其分析报告。

实验1引脚锁定图

【实验2】触发器设计

1.实验目的

通过实验让读者掌握时序逻辑电路中的基本部件——触发器的Verilog HDL文本输入设计法,通过对设计电路的仿真和硬件验证,让读者进一步了解触发器的功能和特性。

2.实验内容

(1)编辑下降沿触发的JK触发器源程序

首先参照预备知识和第11章给出的步骤,利用QuartusII完成下降沿触发的JK触发器的Verilog HDL 源程序和仿真测试等步骤。给出(j kff_v.v)的仿真波形。最后在实验系统上进行硬件测试,实际验证本项设计的功能,下降沿触发的JK触发器的VerilogHDL源程序jkff_v如下:

module jkff_v(j,k,prd,clr, clk,q,qn);

input j,k,prd,clr, clk;

output q,qn;

reg q,qn;

always @(negedge clr or negedge prd or posedge clk)

begin

if (~clr) begin q = 0;qn = ~q; end

else if (~prd) begin q = 1;qn = ~q; end

else case({j,k })

2'b00: begin q = q;qn = ~q; end

2'b01: begin q = 0;qn = ~q; end

2'b10: begin q = 1;qn = ~q; end

2'b11: begin q = qn;qn = ~q; end

endcase

end

endmodule

参照第11章的步骤对上例分别进行编译、综合、仿真.并对其仿真波形图2作出分析说明。下降沿触发的JK触发器的仿真波形如图2所示。

图2 JK触发器的仿真波形

(2)引脚锁定

本实验选择的目标芯片为EPM7128SLC84-15,采用GW48 EDA实验平台的实验电路结构No.6进行硬件验证。

将输入信号clk、j、k、clr和prd分别锁定在EPM7128SLC84-15目标芯片的21、20、18、17和16引脚:将输出信号q和qn分别锁定在目标芯片的34和33引脚。

对于GW48 EDA系统实验平台,EPM7128SLC84-15目标芯片的21、20、18、17和16引脚分别接于实验电路结构No.6的高低电平输入按钮“键8clk”、“键7 j”、“键6”k、“键5clr”和“键4 prd”,作为信号输入;34和33引脚分别接于发光二极管“D8”和“D7”,用于显示输出q和qn的信号。

(3)编程下载与硬件验证

完成引脚锁定操作后,再次对设计文件进行编译。用并行电缆将GW48EDA开发实验平台与计算机的并行接口连接在一起,打开GW48的电源,按模式选择开关选择工作模式“6”,然后执行QuartusII 的“Tol l”→“Programmer”命令,将JK触发器设计文件下载到GW48上的EPM7128SLC84-15目标芯片中。

按GW48实验板上的高低电平输入按钮“键8”、“键7”、“键6”和“键5”,得到clk 、j 、k 、clr 和prd 不同的输入组合;观察输出发光二极管“D8”和“D7”发光组合,硬件验证JK 触发器的功能。

3、实验报告:根据以上的实验内容写出实验报告,包括程序设计、软件编译、仿真分析、硬件测试和详细实验过程;给出程序分析报告、仿真波形图及其分析报告。

4、思考题

参考JK 触发器的设计过程,采用Verilog HDL 文本输入设计法,设计上升沿触发的D 触发器,并仿真和硬件验证设计结果。

【实验3】4位二进制加法计数器设计

1.实验目的

通过实验让读者掌握时序逻辑电路的Verilog HDL文本输入设计法,通过对设计电路的仿真和硬件验证,让读者进一步了解计数器的功能和特性。

2.实验内容

(1)编辑4位二进制加法计数器的源程序

首先参照预备知识和第11章给出的步骤,利用QuartusII完成4位二进制加法计数器的Verilog HDL 源程序和仿真测试等步骤。给出(cnt16_v.v)的仿真波形。最后在实验系统上进行硬件测试,实际验证本项设计的功能,4位二进制加法计数器的Verilog HDL源程序cnt16_v如下:

module cnt16_v(clrn,clk,q,cout);

input clrn,clk;

output[3:0] q;

output cout;

reg[3:0] q;

reg cout;

always @(posedge clk or negedge clrn)

begin

if (~clrn)

begin q=4'b0000; cout=0; end

else begin q=q+1;

cout=q[3] && q[2] && q[1] && q[0];

end

end

endmodule

在cnt16_v源程序中,clk是计数器的时钟输入端,clrn是复位控制输入端,低电平有效,q[3..0]是计数器的状态输出端,cout是进位输出端。

参照第11章的步骤对上例分别进行编译、综合、仿真.并对其仿真波形图3作出分析说明。4位二进制加法计数器的仿真波形如图3所示。

图3 4位二进制加法计数器cnt16_v的仿真波形

(2)引脚锁定

本实验选择的目标芯片为EPM7128SLC84-15,采用GW48 EDA实验平台的实验电路结构No.1进行硬件验证。

将时钟输入信号clk锁定在EPM7128SLC84-15目标芯片的68引脚;将复位输入信号clrn锁定在67引脚;将计数器状态输出信号q[3..0]锁定在目标芯片的45、44、41和40引脚,将进位输出cout锁定在55引脚。

对于GW48EDA系统实验平台,EPM7128SLC84-15目标芯片的68引脚接于实验电路结构No.1的高低电平输入按钮“键8”,作为时钟信号clk的输入;67引脚接于高低电平输入按钮“键7”,作为复位信号clrn的输入;45、44、41和40引脚接于七段数码管“数码8”的译码器,用于显示输出q[3..0]的信号;55引脚接于发光二极管“D8”,用于显示进位输出cout的信号。

(3)编程下载与硬件验证

完成引脚锁定操作后,再次对设计文件进行编译。用并行电缆将GW48EDA开发实验平台与计算机的并行接口连接在一起,打开GW48的电源,按模式选择开关选择工作模式“1”然后执行QuartusII的“Tol l”→“Programmer”命令,将4位二进制加法计数器设计文件下载到GW48上的EPM7128SLC84-15目标芯片中。

按GW48实验板上的高低电平输入按钮“键8”和“键7”,得到clk和clrn不同的输入组合:观察输出发光二极管“D8”和“数码8”显示的输出状态,硬件验证4位二进制加法计数器的功能。

3、实验报告:根据以上的实验内容写出实验报告,包括程序设计、软件编译、仿真分析、硬件测试和详细实验过程;给出程序分析报告、仿真波形图及其分析报告。

4、思考题

用VerilogHDL文本输入设计法设计1位十进制加法计数器,并仿真和硬件验证设计电路的正确性。

【实验4】8位右移移位寄存器设计

1.实验目的

通过实验让读者掌握时序逻辑电路的VerilogHDL文本输入设计法,通过对设计电路的仿真和硬件验证,让读者进一步了解移位寄存器的功能和特性。

2.实验内容

(1)编辑8位右移移位寄存器的源程序

首先参照预备知识和第11章给出的步骤,利用QuartusII完成,V erilog HDL源程序和仿真测试等步骤。给出(sreg8_v.v)的仿真波形。最后在实验系统上进行硬件测试,实际验证本项设计的功能,8位右移移位寄存器的Vefilog HDL源程序sreg8_v如下:

module sreg8_v(clr, clk,dsr, ldn,d,q);

input clr, clk,dsr, ldn;

input[7:0] d;

output[7:0] q;

reg[7:0] q;

always @(posedge clk or posedge clr)

begin

if (clr)

begin q=8'b00000000; end

else if (~ldn)

begin q=d; end

else

begin q[6:0]=q[7: 1];q[7]=dsr; end

end

endmodule

图4.9 8位右移移位寄存器的仿真波形

(2)引脚锁定

本实验选择的目标芯片为EPM7128SLC84-15,采用GW48 EDA实验平台的实验电路结构No.6进行硬件验证。

参考《EDA技术与应用》教材的附录B“GW48 EDA系统使用说明”中的表B.2,确定将时钟输入信号CLK(本信号名和下面的输入/输出信号名与元件符号名对应)锁定在EPM7128SLC84-15目标芯片的21引脚,将复位输入信号CLR锁定在20引脚,将预置输入信号LDN锁定在18引脚,将串行输入信号DSR锁定在17引脚,将并行输入信号D[7..0]锁定在12、11、10、9、8、6、5和4引脚,将寄存器输出信号Q[7..0]锁定在目标芯片的34、33、31、30、29、28、27和25引脚。

对于GW48EDA系统实验平台,EPM7128SLC84-15目标芯片的21引脚,接于实验电路结构No.6的高低电平输入按钮“键8”,作为时钟信号CLK的输入;20引脚接于高低电平输入按钮“键7”,作为复位信号CLR的输入;18引脚接于高低电平输入按钮“键6”,作为预置信号LDN的输入;17引脚接于高低电平输入按钮“键5”,作为串行数据DSR的输入:12、11、10和9引脚接于十六进制数输入按钮“键2”,作为高4位并行数据信号D[7..4]的输入;8、6、5和4引脚接于十六进制数输入按钮“键1”,作为低4位并行数据信号D[3..0]的输入:34、33、31、30、29、28、27和25引脚分别接于发光二极管“D8”、“D7”、“D6”、“D5”、“D4”、“D3”、“D2”和“D1”,用于显示输出Q[7..0]的信号。

(3)编程下载与硬件验证

完成引脚锁定操作后,再次对设计文件进行编译。用并行电缆将GW48EDA开发实验平台与计算机的并行接口连接在一起,打开GW48的电源,按模式选择开关选择工作模式“6”,然后执行QuartusII 的“Tol l”→“Programmer”命令,将8位右移移位寄存器设计文件下载到GW48上的EPM7128SLC84-15目标芯片中。

按GW48实验板上的高低电平输入按钮“键8”、“键7”、“键6”和“键5”,以及十六进制数输入按钮“键2”和“键1”,得到CLK、CLR、LDN和DSR,以及D[7..4]和D[3..0]不同的输入组合;观察输出发光二极管“D8”~“D1”的输出状态组合,硬件验证8位右移移位寄存器的功能。

3、实验报告:根据以上的实验内容写出实验报告,包括程序设计、软件编译、仿真分析、硬件测试和详细实验过程;给出程序分析报告、仿真波形图及其分析报告。

4、思考题

用VerilogHDL文本输入设计法设计8位左移移位寄存器,并仿真和硬件验证设计电路。

【实验5】4位十进制频率计设计

1.实验目的

通过实验让读者掌握复杂时序逻辑电路的EDA原理图输入设计法和Verilog HDL文本输入设计法,通过对设计电路的仿真和硬件验证,让读者进一步了解4位十进制频率计的功能和特性。

2.实验内容

4位十进制频率计的顶层设计文件的原理图如图4.10所示。根据频率测量的基本原理,需要一个脉宽为1秒的门限信号,作为待测信号输入频率允许计数的控制信号;1秒计数结束后,还需要一个将计数值锁存的锁存信号和一个计数器复位信号,为下一测频计数周期做准备。这3个信号可以由一个测频控制信号发生器产生,即图4.10中的testctl_v。频率计测频控制器testctl_v测控时序如图4.11所示。

testctl_v的计数使能信号cnt_en能产生一个1秒脉宽的周期信号,并对频率计的每一计数器cnt10_v 的ena使能端进行同步控制。当cnt_en高电平时,允许计数:低电平时停止计数,并保持其记录的脉冲数。在停止计数期间,首先用锁存信号load的上升沿,将计数器在前1秒钟的计数值锁存于锁存器reg4_v 中,并由外部的七段数码显示器的译码器译码,显示计数结果。设置锁存器的好处是使显示的数据稳定,不会由于周期性的复位信号而不断闪烁。锁存计数值之后,必须用复位信号rst_cnt对计数器进行复位,为下1秒钟的计数操作进行准备。

图4.104位十进制频率计的顶层设计文件的原理图

图4.11 频率计测频控制器testctl_v测控时序

(1)编辑4位十进制频率计顶层设计文件

根据图4.10所示的4位十进制频率计顶层设计文件的原理,首先用QuartusII的文本编辑方式输入编辑测频控制器testctl_v、十进制计数器cnt10_v和4位寄存器reg4_v的Verilog HDL源程序,并分别用testctl_v.v、cnt10_v.v和reg4_v.v为源文件名保存在工程目录中,它们的源程序如下://测频控制器testctl_v源程序

module testctl_v(clkk,cnt_en,rst_cnt,load);

input clkk;

output cnt_en,rst_cnt,load;

reg rst_cnt;

reg div2clk;

always @(posedge clkk)

begin

div2clk = ~div2clk;

end

always @(clkk)

begin

if(clkk==0&&div2clk==0) begin rst_cnt=1;end

else rst_cnt = 0;

end

assign load = ~div2clk;

assign cnt_en = div2clk;

endmodule

//十进制计数器cnt10_v源程序

module cnt10_v(clr, clk,ena,q,cout);

input clr, clk,ena;

output[3:0] q;

output cout;

reg[3:0] q;

reg cout;

always @(posedge clk or posedge clr)

begin

if (clr)

begin q=4'b0000; cout=0; end

else if (ena)

if (q==4'b1001)

begin q=4'b0000; cout=0; end

else

begin q=q+1 ;cout=q[3] && q[0]; end

end

endmodule

--4位锁存器reg4_v源程序

module reg4_v(clk,d,q);

input clk;

input[3:0] d;

output[3:0] q;

reg[3:0] q;

always @(posedge clk)

begin q=d; end

endmodule

(2)、完成测频控制器、十进制计数器和4位寄存器的Verilog HDL源程序编辑并建立了它们的元件符号后,打开一个新的原理图编辑窗,从工程目录中调出测频控制器testctl_v(1片)、十进制计数器cnt10_v(4片)和4位寄存器reg4_v(4片),按照图4.10所示的4位十进制频率计顶层文件的原理图完成电路连接。

完成4位十进制频率计顶层文件的原理图编辑后,以plj4_v.gdf为文件名保存在工程目录中。执行QuartusII的命令对设计文件进行编译。

编辑plj4_v.gdf的波形文件,并完成输入信号CLK、CLR和ENA电平的设置。波形文件编辑结束后以plj4_v.vwf为波形文件名存盘。执行启动仿真器“Simulator”命令开始仿真,观察仿真波形进行设计电路的功能验证。

(3)、引脚锁定

本实验选择的目标芯片为EPM7128SLC84-15,并在GW48 EDA实验平台上,采用实验电路结构No.0进行硬件验证。

参考《EDA技术与应用》教材的附录B“GW48 EDA系统使用说明”中的表B.2,将输入信号F1HZ 锁定在EPM7128SLC84-15目标芯片的70引脚,将FIN锁定在2引脚。将输出信号DOUTT[15..12]锁定在目标芯片的45、44、41和40引脚,将输出信号DOUTT[11..8]锁定在39、37、36和35引脚,将输出信号DOUTT[7..4]锁定在34、33、31和30引脚,将输出信号DOUTT[3..0]锁定在29、28、27和25引脚,将进位输出信号COUTT锁定在24引脚。

在GW48EDA实验系统中,EPM7128SLC84-15目标芯片的70引脚接于实验电路结构No.0的“Clock2”,作为1Hz信号F1HZ的输入:2引脚接于“Clock0”,作为被测频率信号FIN的输入:45、44、41和40引脚接于实验电路结构No.0的七段数码显示器“数码4”的译码器,用于显示十进制“千位”数测频输出信号DOUTT[15..12]的结果;39、37、36和35引脚接于“数码3”的译码器,用于显示十进制“百位”数测频输出信号DOUTT[11..8]的结果;34、33、31和30引脚接于“数码2”的译码器,用于显示十进制“十位”数测频输出信号DOUTT[7..4]的结果:29、28、27和25引脚接于“数码1”的译码器,用于显示十进制“个位”数测频输出信号DOUTT[3..0]的结果;24引脚接于发光二极管“D8”的译码器,用于显示进位输出信号COUTT的结果。

(4)、编程下载与硬件验证

完成引脚锁定操作后,再次对设计文件进行编译,然后打开GW48的电源,按模式选择开关,选择工作模式“0”。执行QuartusII的“Tol l”→“Programmer”命令,将4位十进制频率计设计文件下载到GW48上的EPM7128SLC84-15目标芯片中。

在GW48实验板上用跳线将“CLOCK2”接于“1Hz”,作为1Hz控制信号F1HZ的输入:用跳线将“Clock0”接于“256Hz”(或其他频率),作为被测频率FIN的输入。观察七段数码管“数码4~数码1”,检查测频结果是否正确,硬件验证4位十进制频率计的功能。

3、实验报告:根据以上的实验内容写出实验报告,包括程序设计、软件编译、仿真分析、硬件测试和详细实验过程;给出程序分析报告、仿真波形图及其分析报告。

4、思考题

用原理图输入法和Verilog HDL文本输入法设计8位十进制频率计,并仿真和硬件验证设计电路。

【实验6】秒表设计

1.实验目的

通过秒表的设计,让读者学习较复杂的数字系统设计方法。

秒表电路的原理图如图4.12所示。秒表电路结构主要包括1.5万分频器clkgen_v、十进制计数器/分频器cnt10_2和六进制计数器/分频器cnt6_2。设计中需要获得一个比较精确的100Hz(周期为1/100秒)计时脉冲,将1.5MHz的输入频率送到clkgen_v进行1.5万分频后,得到100Hz的频率由NEWCLK输出。将NEWCLK输出信号经过2个十进制计数器cnt10_2分频,得到0.00~0.99秒输出DOUT[7..4]和DOUT[3..0],并产生1秒进位输出。1秒进位输出经过由cnt10_2和cnt6_2构成的60分频器分频后,得到0~59秒的输出DOUT[15..12]和DOUT[11..8],并产生1分钟进位输出。1分钟进位输出经过由cnt10_2和cnt6_2构成的60分频器分频后,得到0~59分的输出DOUT[23..20]和DOUT[19..16]。另外,秒表电路用ENA作为计时允许信号,当ENA=I时计时开始,DNA=0时,计时结束。CLR是清除信号,当CLR=1时,秒表记录的时间被清除。

图4.12秒表电路的原理图

(1)编辑秒表电路原理图

根据图4.12所示的秒表电路原理图,首先用QuartusII的文本编辑方式输入编辑1.5万分频器clkgen_v、十进制计数器cnt10_2和六进制计数器cnt6_2的VerilogHDL源程序,并分别用clkgen_v.v、

相关主题
文本预览
相关文档 最新文档