EDA作业.docx
- 文档编号:6263308
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:10
- 大小:208.35KB
EDA作业.docx
《EDA作业.docx》由会员分享,可在线阅读,更多相关《EDA作业.docx(10页珍藏版)》请在冰豆网上搜索。
EDA作业
GUIZHOUUNIVERSITY
EDA实验报告
实验课程名称EDA技术与实验
实验项目名称VHDL实验
学院科技学院
专业班级2010级电子信息科学与技术
学生姓名王斌
学号1020040464
任课教师李良荣
十二进制同步计数器
REST端用于清零,EN端控制计数器工作,CLK位时钟脉冲输入端,QA、QB、QC、QD为计数器的4位二进制计数值输出端。
⑴变量
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCOUNT12IS
PORT(CLK,RESET,EN:
INSTD_LOGIC;
QA,QB,QC,QD:
OUTSTD_LOGIC);
ENDCOUNT12;
ARCHITECTUREBEHAVEOFCOUNT12IS
BEGIN
PROCESS(CLK,RESET)
VARIABLECOUNT_4:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
IF(RESET='0')THEN
COUNT_4:
="0000";
ELSIF(CLK'EVENTANDCLK='1')THEN
IF(EN='1')THEN
IF(COUNT_4="1011")THEN
COUNT_4:
="0000";
ELSE
COUNT_4:
=COUNT_4+'1';
ENDIF;
ENDIF;
ENDIF;
QA<=COUNT_4(0);
QB<=COUNT_4
(1);
QC<=COUNT_4
(2);
QD<=COUNT_4(3);
ENDPROCESS;
ENDBEHAVE;
变量的赋值符号“:
=”,(程序中点蓝色字体)变量数值的改变是通过变量赋值来实现的。
赋值语句右方的表达式必须是一个与目标具有相同的数据类型的数值,这个表达式可以是一个运算表达式,也可以是一个数值。
⑵信号定义方法
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCOUNT12IS
PORT(CLK,RESET,EN:
INSTD_LOGIC;
QA,QB,QC,QD:
OUTSTD_LOGIC);
ENDCOUNT12;
ARCHITECTUREBEHAVEOFCOUNT12IS
SIGNALCOUNT_4:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
QA<=COUNT_4(0);
QB<=COUNT_4
(1);
QC<=COUNT_4
(2);
QD<=COUNT_4(3);
PROCESS(CLK,RESET)
BEGIN
IF(RESET='0')THEN
COUNT_4<="0000";
ELSIF(CLK'EVENTANDCLK='1')THEN
IF(EN='1')THEN
IF(COUNT_4="1011")THEN
COUNT_4<="0000";
ELSE
COUNT_4<=COUNT_4+'1';
ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
ENDBEHAVE;
当信号定义了数据类型和表达方式后,在VHDL设计中就能对信号进行赋值了,格式:
目标信号<=表达式。
这里的表达式可以是一个运算表达式,也可以是数据对象(变量、信号或常量)。
⑶软件仿真——以变量为例
a、运行
单击软件上的
按钮,编译通过—如图1-1
图1-1
b、查看RTL图
c、新建波形文件
执行主菜单File下的New命令,在弹出的新建文件对话框中选择“Other File”标签。
选择途中的Vector Waveform File。
添加仿真信号。
得仿真波形如图1—2
图1—2
结果分析:
从仿真波形来看,是二进制同步计数器设计通过,EN和RESET都必须是高电平的时候才工作,所以我设置的是整段都为高电平,QA、QB、QC、QD、它们都是在时钟脉冲来的时候,输出开始计数,从0000——1011(当到1100是复位)。
(图中蓝线处清零)
3-8译码器
3-8译码器(74LS138)是最常用的一种小规模集成电路,它有3个二进制输入端A、B、C和8个译码输出端Y0-Y7。
对输入端A、B、C的每一组取值进行译码,就可以确定Y0-Y7的那一位变为低电平(有效),从而达到译码的目的。
3-8译码器还有选通输入端G1、G2、G3,只有在G1=1,G2=0,G3=0时,3-8译码器才进行正常的译码,否则Y0-Y7输出将均为高电平。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYYIMAQIIS
PORT(A,B,C,G1,G2,G3:
INSTD_LOGIC;
Y:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDYIMAQI;
ARCHITECTUREBEHAVE38OFYIMAQIIS
SIGNALINDATA:
STD_LOGIC_VECTOR(2DOWNTO0);
BEGIN
INDATA<=C&B&A;
PROCESS(INDATA,G1,G2,G3)
BEGIN
IF(G1='1'ANDG2='0'ANDG3='0')THEN
CASEINDATAIS
WHEN"000"=>Y<="11111110";
WHEN"001"=>Y<="11111101";
WHEN"010"=>Y<="11111011";
WHEN"011"=>Y<="11110111";
WHEN"100"=>Y<="11101111";
WHEN"101"=>Y<="11011111";
WHEN"110"=>Y<="10111111";
WHEN"111"=>Y<="01111110";
WHENOTHERS=>Y<="XXXXXXXX";
ENDCASE;
ELSE
Y<="11111111";
ENDIF;
ENDPROCESS;
ENDBEHAVE38;
a、运行
单击软件上的
按钮,编译通过—如图1-3
遇到的问题:
①VHDL标识符必须以字母开头,不能以下划线和数字开头。
②变量的赋值符号“:
=”和信号赋值符“<=”的区别(上面题中已经分析)。
③注意CASE语句,常用来描述总线、编码、译码等的行为。
b、查看RTL图
c、新建波形文件
执行主菜单File下的New命令,在弹出的新建文件对话框中选择“Other File”标签。
选择途中的Vector Waveform File。
添加仿真信号。
如图1-4
图1-4
结果分析:
在G1=1,G2=0,G3=0时,Y0-Y7输出和设计结果一样(低电平有效)。
总结:
通过对VHDL语言的描述设计,把VHDL的软件设计与现实硬件挂钩,是软件转化为硬件电路的关键步骤。
通过本次实验,我更加了解VHDL工具的强大作用,在今后的学习中,我会更进一步的去了解。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 作业
![提示](https://static.bdocx.com/images/bang_tan.gif)