EDA实验报告.参考分享
时间:2020-09-10 12:19:46 来源:勤学考试网 本文已影响 人
EDA实验报告
实验一 :QUARTUS II 软件使用及
组合电路设计仿真
实验目的 :
学习 QUARTUS II 软件的使用 , 掌握软件工程的建立 ,VHDL 源
文件的设计与波形仿真等基本内容。
实验内容 :
1. 四选一多路选择器的设计
基本功能及原理 :
选择器常用于信号的切换 , 四选一选择器常用于信号的切换 , 四
选一选择器可以用于 4 路信号的切换。四选一选择器有四个输入端
a,b,c,d, 两个信号选择端 s(0) 与 s(1) 及一个信号输出端 y。当 s 输
入不同的选择信号时 , 就可以使 a,b,c,d 中某一个相应的输入信号与
输出 y 端接通。逻辑符号如下 :
程序设计 :
EDA实验报告
软件编译 :
在编辑器中输入并保存了以上四选一选择器的 VHDL源程序后就
可以对它进行编译了 , 编译的最终目的就是为了生成可以进行仿真、
定时分析及下载到可编程器件的相关文件。
仿真分析 :
仿真结果如下图所示
分析 :
由仿真图可以得到以下结论 :
EDA实验报告
当 s=0(00) 时 y=a; 当 s=1(01) 时 y=b; 当 s=2(10) 时 y=c; 当 s=3(11)
时 y=d。符合我们最开始设想的功能设计 , 这说明源程序正确。
2. 七段译码器程序设计
基本功能及原理 :
七段译码器就是用来显示数字的 ,7 段数码就是纯组合电路 , 通常的小规模专用 IC, 如 74 或 4000 系列的器件只能作十进制 BCD码译码 ,
然而数字系统中的数据处理与运算都就是 2 进制的 , 所以输出表达都
就是 16 进制的 , 为了满足 16 进制数的译码显示 , 最方便的方法就就是利用 VHDL译码程序在 FPGA或 CPLD中实现。本项实验很容易实现这一目的。输出信号的 7 位分别接到数码管的 7 个段 , 本实验中用的数码管为共阳极的 , 接有低电平的段发亮。
数码管的图形如下
七段译码器的逻辑符号 :
程序设计 :
EDA实验报告
软件编译 :
在编辑器中输入并保存了以上七段译码器的 VHDL源程序后就可
以对它进行编译了 , 编译的最终目的就是为了生成可以进行仿真、定
时分析及下载到可编程器件的相关文件
。
仿真分析 :
仿真结果如下图所示 :
EDA实验报告
分析 :
由仿真的结果可以得到以下结论 :
a=0(0000)时 led7=1000000 此时数码管显示 0;
a=1(0001)时 led7=1111001 此时数码管显示 1;
a=2(0010)时 led7=0100100 此时数码管显示 2;
a=3(0011)时 led7=0110000 此时数码管显示 3;
a=4(0100)时 led7=0011001 此时数码管显示 4;
a=5(0101)时 led7=0010010 此时数码管显示 5;
a=6(0110)时 led7=0000010 此时数码管显示 6;
a=7(0111)时 led7=1111000 此时数码管显示 7;
a=8(1000)时 led7=0000000 此时数码管显示 8;
a=9(1001)时 led7=0010000 此时数码管显示 9;
a=10(1010)时 led7=0001000 此时数码管显示 A;
a=11(1011)时 led7=0000011 此时数码管显示 B;
a=12(1100)时 led7=1000110 此时数码管显示 C;
EDA实验报告
a=13(1101)时 led7=0100001 此时数码管显示 D;
a=14(1110)时 led7=0000110 此时数码管显示 E;
a=15(1111)时 led7=0001110 此时数码管显示 F;
这完全符合我们最开始的功能设计 ,所以可以说明源 VHDL 程序就是正确的。
实验心得 :
通过这次实验 ,我基本掌握了 QUARTUS II 软件的使用 , 也掌握了软件工程的建立 ,VHDL源文件的设计与波形仿真等基本内容。在实验中 , 我发现 EDA这门课十分有趣 , 从一个器件的功能设计到程序设计, 再到编译成功 , 最后得到仿真的结果 , 这其中的每一步都需要认真分析 , 一遍又一遍的编译 , 修改。当然 , 中间出现过错误 , 但我依然不放弃, 一点一点的修改 , 验证 , 最终终于出现了正确的仿真结果 , 虽然有一些毛刺 , 但就是总的来说 , 不影响整体的结果。
实验二 : 计数器设计与显示
实验目的 :
(1) 熟悉利用 QUARTUS II 中的原理图输入法设计组合电路 ,
掌握层次化的设计方法 ;
(2) 学习计数器设计 , 多层次设计方法与总线数据输入方式的仿真 , 并进行电路板下载演示验证。
实验内容 :
完成计数器设计基本功能及原理 :
EDA实验报告
本实验要设计一个含有异步清零与计数使能的 4 位二进制加减
可控计数器 , 即有一个清零端与使能端 , 当清零端为 1 时异步清零 , 即
所有输出值都为 0, 当使能端为 0 时, 计数器停止工作 , 当使能端为 1
, 正常工作 , 由时钟控制。另外 , 还应该有一个控制端 , 当控制端为 0
, 进行减法运算 , 当控制端为 1 时, 进行加法运算。输出端有输出值与进位端 , 当进行加法运算时 , 输出值递增 , 当减法运算时 , 输出值递减, 同时进位端进行相应的变化。
4 位二进制加减计数器的逻辑符号 :
程序设计 :
EDA实验报告
软件编译 :
在编辑器中输入并保存了以上 4 位二进制加减计数器的 VHDL源程序
后就可以对它进行编译了 , 编译的最终目的就是为了生成可以进行仿
EDA实验报告
真、定时分析及下载到可编程器件的相关文件。仿真分析 :
仿真结果如下 :
分析 :
由仿真图可以得到以下结论 :
当 enable端为 0 时,所有数值都为 0,当 enable端为 1 时,计数器正常工作;当 reset 端为 1 时,异步清零 ,所有输出数值为 0,当 reset 端为 0 时,
正常工作 ;当 updown 端为 0 时,进行减法运算 ,当 updown 为 1 时,进行加法运算 ;另外,当程序进行减法运算时 ,出现借位时 ,co 为 1,其余为 0,
当进行加法运算时 ,出现进位时 ,co 为 1,其余为 0。图中所有的功能与我们设计的完全一样 ,所以说明源程序正确。
2.50M 分频器的设计
基本功能及原理 :
50M分频器的作用主要就是控制后面的数码管显示的快慢。即一个
模为 50M的计数器 , 由时钟控制 , 分频器所有的端口基本与上述 4 位二
EDA实验报告
进制加减计数器的端口一样 , 原理也基本相同。分频器的进位端 (co)
用来控制加减计数器的时钟 , 将两个器件连接起来。
50M分频器的逻辑符号如下 :
程序设计 :
软件编译 :
在编辑器中输入并保存了以上 50M分频器的 VHDL源程序后就可以对
EDA实验报告
它进行编译了 , 编译的最终目的就是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件。
仿真分析 :
结果如下 :
上图为仿真图的一部分 ,由于整个图太大 ,所以显示一部分即可 ,其余部分如图以上图规律一直递增 ,直到 50M 为止 ,然后再重复 ,如此循环 。
上图就是部分输出的显示 , 由于整个图太大 , 所以只显示部分 , 其余部分如图递增。
分析 :
由仿真图可以瞧出 , 当 reset 为 0,enable 为 1 时( 因为本实验中计数器的模值太大 , 为了尽可能多的观察出图形 , 可让 reset 一直为
0,enable 一直为 1, 即一直正常工作 ), 输出值由 0 一直递增到 50M,构
EDA实验报告
成一个加法计数器 , 与我们设计的功能一致。
3. 七段译码器程序设计
基本功能及原理 :
七段译码器就是用来显示数字的 ,7 段数码就是纯组合电路 , 通常
的小规模专用 IC, 如 74 或 4000 系列的器件只能作十进制 BCD码译码 ,
然而数字系统中的数据处理与运算都就是 2 进制的 , 所以输出表达都
就是 16 进制的 , 为了满足 16 进制数的译码显示 , 最方便的方法就就是
利用 VHDL译码程序在 FPGA或 CPLD中实现。本项实验很容易实现这
一目的。输出信号的 7 位分别接到数码管的 7 个段 , 本实验中用的数
码管为共阳极的 , 接有低电平的段发亮。
七段译码器的逻辑符号 :
程序设计 :
EDA实验报告
软件编译 :
在编辑器中输入并保存了以上七段译码器的 VHDL源程序后就可以对
它进行编译了 , 编译的最终目的就是为了生成可以进行仿真、定时分
析及下载到可编程器件的相关文件。
仿真分析 :
仿真结果如下图所示 :
EDA实验报告
分析 : 具体分析与实验一中七段
译码器的分析相同 , 在此不再赘述。
计数器与译码器连接电路的顶层文件原理图 :
原理图连接好之后就可以进行引脚的锁定 ,然后将整个程序下载到已经安装好的电路板上 ,即可进行仿真演示。
实验心得 :
经过本次试验 , 我学到了很多。首先 , 我加强了对 QUARTUS II软件的掌握 ; 其次 , 我掌握了电路图的顶层文件原理图的连接 , 学会了如何把自己设计的程序正确的转化为器件 , 然后正确的连接起来 , 形成一个
EDA实验报告
整体的功能器件 ; 最后 , 我学会了如何安装以及如何正确的把完整的
程序下载到电路板上 , 并进行演示验证。
实验三 :大作业设计
(循环彩灯控制器 )
实验目的 :
综合应用数字电路的各种设计方法 , 完成一个较为复杂的电路
设计。
实验内容 :
流水灯 ( 循环彩灯 ) 的设计设计任务 :
设计一个循环彩灯控制器 , 该控制器可控制 10 个发光二极管循环点亮 , 间隔点亮或者闪烁等花型。
要求至少三种以上花型 , 并用按键控制花型之间的转换 , 用数码管显示花型的序号。
基本原理 :
该控制器由两部分组成 , 一部分就是一个 50M 的分频器 , 其主要用来控制花色变化的快慢 ; 另一部分就是一个彩灯控制器 , 该彩灯控制器可由两个开关控制花型的序号 ,10 个输出分别控制 10 个发光二极管的亮暗 , 当输出为 1 时, 该发光二极管亮 , 输出为 0 时, 该二极管灭。
EDA实验报告
将分频器的 co 端用来控制彩灯控制器的时钟 , 将两个器件连接起来。
1. 分频器的设计
50M分频器与实验二中的分频器一样 , 这里不再赘述。
2、彩灯控制器的设计
基本原理 :
该彩灯控制器由时钟控制 ,reset 异步清零 ,enable 当做使能端 , 由两
个开关 do(0-1) 来控制选择不同的花型 ,10 个输出端 lig(0-9) 来控制
10 个 LED灯的亮灭。因为用了两个开关来控制花型 , 所以一共有 4 种
花色。
彩灯控制器的逻辑符号 :
程序设计 :
EDA实验报告
EDA实验报告
EDA实验报告
3.七段译码器的设计
七段译码器就是用来显示不同花型的序号的 ,其设计与实验一中的设计一样 ,这里不再赘述。
循环彩灯控制器的原理图 :
仿真波形如下 :
第一种花型 :
EDA实验报告
第二种花型 :
第三种花型 :
第四种花型 :
仿真分析 :
EDA实验报告
将以上仿真波形图与源程序对比 ,我们可以瞧到 ,仿真出来的波形与我
们设计的功能一致 ,这说明源 VHDL 程序就是正确的。
实验心得 :
本次试验就是在没有老师指导的情况下自己完成的 ,我在参考了
网上的程序的情况下 ,最终成功的设计并正确的演示出了循环彩灯的
不同花型。通过本次试验 ,我真正的体会到了 DEA 这门课的乐趣 ,也发
现它对我们的学习与生活带来很大的方便。