可编程芯片实验指导书165033.docx
- 文档编号:4171990
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:27
- 大小:2.15MB
可编程芯片实验指导书165033.docx
《可编程芯片实验指导书165033.docx》由会员分享,可在线阅读,更多相关《可编程芯片实验指导书165033.docx(27页珍藏版)》请在冰豆网上搜索。
可编程芯片实验指导书165033
江西理工大学
《可编程芯片技术》实验指导书
主审人:
主撰人:
目录
实验一基于VHDL组合逻辑电路设计
实验二基于VHDL的多路选择器设计
实验三基于VHDL时序逻辑电路设计
实验四数码管扫描显示电路设计
实验五8位加法器设设计
实验六正弦信号发生器设计
实验一基于VHDL组合逻辑电路设计
一、实验目的
(1)熟悉QUARTUSII软件的VHDL使用及设计流程;
(2)掌握VHDL的基本编程方法;
(3)学习基本组合逻辑门电路的设计、仿真和硬件测试。
二、实验原理
首先利用QUARTUSII建立工程项目,在工程项目中建立VHDL文件,完成4选1数据选择器的文本编辑输入和仿真测试等步骤,测试通过之后,在实验仪上进行硬件测试,以验证本实验项目设计的功能。
三、主要仪器及耗材
本实验使用的主要仪器:
PC机,实验仪。
本实验使用的软件:
QuartusII9.0。
四、实验内容和步骤
1、实验内容
(1)用QuartusII建立工程
(2)用VHDL语言设计4选1数据选择器
(3)用文本输入法输入
(4)编译,改错,直至程序编译通过
(5)仿真,验证所设计电路的正确性
(6)下载到实验仪,进一步验证所设计电路在目标板上运行的正确性
2、实验步骤
(1)在所使用的计算机上建立自己的文件夹(注:
请建立在非C盘中);
(2)打开QuartusII,选择file-----NewProjectWizard...
弹出如下窗口,本窗口介绍创建一个工程需要执行的设置,点击next。
设置工程存放路径,工程名称,以及实体名,注意项目顶层文件实体名必须和项目名称保持一致,否则编译出错。
单击next
添加源文件到该工程,如果以及有源文件,浏览文件点击add,没有源文件,直接点击next
选择使用的芯片类型,系列,还有封装,管脚号,以及具体芯片的型号。
然后next
选择第三方工具,如果没有使用的,直接next
列出整个工程的概要,如果有设置错误,点击back重新设置,没有错误,点击finish
建立完成工程项目,注意观察QuartusII界面变化。
(3)单击工具栏中的new(或菜单命令:
FileNew),在出现的对话框中选择VHDLFile,点击OK。
(4)输入设计程序
(5)全程编译
(6)时序仿真
单击new,在出现的对话框中选择第二个标签“OtherFiles”,选择“VectorWaveformFile”,点击OK。
选择菜单View下“UtilityWindows”中的“NodeFinder”,出现“NodeFinder”对话框。
在“NodeFinder”对话框中,上面中间的“Filter”右边下拉列表框中选择“Pin:
all”,点击“list”按钮,将出现的端口信息按需要拖入波形窗口中。
设置输入波形,保存波形文件。
如需要修改仿真时间,点击Edit菜单下的EndTime。
保存波形文件。
时序仿真,仔细读仿真报告,判断电路的正确性;如不正确,修改程序,重新编译、仿真,直至设计的电路完全正确。
(7)时序仿真通过之后,根据实验仪上的芯片型号,在QuartusII工程项目中选择对应的芯片型号,进行适配(即将设计端口与芯片的管脚进行锁定),重新编译,通过之后,下载到实验仪,进行硬件仿真验证。
为端口号选择相应的管脚。
选择4号5号管脚,下载成功的话,测量这两管脚应该一个高电平,一个低电平
下载:
在mode中选择JTAG,如果没有出现下载文件,手动选择addfile....选择CPLDtest.pof文件。
选择编程器:
点击HadwareSetup..弹出对话框中选择,usbblaster,单击close
勾选相应配置选项,单击start开始下载程序
进度条都100%时说明下载完成。
0%到100%,本次下载用了25秒钟,如果进度条很快几秒钟就到100%说明没成功下载。
最后,万用表测量芯片管脚(4号高电平,5号低电平)。
验证程序确实下载OK
(8)关闭工程。
点击菜单下的closeproject,关闭当前工程项目。
五、实验注意事项
1、先在QUARTUSII中进行编辑、编译、仿真测试,直到验证结果正确为止;
2、实验仪使用:
先给实验仪连接好电源线后,再上电,然后用数据线将实验仪上左边中部的电子设计下载口(JP4—ByteBlasterII)与FPGA目标板上的JTAGPort连接起来,用下载线将实验仪与PC的并口进行连接;再将其边上的“下载允许”按键拨到“DLOAD”,再通过芯片选择开关切换到“To_FPGA”。
连接好后,即可下载进行硬件实测。
六、实验报告要求
写出正确的程序,给出正确的仿真波形图,并简要说明实验中遇到的问题及解决方法。
libraryieee;
useieee.std_logic_1164.all;
entitymux41ais
port(s:
instd_logic_vector(1downto0);
d0,d1,d2,d3:
instd_logic;
y:
outstd_logic);
endmux41a;
architectureoneofmux41ais
begin
y<=d0whens=”00”else
d1whens=”01”else
d2whens=”10”else
d3
endarchitectureone;
实验二基于VHDL的多路选择器设计
一、实验目的
(1)熟悉QUARTUSII软件的VHDL使用及设计流程;
(2)掌握VHDL的基本编程方法;
(3)掌握双2选1多路选择器电路的设计方法;
(4)了解数据选择器的功能,文本输入设计法,以及仿真和硬件测试。
二、实验原理
首先利用QUARTUSII完成2选1多路选择器的文本编辑输入和仿真测试等步骤,测试通过之后,在此基础上实现双2选1多路选择器(即将两个2选1多路选择器进行组合实现双2选1多路选择器),并进行编译、仿真测试,通过之后,再在QUARTUSII中完成硬件连接并重新编译,然后在实验仪上进行硬件测试,以验证本实验项目设计的功能。
三、主要仪器及耗材
本实验使用的主要仪器:
PC机,实验仪。
本实验使用的软件:
QUARTUSII9.0。
四、实验内容和步骤
1、在QUARTUSII建立一个工程项目mux21a,建立一个完成2选1多路选择器的文本编辑文件(mux21a.vhd),编译、仿真测试,直到通过,并给出仿真波形。
其功能为:
当s=‘0’和‘1’;时,分别有y<=‘a’和y<=‘b’。
分析下面参考代码中各语句的含义,以及该程序的整体功能。
在QuartusII上对该程序进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYmux21aIS
PORT(a,b,s:
INSTD_LOGIC;
y:
OUTSTD_LOGIC);
ENDENTITYmux21a;
ARCHITECTUREoneOFmux21aIS
BEGIN
PROCESS(a,b,s)
BEGIN
IFs='0'THENy<=a;ELSEy<=b;ENDIF;
ENDPROCESS;
ENDARCHITECTUREone;
2、建立工程项目MUXK,建立双2选1多路选择器MUXK的文本编辑文件(MUXK.vhd),并将步骤1中建立的mux21a.vhd拷贝到本工程项目的目录下。
利用2选1多路选择器看成是一个元件mux21a,利用元件例化语句进行描述,其对应的顶层原理图如图1-1所示。
编辑好后,进行编译、仿真测试,直到通过为止,并给出仿真波形。
分析下面参考代码中各语句的含义,以及该程序的整体功能。
在QuartusII上对该程序进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYMUXKIS
PORT(a1,a2,a3,s0,s1:
INSTD_LOGIC;
outy:
OUTSTD_LOGIC);
ENDENTITYMUXK;
ARCHITECTUREoneOFMUXKIS
SIGNALtmp:
STD_LOGIC;
COMPONENTmux21a
PORT(a,b,s:
INSTD_LOGIC;
y:
OUTSTD_LOGIC);
ENDCOMPONENT;
BEGIN
U1:
mux21aPORTMAP(a=>a2,b=>a3,s=>s0,y=>tmp);
U2:
mux21aPORTMAP(a=>a1,b=>tmp,s=>s1,y=>outy);
ENDARCHITECTUREone;
3、在QUARTUSII中通过仿真测试之后,进行芯片引脚锁定并重新编译,然后下载到实验仪上进行硬件测试,以验证本实验项目设计的功能。
建议选择实验电路模式5,用键1(PIO0)控制s0;用键2(PIO0)控制s1;a3、a2和a1分别接clock5、clock0和clock2;输出信号outy仍接扬声器spker。
通过短路帽选择clock0接256Hz,clock5接1024Hz,clock2接8Hz。
五、实验注意事项
1、先在QUARTUSII中进行编辑、编译、仿真测试,直到验证结果正确为止;
2、实验仪使用:
先给实验仪连接好电源线后,再上电,然后用数据线将实验仪上左边中部的电子设计下载口(JP4—ByteBlasterII)与FPGA目标板上的JTAGPort连接起来,用下载线将实验仪与PC的并口进行连接;再将其边上的“下载允许”按键拨到“DLOAD”,再通过芯片选择开关切换到“To_FPGA”。
连接好后,即可下载进行硬件实测。
六、实验报告要求
写出正确的程序,给出正确的仿真波形图,并简要说明实验中遇到的问题及解决方法。
实验三基于VHDL时序逻辑电路设计
一、实验目的
(1)熟悉QUARTUSII软件的VHDL使用及设计流程;
(2)掌握VHDL的基本编程方法;
(3)学习基本时序逻辑门电路的设计、仿真和硬件测试
二、实验原理
由数电知识可知,D触发器由输入的时钟信号(CLK)、数据输入口(D)和数据输出(Q)构成。
本程序通过进程监视CLK和D\,当CLK为上升沿的时候,将D赋值给Q,要完成这个赋值操作,必须再借助一个信号S来进行值的传递。
首先利用QUARTUSII完成D触发器的设计,然后编译、仿真测试通过之后,再在QUARTUSII中完成硬件连接并重新编译,然后在实验仪上进行硬件测试,以验证本实验项目设计的功能。
三、主要仪器及耗材
本实验使用的主要仪器:
PC机,实验仪。
本实验使用的软件:
QuartusII9.0。
四、实验内容和步骤
1、在QUARTUSII建立一个工程项目Dtrriger,建立一个触发器的文本编辑文件(Dtrigger.vhd),编译、仿真测试,直到通过,并给出仿真波形。
分析下面参考代码中各语句的含义,以及该程序的整体功能。
在QuartusII上对该程序进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形。
2、时序仿真通过后,进行适配,重新编译,下载到实验仪进行硬件验证。
五、实验注意事项
1、先在QUARTUSII中进行编辑、编译、仿真测试,直到验证结果正确为止;
2、实验仪使用:
先给实验仪连接好电源线后,再上电,然后用数据线将实验仪上左边中部的电子设计下载口(JP4—ByteBlasterII)与FPGA目标板上的JTAGPort连接起来,用下载线将实验仪与PC的并口进行连接;再将其边上的“下载允许”按键拨到“DLOAD”,再通过芯片选择开关切换到“To_FPGA”。
连接好后,即可下载进行硬件实测。
六、实验报告要求
写出正确的程序,给出正确的仿真波形图,并简要说明实验中遇到的问题及解决方法。
实验四数码管扫描显示电路设计
一、实验目的
(1)握3线-8线译码器和BCD-七段显示译码器的设计方法;
(2)了解译码器的功能;
(3)掌握原理图输入设计法和文本输入设计法,以及仿真和硬件测试。
二、实验原理
图4-1中所示的是8位数码扫描电路,其中每个数码管的8个段:
h、g、f、e、d、c、b、a(h是小数点)都分别连在一起,8个数码管分别由8个选通信号k1、k2、…k8来选择。
被选通的数码管显示数据,其余关闭。
如在某一时刻,k3为高电平,这是仅k3对应的数码管显示来自段信号端的数据,而其他7个数码管呈现关闭状态。
根据这种电路状态,如果希望在8个数码管显示的数据,就必须通过选通信号k1、k2、…k8分别单独选通,并在此同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是选通信号的扫变,就能实现扫描显示的目的。
图4-1 8位数码扫描显示电路
实验内容一中clk是扫描时钟:
SG为7段控制信号,由高位至低位分别接g、f、e、d、c、b、a7个段:
BT是位选控制信号,接上图中的8个选通信号:
k1、k2、…k8。
程序中cnt8是一个3位计数器,作为扫描计数信号,由进程P2生成;进程P3是7段译码查表输出程序;进程P1是对8个数码管选通的扫描程序,例如当cnt8等于“001”时,K2对应的数码管被选通,同时,A被赋值3,再由进程P3译码输出“1001111”,显示在数码管上即为“3”;当cnt8扫变时,将能在8个数码管上显示数据:
13579bdf。
三、主要仪器及耗材
本实验使用的主要仪器:
PC机,实验仪。
本实验使用的软件:
QuartusII9.0。
四、实验内容和步骤
1、设计8位数码管扫描显示电路并进行仿真和下载验证
(1)实验程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY SCAN_LED IS
PORT(CLK:
IN STD_LOGIC;
A1,A2,A3:
IN STD_LOGIC_VECTOR(3 DOWNTO 0);
SG:
OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
BT:
OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END;
ARCHITECTURE one OF SCAN_LED IS
SIGNAL CNT4:
STD_LOGIC_VECTOR(1 DOWNTO 0);
SIGNAL A:
STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
P1:
PROCESS(CNT4)
BEGIN
CASE CNT4 IS
WHEN "000"=>BT<="00000001";A<=1;
WHEN "001"=>BT<="00000010";A<=3;
WHEN "010"=>BT<="00000100";A<=5;
WHEN "011"=>BT<="00001000";A<=7;
WHEN "100"=>BT<="00010000";A<=9;
WHEN "101"=>BT<="00100000";A<=11;
WHEN "110"=>BT<="01000000";A<=13;
WHEN "111"=>BT<="10000000";A<=15;
WHEN OTHERS=>NULL;
END CASE;
END PROCESS P1;
P2:
PROCESS(CLK)
BEGIN
IF CLK' EVENT AND CLK='1' THEN CNT4<=CNT4+1; END IF;
END PROCESS P2;
P3:
PROCESS(A)
BEGIN
CASE A IS
WHEN "0000"=>SG<="0111111";
WHEN "0001"=>SG<="0000110";
WHEN "0010"=>SG<="1011011";
WHEN "0011"=>SG<="1001111";
WHEN "0100"=>SG<="1100110";
WHEN "0101"=>SG<="1101101";
WHEN "0110"=>SG<="1111101";
WHEN "0111"=>SG<="0000111";
WHEN "1000"=>SG<="1111111";
WHEN "1001"=>SG<="1101111";
WHEN OTHERS=>NULL;
END CASE;
END PROCESS P3;
END;
(2)模式5电路图
(3)引脚锁定与文件下载
(4)实验结果
五、实验注意事项
1、先在QUARTUSII中进行编辑、编译、仿真测试,直到验证结果正确为止;
2、实验仪使用:
先给实验仪连接好电源线后,再上电,然后用数据线将实验仪上左边中部的电子设计下载口(JP4—ByteBlasterII)与FPGA目标板上的JTAGPort连接起来,用下载线将实验仪与PC的并口进行连接;再将其边上的“下载允许”按键拨到“DLOAD”,再通过芯片选择开关切换到“To_FPGA”。
连接好后,即可下载进行硬件实测。
六、实验报告要求
写出正确的程序,给出正确的仿真波形图,并简要说明实验中遇到的问题及解决方法。
实验五8位加法器设设计
一、实验目的
(1)掌握全加器和8位加法器的设计方法;
(2)了解加法器的功能;
(3)掌握原理图输入设计法和文本输入设计法,以及仿真和硬件测试。
二、实验原理
加法器是数字系统中的基本逻辑器件例如为了节省资源减法器和硬件乘法器都可由加法器来构成。
但宽位加法器的设计是很耗费资源的,因此在实际的设计和相关系统的开发中需要注意资源的利用率和进位速度等两方面的问题。
多位加法器的构成有两种方式:
并行进位和串行进位方式。
并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。
通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。
实验表明,4 位二进制并行加法器和串行级加法器占用几乎相同的资源。
这样,多位数加法器由4 位二进制并行加法器级联构成是较好的折中选择。
因此本实验中的8 位加法器采用两个4位二进制并行加法器级联而成。
三、主要仪器及耗材
本实验使用的主要仪器:
PC机,实验仪。
本实验使用的软件:
QuartusII9.0。
四、实验内容和步骤
1、实验内容
(1)利用图形输入法设计一个一位半加器和全加器,再利用级联方法构成8位加法器。
图5-1半加器设计图
图5-2全加加器设计图
图5-3串行级联8位加法器设计图
(2)利用文本输入法设计1位全加法器,再利用层次设计方法构成8位加法器。
2、实验步骤
(1)建立工程项目(工程目录、名称和选择合适的器件)
(2)编辑设计图形文件(放置元件、连线、设定输入输出管脚名称)
(3)编译设计图形文件(检查电路是否有错误)
(4)时序仿真设计文件(得到仿真波形验证设计结果)
(5)生成元件符号
(6)通过层次化设计,由1位的半加器构成1位全加器,在构成8位的全加器。
3、进行完全编译、仿真,下载进行硬件验证。
五、实验注意事项
1、先在QUARTUSII中进行编辑、编译、仿真测试,直到验证结果正确为止;
2、实验仪使用:
先给实验仪连接好电源线后,再上电,然后用数据线将实验仪上左边中部的电子设计下载口(JP4—ByteBlasterII)与FPGA目标板上的JTAGPort连接起来,用下载线将实验仪与PC的并口进行连接;再将其边上的“下载允许”按键拨到“DLOAD”,再通过芯片选择开关切换到“To_FPGA”。
连接好后,即可下载进行硬件实测。
六、实验报告要求
写出正确的程序,给出正确的仿真波形图,并简要说明实验中遇到的问题及解决方法。
实验六正弦信号发生器设计
一、实验目的
(1)熟悉QUARTUSII软件的使用及操作流程;
(2)掌握FPGA硬件资源的使用方法。
二、实验原理
正弦信号发生器原理如图6-1所示,它由四个部分组成:
计数器或地址发生器(本实验选择6位);正弦波数据存储ROM(6位地址线,8位数据线),含有64个8位数据(一个周期);VHDL顶层设计;8位D/A(实验中用DAC0832代替)。
图6-1正弦信号发生器原理
如图6-1所示的信号发生器结构图中,顶层文件singt.vhd在FPGA中实现,包含两个部分:
ROM的地址信号发生器,由6位计数器担任;正弦数据ROM,由LPM_ROM模块构成。
LPM_ROM底层是FPGA中的EAB或M9K等模块。
地址发生器的时钟CLK的输入频率f0与每周期的波形数据点数,以及D/A输出的频率f的关系是:
f=f0/64。
三、主要仪器及耗材
本实验使用的主要仪器:
PC机,实验仪,数字示波器。
本实验使用的软件:
QuartusII9.0。
四、实验内容和步骤
1、建立ROM的初始化数据表
定制LPM_ROM初始化数据文件(建立.mif格式文件) 首先确定图6-1中ROM内的波形数据文件。
Quartus II可接受memory initialization file (.mif)格式的LPM_ROM初始化数据文件。
选择菜单file—>new命令,单击other files标签,选择memory initialization file项,产生ROM数据文件大小选择窗。
根据64点8位正弦数据的情况,选择ROM的数据数为64,数据宽取8位。
单击OK出现空的mif数据表格,然后将波形数据填入表格中。
完成后,以romd.mif文件名保存。
设置ROM数据空间的大小,以及每个数据单元的字长。
填写ROM单元的数据
2、定制LPM_ROM文件
在设计正弦信号发生器前,必须首先完成存放波形数据ROM的设计。
利用megawizard plug-in manager定制正弦信号数据ROM宏功能块,并将上面的波形数据加载于此ROM中。
选择菜单toolsmegawizard plug-in manager命令,在出现的对话框中选择create a new custom,单击next,产生图3所示对话框,如图设置
在左栏选择memory compiler项下的ROM:
1-PORT,再选择器件和VHDL语言方式,输入ROM文件存放的路径和文件名。
单击next出现如下图对话框,按图中设置。
单击next,按下图所示设置地址锁存信号inclock
单击next,按下图所示设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可编程 芯片 实验 指导书 165033