8路数据选择器16位奇偶检验器的设计文档格式.docx
《8路数据选择器16位奇偶检验器的设计文档格式.docx》由会员分享,可在线阅读,更多相关《8路数据选择器16位奇偶检验器的设计文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
力行楼203设计成绩:
批改教师:
批改时间:
一、设计目的和要求
1.课程设计目的
本实验课程的目的,旨在通过上机实验自己进行EDA设计,使学生加深理解EDA技术的基本方法,帮助和培养学生建立利用原理图和硬件描述语言进行电路设计的基本方法和利用EDA工具软件(MAX+plusⅡ)设计简单数字电子系统的能力,为以后从事有关数字电子系统方面的设计和研究开发工作打下基础。
2.课程设计的基本要求
1、通过课程设计使学生能熟练掌握一种EDA软件(MAXPLUS2)的使用方法,能熟练进行设计输入、编译、管脚分配、下载等过程。
2、通过课程设计使学生能利用EDA软件(MAXPLUS2)进行至少一个电子技术综合问题的设计(内容可由老师指定或自由选择),设计输入可采用图形输入法或AHDL硬件描述语言输入法。
3、通过课程设计使学生初步具有分析、寻找和排除电子电路中常见故障的能力。
4、通过课程设计使学生能独立写出严谨的、有理论根据的、实事求是的、文理通顺的字迹端正的课程设计报告。
3.课程设计类型
EDA技术VHDL程序设计
二、仪器和设备
计算机,MAX+plusⅡ软件
三、设计过程
1.设计内容和要求
a).设计一个八选一数据选择器,同时每一个输入端口又由3个二进制位组成,输出端口是从前八个端口选择一个由3个二进制位组成的端口。
b).设计一个16位奇偶校验器,对输入的信号进行统计奇数或者偶数的数量。
将其奇偶校验的结果输出,若为奇数个1输出为高电平;
若为偶数个1输出为低电平
2.设计方法和开发步骤
a).方法:
查阅相关资料,找到对于一个四选一数据选择器和8位奇偶校验器的介绍,运用类比的方法写出设计所需要的程序。
b).步骤:
Ⅰ去图书馆查找相关资料,了解基本原理;
Ⅱ写出真值表,根据真值表分析程序结构;
Ⅲ确定输入输出,且数据选择器使用case语句,奇偶校验器使用loop结构;
Ⅳ参考四选一数据选择器,,8位奇偶校验器,写出VHDL程序;
综合编译,仿真,并进一步完善。
3.设计思路
a)八选一数据选择器执行对8个数据源的选择,d0,d1,d2,d3,d4,d5,d6,d7定义为七个数据输入端口作为数据输入端。
使用三位地址码产生8个地址信号,由a0a1a2选择信号,从而实现y的选择输出。
真值表如下:
输入
输出
A2
A1
A0
Y
D0
1
D1
D2
D3
0
D4
D5
D6
D7
又因为我们的每个输入端口又由3个二进制位组成,输出又由某一个端口的三个二进制位组成,只要再把每一个输入端口,输出端口设成具有3个的位矢量,然后再做其余的相应修改即可。
b)可以使用FOR_LOOP语句,语法格式如下:
[LOOP标号:
]FOR循环变量,IN循环次数范围LOOP顺序语句
ENDLOOP[LOOP标号];
FOR后的“循环变量”是一个临时变量,属LOOP语句的局部变量,不必事先定义。
“循环次数范围”规定LOOP语句中的顺序语句被执行的次数。
循环变量从循环次数数范围的初值开始,每执行完一次顺序语句后递增1,直至达到循环次数范围指定的最大值。
其中定义输入端口十六位的数据总线为a,输出端口y将其奇偶校验的结果输出。
4.设计难点
a)在设计数据选择器的时候没有理解输入输出端口还是由3个二进制位组成,理解出错,还用元件例化的方法走了不少弯路。
b)16位奇偶校验器由于对for..loop语句的不熟悉调试不少时间。
四、设计结果与分析
1.思路问题以及测试结果失败分析
a)由于八选一数据选择器比较的简单,大体的程序编写出来了,由于刚开始没理解要求,输入输出都要求是由3个二进制位组成,按着自己的错误理解进行再修改而没有成功,最后在老师的又一次讲述下听懂了要求,然后很快就出来了。
b.)16位奇偶校验器调试着几次就没什么问题了。
2.程序简要说明
VHDL代码如下
八选一数据选择器(每个输入输出端口都是由3个二进制位组成)
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYEIGHT_XUAN_1IS
PORT(RST:
INSTD_LOGIC;
A:
INSTD_LOGIC_VECTOR(2DOWNTO0);
--定义A2,A1,A0的端口为输入
D0:
D1:
D2:
D3:
D4:
D5:
D6:
D7:
Q:
OUTSTD_LOGIC_VECTOR(2DOWNTO0));
--定义Q2,Q1,Q0的端口为输出
ENDEIGHT_XUAN_1;
ARCHITECTUREARTOFEIGHT_XUAN_1IS
SIGNALQ1:
STD_LOGIC_VECTOR(2DOWNTO0);
--定义信号量
BEGIN
PROCESS(A)
IFRST='
1'
THENQ1<
="
000"
;
--当复位信号“1”有效,清零
ELSE
CASEAIS--对信号量赋值,实现选择的功能
WHEN"
=>
Q1<
=D0;
001"
=D1;
010"
=D2;
011"
=D3;
100"
=D4;
101"
=D5;
110"
=D6;
111"
=D7;
WHENOTHERS=>
NULL;
--当A没被列出来时,Q1执行空操作
ENDCASE;
ENDIF;
ENDPROCESS;
Q<
=Q1;
ENDART;
仿真波形如下:
16位奇偶检验器设计
ENTITYparity_checkIS
PORT(
a:
INSTD_LOGIC_VECTOR(15DOWNTO0);
--输入端口十六位的数据
y:
OUTSTD_LOGIC);
--将其奇偶校验的结果输出,若为奇数个1输出为高电平;
ENDparity_check;
ARCHITECTUREarchOFparity_checkIS
PROCESS(a)
VARIABLEtemp:
STD_LOGIC;
temp:
='
0'
--偶校验初始值设为0,奇校验初始值设为1
FORiIN0TO15LOOP
=tempXORa(i);
--Temp与a(i)异或将其结果赋给temp
ENDLOOP;
y<
=temp;
ENDarch;
五、实验心得体会
通过本次课程设计的学习,我深深的体会到设计课的重要性和目的性。
本次设计课不仅仅培养了我们实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的进行设计的能力。
它不仅仅是一个学习新知识新方法的好机会,同时也是对我所学知识的一次综合的检验和复习,使我明白了自己的缺陷所在,从而查漏补缺。
希望学校以后多安排一些类似的实践环节,让同学们学以致用。
虽然软件的仿真功能很强大,但是还是需要操作人员仔细的进行观察及调试的,否则也容易出现仿真错误。
在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。
在应用VHDL的过程中让我真正领会到了其并行运行与其他软件顺序执行的差别及其在电路设计上的优越性。
用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。
六、参考文献
1.刘江海等.EDA技术.华中科技大学出版社,2009.
2.李国洪等.可编程器件EDA设计与实践.机械工业出版社,2004.
3.康华光等。
电子技术基础.高等教育出版社,2005.