
实验一QuartusII集成开发环境及EDA开发流程一、实验目的1.通过实验掌握QuartusIl集成开发环境的安装:2.通过实验掌握EDA的开发流程;二、实验仪器与器件硬件:KONXIN实验教学系统,PC机:>软件:QuartusII12.1开发套件,WindowsXP/Windows7。三、实验内容安装QuartusIⅡ,连接下载线,安装下载器驱动,创建工程,编写文件,编译综合,引脚锁定,运行程序,观察实验结果。四、实验原理及步骤实验原理:在本实验平台主板上白色JTAGPORT口为程序下载口,通过下载器将程序下载到FPGA的RAM中。用四位拨码开关作为四位输入二进制数来控制数码管的显示,数码管显示的字符与这四位二进制数相对应。实验步骤:1、开机后,同时按ctrl+shift+alt+F6,若有弹出程序框,则输入密码123,选择解冻。(注:有些电脑重启后会自动还原,需要使用此方法解冻,否则下次开机还得重装软件。安装软件完毕后重新按ctrl+shift+alt+F6,选择冻结电脑。)2、安装QuartusII将安装包拷贝到电脑上D:ISoftware路径下。(注意:所有安装包保存路径和软件安装路径都不能有中文。)打开/1-QuartusII12p1_KXlq12.1\12.1_177_acds_windows的setup.exe安装Quartus II 。的打开II11-Quartus12p1_KXlq12.112.1_177_devices_cyclone_max_legacy_windows.exe安装devices库。打开1-QuartusII12p1KXlq12.1\12.1\Quartus12.1x86破解器,根据Crack.docx文本步骤进行。3、连接下载线,并安装驱动
实验一 Quartus II 集成开发环境及 EDA 开发流程 一、实验目的 1. 通过实验掌握 QuartusⅡ集成开发环境的安装; 2. 通过实验掌握 EDA 的开发流程; 二、实验仪器与器件 硬件:KONXIN 实验教学系统,PC 机; 软件:QuartusⅡ 12.1 开发套件,Windows XP/Windows 7。 三、实验内容 安装 QuartusⅡ,连接下载线,安装下载器驱动,创建工程,编写文件,编 译综合,引脚锁定,运行程序,观察实验结果。 四、实验原理及步骤 实验原理: 在本实验平台主板上白色 JTAG PORT 口为程序下载口,通过下载器将程序 下载到 FPGA 的 RAM 中。用四位拔码开关作为四位输入二进制数来控制数码管 的显示,数码管显示的字符与这四位二进制数相对应。 实验步骤: 1、开机后,同时按 ctrl+shift+alt+F6,若有弹出程序框,则输入密码 123,选择 解冻。 (注:有些电脑重启后会自动还原,需要使用此方法解冻,否则下次开机还 得重装软件。安装软件完毕后重新按 ctrl+shift+alt+F6,选择冻结电脑。) 2、安装 QuartusⅡ 将安装包拷贝到电脑上 D:\Software 路径下。 (注意:所有安装包保存路径和软件安装路径都不能有中文。) 打 开\1-Quartus II 12p1_KX\q12.1\12.1_177_acds_windows 的 setup.exe 安 装 QuartusⅡ。 打 开 \1-Quartus II 12p1_KX\q12.1 的 12.1_177_devices_cyclone_max_legacy_windows.exe 安装 devices 库。 打 开 1-Quartus II 12p1_KX\q12.1\12.1\Quartus_12.1_x86 破 解 器 , 根 据 Crack.docx 文本步骤进行。 3、连接下载线,并安装驱动

用十针排线将下载器与板上JTAG口(白色)连接,用USB线将下载器上的ALTERAUSB-Blaster口与PC连接。根据附件里文档“USB下载器驱动路径的指定.doc”来安装下载器驱动。将数码管连接到JP7接口。888888888中酒4、创建工程打开Quartus,选择File-NewPriojectWizard,指定工程保存路径,给工程命名,选择芯片型号EP4CE22F17C8。&qnartus f32-bitEleEditMewBroject AssignmentsProcessingToolsWindowHelpD New...CrH+NVCtrl+oOpen...Cui+F4lnsNewProyzaroOpenProject.Ctrl+3aveProtectoomRyukeTorSDrectoryTme,To
用十针排线将下载器与板上 JTAG 口(白色)连接,用 USB 线将下载器上 的 ALTERA USB-Blaster 口与 PC 连接。 根据附件里文档“USB 下载器驱动路径的指定.doc”来安装下载器驱动。 将数码管连接到 JP7 接口。 4、创建工程 打开 Quartus,选择 File-New Prioject Wizard,指定工程保存路径,给工程命 名,选择芯片型号 EP4CE22F17C8。

Family&DeviceSettingsLoage3of55、编写文件新建Verilog文件,File-New-VerilogHDLFile并将如下代码写入文件中:moduleseg7(a,led7s);input [3:0] a;output[6:0]led7s;reg[6:0]led7s;(a)always @case(a)4'b0000led7s <=7'b0111111;4'b00017'b0000110;led7s <=:4b0010led7s<=7'bl01101l;4'b0011led7s7'b10011114'b0100led7s7'b1100110.4-b0101led7s7'b1101101-14-b0110led7s7'b1111101.:4'b0111led7s7'b0000111.4'b1000led7s7'b1111111:4'b10017b110111lled7s:4'b1010led7s7'b1110111<a4'b1011led7s7'b1111100<14'b1100led7s7'b0111001<4'b11017b1011110led7s<-7'b11110014'b1110led7s<=4'b11117b1110001;led7s <=endcaseendmodule保存文件为led7s.v,并将该文件生成为一个原件符号,File-Create/Update-Create Symbol Files for Currnet File:
5、编写文件 新建 Verilog 文件,File-New-Verilog HDL File 并将如下代码写入文件中: 保 存 文 件 为 led7s.v , 并 将 该 文 件 生 成 为 一 个 原 件 符 号 , File-Create/Update-Create Symbol Files for Currnet File:

OenProteUCa905BSHoSes新建原理图文件New-BlockDiagrm/SchematicFile,照下图完成原理图绘制,并命名为seg7_bdf.bdf:(bdf文件名不要与内部模块名seg7相同!)osobobEXEUOADOTOOAU将原理图文件设置为TOP层,编译综合文件(Processing-StarCompilation):
新建原理图文件 New-Block Diagrm/Schematic File,照下图完成原理图绘制, 并命名为 seg7_bdf.bdf:(bdf 文件名不要与内部模块名 seg7 相同!) 将原理图文件设置为 TOP 层,编译综合文件(Processing-StarCompilation):

GQuartus II 32-Dir-E:/EDA Degig/tenProcessingoEileEdrViewProjectAssignmentstestiBHA4号xProject NavigatorFleshede图1ed799OpenEemoveFle fromProjectAHierarchy司DesionUnitsce中oxTaskcustomize...Flow:CompilationTasComoleDesiAnalysis&SynthesiB>Fitter(Place&RouteAssembler (Genersteprogramming fies)TimeQuest Timing AnalysisBEDANetlistWriteProgramDevice (OpenProgrammer)6、引脚锁定打开Assignments-PinPlanner,照下图将变量与管脚对应:XOO02OO40AaleCcpsTog View - Wire BosCydone IVE-EP4CE22F17CEFeePned7、下载程序重新编译后,打开Tools-Programer,下载程序:
6、引脚锁定 打开 Assignments-Pin Planner,照下图将变量与管脚对应: 7、下载程序 重新编译后,打开 Tools-Programer,下载程序:

AA8、观察实验结果拨动4个拔码开关,可以看到数码管显示对应的数字。C五、实验报告1、用截屏或拍照的方式记录主要实验环节中观察到的现象;2、写出实验过程中出现的问题及解决方法:3、附加练习附加练习1:用两个数码管(接JP7和JP8)同时显示相同的数字,效果如图“两个数码管同时显示jpg”所示。(提示:数码管引脚见:“核心板布局.jpg");附加练习2:将4位拔码开关的低两位(二进制)加上高两位(二进制)的和,显示在数码管(接JP7)上。例如:4位拔码开关输入为4'b0110,原来的显示结果为“6”,更改后的结果应为:2"b01+2"b10=“3
8、观察实验结果 拨动 4 个拔码开关,可以看到数码管显示对应的数字。 五、实验报告 1、用截屏或拍照的方式记录主要实验环节中观察到的现象; 2、写出实验过程中出现的问题及解决方法; 3、附加练习 附加练习 1:用两个数码管(接 JP7 和 JP8)同时显示相同的数字,效果如 图“两个数码管同时显示.jpg”所示。(提示:数码管引脚见:“核心板布局.jpg”); 附加练习 2:将 4 位拔码开关的低两位(二进制)加上高两位(二进制)的 和,显示在数码管(接 JP7)上。例如:4 位拔码开关输入为 4'b0110,原来的显 示结果为“6”,更改后的结果应为:2'b01 + 2'b10 = “3

实验二Verilog基本逻辑电路设计一、实验目的3.通过实验掌握Verilog基本时序逻辑电路的设计方法;4.学习时钟分频电路的设计方法。二、实验仪器与器件>硬件:KONXIN实验教学系统,PC机:>软件:QuartusII12.1开发套件,WindowsXP/Windows7。三、实验内容完成一个具有异步复位、同步计数使能和可预置数据的十进制计数器,并将计数结果实时显示于7段数码管,同时在计数值为“9”期间,点亮一个LED灯。在此基础上,完成具有扩展功能的附加实验。四、实验原理及步骤实验原理:在输入时钟的上升沿计数,时钟、使能、预置控制信号由扩展板引入,复位键、7段数码管和LED灯位于核心板。实验步骤:9、创建工程,并编写Verilog程序:module cnTio(clk,rst,en,load,cout,data,led7s,ledo);input clk,en,rst,load;input [3:0] data;output cout;[6:0]led7s;outputoutput ledo;reg [3:0] dout;cout;regreg [6:0] led7s;always @(posedgeclk or negedge rst)beginif(!rst)dout<=o;else if (en)beginif(!load)dout <=data;elseif(dout<9)dout<=dout + l;else dout <=4b0000;endendalways@(dout)4'h9)cout=1‘b1;if(doutelse cout = 1'bo;
实验二 Verilog 基本逻辑电路设计 一、实验目的 3. 通过实验掌握 Verilog 基本时序逻辑电路的设计方法; 4. 学习时钟分频电路的设计方法。 二、实验仪器与器件 硬件:KONXIN 实验教学系统,PC 机; 软件:QuartusⅡ12.1 开发套件,Windows XP/Windows 7。 三、实验内容 完成一个具有异步复位、同步计数使能和可预置数据的十进制计数器,并将 计数结果实时显示于 7 段数码管,同时在计数值为“9”期间,点亮一个 LED 灯。 在此基础上,完成具有扩展功能的附加实验。 四、实验原理及步骤 实验原理: 在输入时钟的上升沿计数,时钟、使能、预置控制信号由扩展板引入,复位 键、7 段数码管和 LED 灯位于核心板。 实验步骤: 9、创建工程,并编写 Verilog 程序:

always @(dout)begincase(dout)4'b0000led7s7*b0111111;4'b0001<=led7s7b0000110;4b0010led7s7/b1011011;4b0011led7s<=7-b1001111;4b0100led7s<7b1100110;-4b0101led7s7'b1101101;.4b0110led7s价7-b1111101;-4b0111led7s<7'b0000111;4*b1000led7s7-b1111111;4b1001led7s价7'b1101111;44b1010<=led7s7b1110111;4b1011led7s7b1111100;<=4b1100led7s7b0111001;个-4b1101led7s7*b1011110;4/b1110led7s<=-b1111001;4b11111ed7s<7-b1110001;endcaseendendmodule10、连线及FPGA管脚分配(1)将实验箱左下角“标准时钟信号源”模块的1Hz时钟源飞线到核心板JP5插座的E9(clk)上;(2)将实验箱右下角“高低电平输出控制开关”模块J7插座的L7和L8分别飞线到核心板JP6的R16(en)和N16(load)上。(3)Kl:R9作为复位信号(rst):(4)数码管接于JP7:LED:G2作为LED指示(cout)。管脚分配如下图所示:in_IclkPIN_E9InputoutcoutPIN_G2Outputindata[3]InputPIN_A9data[2]InputPINB9CPIN_B8data[1]InputPINA8data[0]InputinPIN_N16enInputoutled7[6]OutputPIN_A13outled7s[5]PINA14Outputout led7s[4]PIN_B13Outputoutled7s[3]PIN_C14Outputout led7s[2]OutputPIN_B14outled7s[1]OutputPIN_B16out led7s[0]OutputPIN_C15inloadInputPIN_R16nrstInputPINR9
10、 连线及 FPGA 管脚分配 (1)将实验箱左下角“标准时钟信号源”模块的 1Hz 时钟源飞线到核心板 JP5 插座的 E9(clk)上; (2)将实验箱右下角“高低电平输出控制开关”模块 J7 插座的 L7 和 L8 分 别飞线到核心板 JP6 的 R16(en)和 N16(load)上。 (3)K1:R9 作为复位信号(rst); (4)数码管接于 JP7;LED:G2 作为 LED 指示(cout)。 管脚分配如下图所示:

11、下载程序,观察实验结果。可以看到数码管显示的数字由0到9循环增加:分别按下K1键、L7键、L8键并拔动拔码开关,观察实验现象。五、实验报告1、用截屏或拍照的方式记录实验环节中观察到的现象,写出实验过程中出现的问题及解决方法。2、附加练习附加练习1:为本工程增加一个置“9”开关(“高低电平输出控制开关”模块J7插座的L6),使得在rst和load无效,且en有效的情况下,拔动此开关直接将数码管显示的数值设置为9。附加练习2:将时钟信号改接到“标准时钟信号源”模块的8Hz时钟源,观察实验现象;设计一个8分频的时钟分频电路,对信号源进行分频,使得数码管上计数的速度恢复到原来(1Hz时)的水平。实验三ModelSim功能仿真一、实验目的5.掌握测试文件的编写及ModelSim功能仿真方法;6.深入理解Verilog模块化设计思想。二、实验仪器与器件>硬件:KONXIN实验教学系统,PC机:>软件:QuartusII12.1开发套件,WindowsXP/Windows7。三、实验内容ModelSim中创建工程,编译测试文件并添加到工程中,运行仿真,观察仿真波形。四、实验原理及步骤实验原理:本实验通过仿真二分频文件,对输入时钟进行二分频(例如:将20MHz时钟信号分频为10MHz波形信号),通过观察仿真出来的波形来检验是否分频成功。实验步骤:1、创建Modelsim工程打开ModelSim,选择File>New>Project,填写ProjectName、ProjectLocation
11、 下载程序,观察实验结果。 可以看到数码管显示的数字由 0 到 9 循环增加;分别按下 K1 键、L7 键、 L8 键并拔动拔码开关,观察实验现象。 五、实验报告 1、用截屏或拍照的方式记录实验环节中观察到的现象,写出实验过程中出 现的问题及解决方法。 2、附加练习 附加练习 1:为本工程增加一个置“9”开关(“高低电平输出控制开关”模 块 J7 插座的 L6),使得在 rst 和 load 无效,且 en 有效的情况下,拔动此开关直 接将数码管显示的数值设置为 9。 附加练习 2:将时钟信号改接到“标准时钟信号源”模块的 8Hz 时钟源,观 察实验现象;设计一个 8 分频的时钟分频电路,对信号源进行分频,使得数码管 上计数的速度恢复到原来(1Hz 时)的水平。 实验三 ModelSim 功能仿真 一、实验目的 5. 掌握测试文件的编写及 ModelSim 功能仿真方法; 6. 深入理解 Verilog 模块化设计思想。 二、实验仪器与器件 硬件:KONXIN 实验教学系统,PC 机; 软件:QuartusⅡ 12.1 开发套件,Windows XP/Windows 7。 三、实验内容 ModelSim 中创建工程,编译测试文件并添加到工程中,运行仿真,观察仿 真波形。 四、实验原理及步骤 实验原理: 本实验通过仿真二分频文件,对输入时钟进行二分频(例如:将 20MHz 时 钟信号分频为 10MHz 波形信号),通过观察仿真出来的波形来检验是否分频成功。 实验步骤: 1、创建 Modelsim 工程 打开 ModelSim,选择 File>New>Project,填写 Project Name、Project Location

其余默认。modelsim.exe快捷方式1KB2、编写二分频文件及其测试文件选择CreateNewFile,给文件命名clk_2.v,Addfileastype选择Verilog。编写二分频文件1moduletwo division(rst, clk,clk 2);2input rst:3input clk;0output reg clk 2;56always@(posedge clk or negedge rst)7begin0if(~rst)clk2=0;9else clk 2= ~clk 2;10end11endmodule编写激励文件clk2_top.v(File|NewSource/Verilog)1'timescale10ns/ins2module clk tp;34integer i:5reg rst t, clk t;6wire clk 2_t;789initial10begin11clkt=o;rst t=l;1213#10rst_t=o;14#io rst t =i:15161for(i=o:i<256:i=i+1)#10clkt=~clkt;17forever #io clk t =~clk t;18end1920initial#io0o $stop;2122two division ul(23.rst(rst t),24.clk(clk_t),25.clk2(clk2 t));2627endmodule注意:仿真文件和被测文件中所有reg型变量必须给出明确的初值。编译所有文件CompileAll,Status显示对号时则编译成功
其余默认。 2、编写二分频文件及其测试文件 选择 Create New File,给文件命名 clk_2.v,Add file as type 选择 Verilog。 编写二分频文件 编写激励文件 clk_2_top.v(File | New |Source | Verilog) 注意:仿真文件和被测文件中所有 reg 型变量必须给出明确的初值。 编译所有文件 Compile All,Status 显示对号时则编译成功