VHDL和数字电路设计课程实验.doc
文本预览下载声明
VHDL和数字电路设计课程实验
课程实验目的:
(1)理论和实践相结合,使学生更加深入地掌握所学内容;
(2)掌握如何利用VHDL硬件描述语言方法设计数字电路;
(3)掌握如何利用PLD器件结合EDA系统工具设计数字集成电路;
(4)培养学生独立开发设计电路系统的能力;
(5)培养学生具备从事科研的能力。
实验条件:
要求具备可编程逻辑器件和EDA设计工具实验条件。实验室可提供带配有可编程逻辑器件的通用型GELIN EPF10K10 A系统板、专业型GELIN EPF10K10(B)系统板、GELIN EPF10K10(C)系统板。提供的EDA设计工具为MaxplusⅡ系统。
实验目录:
实验一 二选一数据选择器
实验二 数据对象的定义
附加实验:一位BCD码加法器的设计
实验三 四位二进制加法器设计
附加实验:利用Generic设计一个通用的加法器
实验四 四位二进制乘法器设计
附加实验:n位二进制乘法器设计
实验五 十进制计数器设计
实验六 交通灯控制器的设计
实验七 数字钟的设计
实验一二选一数据选择器设计
实验目的:掌握VHDL程序的结构和熟悉MaxplusⅡ系统的操作。
实验内容:二选一数据选择器电路设计。
实验要求:采用电路真值表方式进行设计。
设计原理:
电路真值表如下:
电路真值表
S C 0 A 1 B
实验报告:
(1)电路示意图及源程序代码;
(2)功能仿真波形文件。
实验二 数据对象的定义
实验目的:掌握如何定义一个信号或变量数据对象,以及它们的传输特性。
实验内容:
(1)利用VHDL进行如下电路的描述
(2)D触发器的设计
实验要求:分别采用定义一个信号对象和变量对象两种方式进行电路设计。
设计原理:D触发器的状态随输入状态的变化而变化,其电路示意图几电路特性表为:
D触发器电路示意图 触发器特性表
CLK Q ↑ Qn-1 ↑ D
实验报告:
(1)电路示意图及源程序代码;
(2)功能仿真波形文件。
实验(1)仿真结果:
仿真结果为(采用信号对象):x=c xor b, y=c xor b。
仿真结果为(采用变量对象):x=c xor a, y=c xor b。
结论:在一个进程中,多次对同一信号对象赋值,只有最后一次赋值起作用,前面的赋值语句被忽略;而变量对象则不同,在过程内的每次赋值均会起作用。
实验(2)仿真结果:
结论:在一个进程中,信号的更新不是立即执行的,而是在end process,即过程结束时才执行;而变量在过程内的更新是立即起作用的。
附加实验:一位BCD码加法器的设计
实验三 四位二进制加法器设计
实验目的:掌握元件例化语句的使用。
实验内容:四位二进制加法器设计。
实验要求:采用元件例化语句进行设计。
设计原理:
首先设计一个一位全加器,然后采用元件例化语句设计一个四位二进制加法器。电路示意图如下所示:A、B、Sum均为四位矢量信号。
Sumi=Ai⊕Bi⊕Cii
Coi=AiBi+(Ai+Bi)Cii
实验报告:
(1)电路示意图及源程序代码;
(2)功能仿真波形文件。
附加实验:利用Generic设计一个通用的加法器
实验四 四位二进制乘法器设计
实验目的:学习组合逻辑电路的VHDL设计。
实验内容:设计一个四位并行二进制乘法器。
实验要求:要求设计的四位并行二进制乘法器并行输入并行输出。
设计原理:
如果设计一个n位的二进制乘法器,那么乘积的位数为2n。那么四位二进制相乘可得到八位二进制数,其实现和十进制乘法类似,可分为两步进行:“取与”和“相加”。
电路示意图及运算如下所示:A和B为四位矢量信号,M为八位矢量信号。
a3 a2 a1 a0 被乘数
× b3 b2 b1 b0 乘数
------------------------------------------------------------------
a3b0 a2b0 a1b0 a0b0
a3b1 a2b1 a1b1 a0b1
a3b2 a2b2 a1b2 a0b2
+ a3b3 a2b3 a1b3 a0b3
------------------------------------------------------------------
m7 m6 m5 m4 m3 m2 m1 m0
乘法运算也可以只通过被乘数移位来实现,再由乘数判断是否相加即可,如下所示。
a3 a2 a1 a0 被乘数
× b3 b2 b1 b0 乘数
-------------------------
显示全部