EDA技术实验报告 7000字.docx
《EDA技术实验报告 7000字.docx》由会员分享,可在线阅读,更多相关《EDA技术实验报告 7000字.docx(20页珍藏版)》请在冰豆网上搜索。
![EDA技术实验报告 7000字.docx](https://file1.bdocx.com/fileroot1/2023-2/1/cbf091b6-ead0-4186-9cde-166b618af8bf/cbf091b6-ead0-4186-9cde-166b618af8bf1.gif)
EDA技术实验报告7000字
福建农林大学金山学院
课程名称:
姓名:
系:
专业:
年级:
学号:
指导教师:
职称:
信息工程类
实验报告
eda技术
信息与机电工程系电子信息工程
年月日
实验项目列表
实验一quartusii9.0软件的使用
1.实验目的和要求
本实验为验证性实验,其目的是熟悉quartusii9.0软件的使用,学会利用quartusii9.0软件来完成整个eda开发的流程。
2.实验原理
利用vhdl完成电路设计后,必须借助eda工具中的综合器、适配器、时序仿真器和编程器等工具进行相应的处理后,才能使此项设计在fpga上完成硬件实现,并得到硬件测试,从而使vhdl设计得到最终的验证。
quartusii是altera提供的fpga/cpld开发集成环境,包括模块化的编译器,能满足各种特定设计的需要,同时也支持第三方的仿真工具。
3.主要仪器设备(实验用的软硬件环境)
实验的硬件环境是:
微机一台
gw48eda实验开发系统一套电源线一根十芯jtag口线一根usb下载线一根usb下载器一个实验的软件环境是:
quartusii9.0软件
4.操作方法与实验步骤
利用quartusii9.0软件实现eda的基本设计流程:
创建工程、编辑文本输入设计文件、编译前设置、全程编译、功能仿真。
利用quartusii9.0软件实现引脚锁定和编译文件下载。
利用quartusii9.0软件实现原理图输入设计文件的编辑和产生相应的原理图符号元件。
5.实验内容及实验数据记录1)新建工程(文本输入法)
2)新建工程(原理图输入法)
3)编译工程
选择如上菜单栏中的选项译工程。
4)时序仿真
选择如上菜单栏中的选项译工程。
5)下载程序tools-〉programmer6.实验数据处理与分析
1)任何一项设计都是一项工程(实验三中半加器、一位全加器以及8位全加器的设计都应该新建工程,不可在同一个工程中进行设计),不同的设计项目最好放在不同的文件夹中,而同一工程的所有文件都必须放在同一文件夹中。
2)新建一个文件夹时应特别注意文件夹名不能用中文,最好也不要用数字。
2)编译工程结果将提示是否有错误或是警告,错误需要修改,警告则根据具体情况进行修改。
(常见警告一个是未定义的引脚模式-改为输入高电阻模式,另一
a、file-〉newfile->vectorwaveformfile:
新建波形文件
b、在波形文件下,右键单击选择insertnodeorbus..进行节点的添加c、assignments-〉setting-〉simulatorsetting:
选择功能仿真functionald、电击仿真按钮进行仿真分析。
时序仿真时候注意点:
?
设置仿真时间区域。
对于时序仿真来说,将仿真时间轴设置在一个合理的短
时间区域上十分重要。
(由后续试验验证了此结论)通常设置的时间范围在数十微妙之间:
选择edit->endtime?
文件后缀名:
.vwf
4)下载程序前应连接好下载线,开启电源,确保连线可用(我的电脑-)管理-〉设备管理器-〉串行通信端口);其次在打开窗口中单击hardwaresetup,选择对应项;最后单击start进行下载,右上角有相关的下载进度提示,当提示为100%时候表示下载成功。
7.质疑、建议、问题讨论
通过本次实验,对quartusii9.0软件有了初步的认识,在实验的基础上基本掌握了利用quartusii9.0软件实现eda的基本设计流程:
创建工程、编辑文本输入设计文件、编译前设置、全程编译、功能仿真等。
实验二用文本输入法设计2选1多路选择器
1.实验目的和要求
本实验为综合性实验,综合了简单组合电路逻辑、quartusii的使用方法、多层次电路设计、仿真和硬件测试等内容。
其目的是熟悉quartusii的vhdl文本设计流程全过程。
2.实验原理
2选1多路选择器真值表
sllhh
alh××
b××lh
ylhlh
3.主要仪器设备(实验用的软硬件环境)
实验的硬件环境是:
微机一台
gw48eda实验开发系统一套电源线一根十芯jtag口线一根usb下载线一根usb下载器一个实验的软件环境是:
quartusii9.0软件
4.操作方法与实验步骤
首先利用quartusii完成2选1多路选择器的文本编辑输入(mux21a.vhd)和仿真测试等步骤,然后进行仿真。
最后在实验系统上进行硬件测试,实际验证本项实验的功能。
将设计好的2选1多路多路选择器看成是一个元件mux21a,利用元件例化语句描述下图,并将此文件放在同一目录e:
\muxfile中。
5.实验内容及实验数据记录
(1)程序设计
entitymux21aisport(a,b,s:
inbit;y:
outbit);endentitymux21a;
architectureoneofmux21aisbegin
process(a,b,s)begin
ifs=0theny<=a;elsey<=b;endif;
endprocess;endarchitectureone;
(2)软件编译
(3)仿真波形图
(4)硬件测试结果
将程序下载到实验板,按下k1键可以得到不同的鸣叫效果。
改变频率的选择,可以改变蜂鸣器的鸣叫效果。
6.实验数据处理与分析
(1)程序分析
1、一般的,可综合的,即能将vhdl程序编译成可实现的电路端口模式有如下四种:
in(输入端口),out(输出端口),inout(双向端口),buffer(缓冲端口),本二选一实验的实体中定义三个输入引脚分别为:
a、b、s和一个输出引脚y,四个引脚的数据类型均为bit.
2、使用vhdl描述语句实现功能当s=0时候选择输入a,当s=1时候选择输入b,即实现二选一的功能。
(2)仿真分析
从时序仿真结果中观察可以发现,实验结果符合预期结果,但是有一定的延时。
(3)硬件测试分析引脚锁定:
选择模式5
由实验结果可发现实验结果符合预期结果。
7.质疑、建议、问题讨论
在仿真时,通过设定a、b不同的输入,是在输出到扬声器时会有声音的不同以区别,从而通过键1对s的控制测试实验结果。
实验中应注意a、b所接引脚的选择,另在实验中clock0及clock5的频率是可以自由选择的,但注意要正确选择频率以保障在输出时频率在人耳课接受的范围内。
实验三用文本输入法设计7段数码显示译码器
1.实验目的和要求
本实验为综合性实验,综合了简单组合电路逻辑,quartusii的使用方法,多层次电路设计、仿真和硬件测试等内容。
其目的是熟悉quartusii的vhdl文本设计流程全过程。
2.实验原理
7段数码是纯组合电路,通常的小规模专用ic,如74或4000系列的器件只能作十进制bcd码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用译码程序在fpga/cpld中来实现。
7段数码显示译码器的输出信号led7s的7位分别接共阴7段数码管的7个段,高位在左,低位在右。
例如当led7s输出为“1101101”时,数码管的7个段:
g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;接有高电平的段发亮,于是数码管显示“5”。
注意,这里没有考虑表示小数点的发光管,如果要考虑,需要增加段h,此时实体说明中的led7s:
outstd_logic_vector(6downto0)应改为?
(7downto0)。
3.主要仪器设备(实验用的软硬件环境)
实验的硬件环境是:
微机一台
gw48eda实验开发系统一套电源线一根十芯jtag口线一根usb下载线一根usb下载器一个实验的软件环境是:
quartusii9.0软件
4.操作方法与实验步骤
利用quartusii完成7段数码显示译码器的文本编辑输入(decl7s.vhd)和仿真测试等步骤,最后在实验系统上进行硬件测试,实际验证本项实验的功能。
5.实验内容及实验数据记录
(1)程序设计
libraryieee;
useieee.std_logic_1164.all;
entitydecl7sis
port(a:
instd_logic_vector(3downto0);
led7s:
outstd_logic_vector(6downto0));end;
architectureoneofdecl7sisbegin
process(a)begin
caseais
when0000=>led7s<=0111111;when0001=>led7s<=0000110;
when0010=>led7s<=1011011;
when0011=>led7s<=1001111;when0100=>led7s<=1100110;
when0101=>led7s<=1101101;
when0110=>led7s<=1111101;when0111=>led7s<=0000111;when1000=>led7s<=1111111;when1001=>led7s<=1101111;
when1010=>led7s<=1110111;
when1011=>led7s<=1111100;when1100=>led7s<=0111001;when1101=>led7s<=1011110;when1110=>led7s<=1111001;when1111=>led7s<=1110001;whenothers=>null;endcase;endprocess;end;
(2)时序编译1)时序编译出错
2)修改后正确
(3)仿真波形图
(4)硬件测试流程及其结果1)显示出现乱码
2)正确显示
0~7
6.实验数据处理与分析
(1)程序分析
1)程序定义74位的输入端口a和7位的输出端口led7s。
2)输入和输出的对应关系如下:
(2)仿真分析
由时序仿真的结果可以观察发现符合预期结果。
(3)硬件测试分析引脚锁定:
选择模式6硬件显示不规则数字
原因:
led7s数码管引脚锁定反向,改正后可正常显示0~7如上所示,其中引脚8无法控制实现最终结果。
修改为其他引脚仍不可显示正常结果(目前原因未知)
7.质疑、建议、问题讨论
1)不管是工程的建立或者是时序仿真以及下载调试中的每一个步骤都要完成,本次实验中就由于少了一个步骤而提示编译出错。
2)硬件测试过程中键8为什么无法控制显示?
是硬件问题还是软件问题?
根据检查结果,软件引脚配置没有问题,猜测可能是硬件上出现一些问题。
实验四用原理图输入方法设计8位全加器
1.实验目的和要求
本实验为综合性实验,综合了简单组合电路逻辑、quartusii的原理图输入方法、层次化设计的方法等内容。
其目的是通过一个8位全加器的设计熟悉eda软件进行电子线路设计的详细流程。
学会对实验板上的fpga/cpld进行编程下载,硬件验证自己的设计项目。
2.实验原理
1位全加器可以用两个半加器及一个或门连接而成,半加器原理图的设计方i113法很多,我们用一个与门、一个非门和同或门(xnor为同或符合,相同为1,不同为0)来实现。
先设计底层文件:
半加器,再设计顶层文件全加器。
i113
(1)半加器的设计:
半加器表达式:
进位:
co=aandb和:
so=axnor(notb)
半加器原理图如下:
a00
not
xnor2
11
b0101
so0110
co0001
and2
(2)全加器的设计:
全加器原理图如下:
u1
h_adder
ainbinab
coso
ed
h_adderabu2
aor2a
c
sum
bin
u3
sum
cobso
f_adder
(3)8位全加器的设计:
8位全加器原理图如下:
3.主要仪器设备(实验用的软硬件环境)
实验的硬件环境是:
微机一台
gw48eda实验开发系统一套电源线一根十芯jtag口线一根usb下载线一根usb下载器一个实验的软件环境是:
quartusii9.0软件
4.操作方法与实验步骤
按照以上介绍的方法与流程,完成半加器和全加器的设计,包括原理图输入、编译、综合、适配、仿真、实验板上的硬件测试,并将此全加器电路设置成一个硬件符号入库。
建立一个更高的原理图设计层次,利用以上获得的1位全加器构成8位全加器,并完成编译、综合、适配、仿真、硬件测试。
5.实验内容及实验数据记录
1)半加法器原理图及生成的器件
2)全加法器原理图
3)8位加法器原理图
4)半加器时序仿真
5)全加器时序仿真
6)8bit加法器仿真
7)编译结果
8)硬件测试结果
6.实验数据处理与分析
(1)原理分析?
半加器表达式:
进位:
co=aandb和:
so=axnor(notb)
?
8位二进制加法器可以由8个全加器通过级联的方式构成。
根据全加器级联
的原理,实验用vhdl先设计一个半加器,由半加器组成一位全加器,然后再利用一位全加器采用元件例化的方式实现加法器。
?
半加器可以有多种表达方式,实验使用逻辑门元件(电路原理图)构建了半加器电路实现了半加器。
?
由电路设计可见一位全加器可以由两个半加器和一个或门连接而成。
(2)仿真分析
由仿真结果可以观察得到如下结果:
?
半加器仿真结果
由分析结果可以得到sum是有a,b相加后得到的,但未有进位。
当ain,bin都为0时,so为0;当ain,bin中有一个为1时,so为1,而这之前co都是为0,表明未进位。
当ain,bin都为1时,此时so为0,co为1,表明已进位。
?
全加器仿真结果
当cin=0的情况下和半加器的结果是一样的,当cin=1时,若ain=0时,count=0;若ain=1时,count=1;由此可见半加器和全加器的设计是正确的。
?
8bit仿真结果
由仿真结果可以观察发现符合预期结果。
(3)硬件测试分析引脚锁定:
选择电路模式1
由上图可以观察发现当输入为11和22时候输出得到33,输入为10和1时候得到输出11,同样可以验证其他运算结果。
7.质疑、建议、问题讨论
该实验在结果测试中出现了一些问题,如图中所示结果正确。
而当两位加数的任意一个的低位为1时,会出现和的结果少加1的情况。
如21+14即会出现和为34,而当使21变为22时结果便会正确显示。
该问题未得到解决。
在测试时还应当注意结果溢出的问题,因此要选择合适的测试数据。
实验五乐曲硬件演奏电路的设计1.实验目的和要求
本实验为设计性实验。
将vhdl硬件描述语言,简单组合电路逻辑quartusii的使用等知识应用到实际硬件电路设计中。
其目的是学会在eda软件平台中利用vhdl硬件描述语言设计电路.设计要求利用数控分频器设计乐曲硬件演奏电路。
2.实验原理
与利用微处理器(cpu或mcu)来实现乐曲演奏相比,以纯硬件完成乐曲演奏电路的逻辑要复杂得多,如果不借助于功能强大的eda工具和硬件描述语言,仅凭传统的数字逻辑技术,即使最简单的演奏电路也难以实现。
本实验设计项目是“梁祝”乐曲演奏电路的实现。
我们知道,组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的两个基本要素,问题是如何来获取这两个要素所对应的数值以及通过纯硬件的手段来利用这些数值实现所希望乐曲的演奏效果。
乐曲硬件演奏电路的顶层文件原理图如图5-1所示,主系统由3个模块组成:
notetabs.vhd、tonetaba.vhd和speakera.vhd。
其中,模块u1(notetabs)类似于弹琴的人的手指;模块u2(tonetaba)类似于琴键;模块u3(speakera)类似于琴弦或音调发声器。
图5-1乐曲硬件演奏电路的顶层文件原理图
下面介绍图5-1的工作原理:
1、音符的频率可以由图4-1中的speakera获得,这是一个数控分频器。
由其clk端输入一具有较高频率(这里是12mhz)的信号,通过speakera分频后由spkout输出,由于直接从数控分频器中出来的输出信号是脉宽极窄的脉冲式信号,为了有利于驱动扬声器,需另加一个d触发器以均衡其占空比,但这时的频率将是原来的1/2。
speakera对clk输入信号的分频比由11位预置数tone[10..0]决定。
spkout的输出频率将决定每一音符的音调,这样,分频计数器的预置值tone[10..0]与spkout的输出频率,就有了对应关系。
例如在tonetaba模块中若取tone[10..0]=1036,将发音符为3音的信号频率。
2、音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定,图5-1中模块tonetaba的功能首先是为speakera提供决定所发音符的分频预置数,而此数在speakera输入口停留的时间即为此音符的节拍值。
模块tonetaba是乐曲简谱码对应的分频预置数查表电路,其中设置了“梁祝”乐曲全部音符所对应的分频预置数,共13个,每一音符的停留时间由音乐节拍和音调发生器模块notetabs的clk的输入频率决定,在此为4hz。
这13个值的输出由对应于tonetaba的4位输入值index[3..0]确定,而index[3..0]最多有16种可选值。
输向tonetaba中index[3..0]的值toneindex[3..0]的输出值与持续的时间由模块notetabs决定。
3、在notetabs中设置了一个8位二进制计数器(计数最大值为138),作为音符数据rom的地址发生器。
这个计数器的计数频率选为4hz,即每一计数值的停留时间为0.25秒,恰为当全音符设为1秒时,四四拍的4分音符持续时间。
例如,notetabs在以下的vhdl逻辑描述中,“梁祝”乐曲的第一个音符为“3”,此音在逻辑中停留了4个时钟节拍,即1秒时间,相应地,所对应的“3”音符分频预置值为1036,在speakera的输入端停留了1秒。
随着notetabs中的计数器按4hz的时钟速率作加法计数时,即随地址值递增时,音符数据rom中的音符数据将从rom中通过toneindex[3..0]端口输向tonetaba模块,“梁祝”乐曲就开始连续自然地演奏起来了。
3.主要仪器设备(实验用的软硬件环境)
实验的硬件环境是:
微机一台
gw48eda实验开发系统一套电源线一根十芯jtag口线一根usb下载线一根usb下载器一个实验的软件环境是:
quartusii9.0软件4.操作方法与实验步骤
首先给出该电路的各个基本模块,再利用quartusii完成各个模块的文本编辑输入和仿真测试等步骤。
完成此项设计,并在eda实验系统上的fpga目标器件中实现之。
5.实验内容及实验数据记录
1)输入notetabs.vhdl,编译、仿真,给出时序波形
2)输入tonetaba.vhdl,编译、仿真,给出时序波形
3)输入speakera.vhdl,编译、仿真,给出时序波形
4)建立硬件演奏电路顶层文件songer.vhdl,将以上4个vhdl文件拷贝进顶层文件所在目录,用元件例化语句和层次化设计方法,完成乐曲硬件演奏电路的
?
错误波形
?
调试后得到正确波形
2)硬件测试结果
可以听到不同的蜂鸣器声音,改变clk的选择项可以变换声音的频率。
6.实验数据处理与分析
1)vhdl语句功能
?
--硬件乐曲演奏电路顶层设计
libraryieee;
useieee.std_logic_1164.all;
entitysongeris
port(clk12mhz:
instd_logic;--音调频率信号
clk8hz:
instd_logic;--节拍频率信号
code1:
outstd_logic_vector(3downto0);--简谱码输出显示high1:
outstd_logic;--高8度指示
spkout:
outstd_logic);--声音输出
end;
port(clk:
instd_logic;
toneindex:
outstd_logic_vector(3downto0));
port(index:
instd_logic_vector(3downto0);
code:
outstd_logic_vector(3downto0);
high:
outstd_logic;
tone:
outstd_logic_vector(10downto0));
port(clk:
instd_logic;
tone:
instd_logic_vector(10downto0);
spks:
outstd_logic);
signaltone:
std_logic_vector(10downto0);
signaltoneindex:
std_logic_vector(3downto0);
begin
u1:
notetabsportmap(clk=>clk8hz,toneindex=>toneindex);
u2:
tonetabaportmap(index=>toneindex,tone=>tone,code=>code1,high=>high1);u3:
speakeraportmap(clk=>clk12mhz,tone=>tone,spks=>spkout);
end;
说明:
用vhdl文本输入法和元件例化语句完成硬件演奏电路顶层文件,spkout是经spks的最终的输出,决定所发出的每一音符的音调。
音符不同,spkout的脉宽也不同,通过扬声器发出的声音也不同,因而可以演奏音乐,得到预期的效果。
?
--数控分频器设计
libraryieee