《数字系统设计》实验指导书及综合作业1.docx
《《数字系统设计》实验指导书及综合作业1.docx》由会员分享,可在线阅读,更多相关《《数字系统设计》实验指导书及综合作业1.docx(10页珍藏版)》请在冰点文库上搜索。
![《数字系统设计》实验指导书及综合作业1.docx](https://file1.bingdoc.com/fileroot1/2023-6/11/31f280f2-0240-44da-a51f-c4dc154f2cb7/31f280f2-0240-44da-a51f-c4dc154f2cb71.gif)
《数字系统设计》实验指导书及综合作业1
《数字系统设计》
实验报告
班级:
13级电子信息
姓名:
学号:
指导老师:
实验1组合电路的设计
实验目的:
熟悉ISE的VHDL文本设计流程全过程,学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。
实验内容:
首先利用ISE完成2选1多路选择器的文本编辑输入(mux21a.vhd)和仿真测试等步骤,给出仿真波形。
实验程序:
ENTITYmux21aIS
PORT(a,b,s:
INBIT;
Y:
OUTBIT);
ENDENTITYmux21a;
ARCHITECTUREoneOFmux21aIS
BEGIN
PROCESS(a,b,s)
BEGIN
IFs='0'THENy<=a;ELSEy<=b;
ENDIF;
ENDPROCESS;
ENDARCHITECTUREone;
实验结果:
1、综合电路图
2、仿真时序图
实验分析:
从实验程序可知,实体部分定义了输入与输出端口;结构体部分根据语句排列的先后顺序,用关键词IF引导,首先通过条件语句的判断表达式(s='0')做判断,若满足条件,即s为低电平,于是执行赋值语句y<=a,即将a端口的数据向y输出;否则(即ELSE),即s为高电平,则执行赋值语句y<=b。
在仿真时序图中,我们已经将a,b,s进行了赋值,以s为基准分析输出结果如下:
在0~100ns內,s=0,则执行输出为y=a;
在100~200ns内,s=1,则输出y=b;
在200~400ns内,s=0,则输出y=a;(其后与此类似)
验证一下,输出确实满足实验要求,故仿真结果正确。
实验2时序电路的设计
实验目的:
熟悉ISE的VHDL文本设计过程,学习简单时序电路的设计、仿真和测试。
实验任务:
设计一个带使能输入及同步清0的增1/减1的3位计数器,并仿真。
实验程序:
Libraryieee;
Useieee.std_logic_1164.all;
Useieee.std_logic_unsigned.all;
Entityup_downis
Port(clk,rst,en,up:
instd_logic;
Sum:
outstd_logic_vector(2downto0);
Cout:
outstd_logic);
End;
Architectureaofup_downis
Signalcount:
std_logic_vector(2downto0);
Begin
Process(clk,rst)
Begin
Ifrst=’0’then
Count<=(others=>’0’);
Elsifrising_edge(clk)then
Ifen=’1’then
Caseupis
When‘1’=>count<=count+1;
Whenothers=>count<=count-1;
Endcase;
Endif;
Endif;
Endprocess;
Sum<=count;
Cout<=’1’whenen=’1’and((up=’1’andcount=7)or(up=’0’andcount=0))else‘0’;
End;
实验结果:
1、综合电路图
2、仿真时序图
实验分析:
从试验程序可以知道,该程序要实现一个带使能输入及同步清0的增1/减1的3位计数器。
当rst=’0’,输出被清零,否则(即rst=1)且使能端en=1时开始进行计数。
计数规则如下,(前提条件rst=1,en=1)当up=1时,输出count<=count+1,否则(即up=0)输出count<=count-1。
这里为了方便分析,我们将0~82ns的时间内rst=0,之后的时间为高电平。
所以,在82ns以后,我们以“up”的值为基准,并结合clk进行实验结果的分析:
在0~82ns内,rst=0,输出count=0;
之后,在第一个clk上升沿,en=1,up=1,执行count<=count+1,,count从0增加到1;
在第2,3个clk上升沿时,en=0,保持当前值1;
在第3个上升沿时,en=1,up=1,执行count<=count+1,count输出加1,为2;
第4个上升沿时,同理计数加1,为3.
综上分析,实验仿真结果显然满足实验要求,故仿真结果正确。
实验38-3优先编码器的VHDL设计
实验目的:
1、通过常见基本组合逻辑电路的设计,熟悉EDA设计流程。
2、熟悉文本输入及仿真步骤。
3、掌握VHDL设计实体的基本结构及文字规则。
4、理解硬件描述语言和具体电路的映射关系。
实验原理:
表8-3优先编码器真值表
输入
输出
EIN
0N
1N
2N
3N
4N
5N
6N
7N
A2N
A1N
A0N
GSN
EON
1
X
X
X
X
X
X
X
X
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
X
X
X
X
X
X
X
0
0
0
0
0
1
0
X
X
X
X
X
X
0
1
0
0
1
0
1
0
X
X
X
X
X
0
1
1
0
1
0
0
1
0
X
X
X
X
0
1
1
1
0
1
1
0
1
0
X
X
X
0
1
1
1
1
1
0
0
0
1
0
X
X
0
1
1
1
1
1
1
0
1
0
1
0
X
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
实验源程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYENCODERIS
PORT(
D:
INSTD_LOGIC_VECTOR(0TO7);
A:
OUTSTD_LOGIC_VECTOR(0TO2)
);
END;
ARCHITECTUREXIANIOFENCODERIS
BEGIN
PROCESS(D)
BEGIN
IF(D(7)='0')THENA<="111";
ELSIF(D(6)='0')THENA<="110";
ELSIF(D(5)='0')THENA<="101";
ELSIF(D(4)='0')THENA<="100";
ELSIF(D(3)='0')THENA<="011";
ELSIF(D
(2)='0')THENA<="010";
ELSIF(D
(1)='0')THENA<="001";
ELSIF(D(0)='0')THENA<="000";
ELSEA<="ZZZ";
ENDIF;
ENDPROCESS;
END;
实验结果
1、综合电路图
2、仿真波形
实验分析:
该试验程序要实现的是一个8-3优先编码器,且优先级别是:
D(7)>D(6)>D(5)>D(4)>D(3)>D
(2)>D
(1)>D(0)(低电平有效)。
根据程序和时序仿真图进行分析:
(高电平为“1”,低电平为“0”)
在0~200ns内,D(7)=0,则输出A=111,对应二进制为7;
在200~300ns内,D(7)=1,D(6)=0,则输出A=110,对应二进制为6;
在300~600ns内,D(7)=D(6)=1,D(5)=0,则输出A=101,对应二进制为5;
在600ns以后,D(7)=0,则输出A=111,对应二进制为7.
综上分析,仿真结果满则实验要求,显然仿真结果正确。