1、实验步骤:
异或门过程
1、 新建,编写源代码。
(1).选择保存项和芯片类型:【File】-【new project wizard】-【next】(设置文件路径+设置project name为【C:\Users\lenovo\Desktop\笔记\大二上\数字电路\实验课\实验一\异或门】)-【next】(设置文件名【gg】)-【next】(设置芯片类型为【cyclone-EP1CT144C8】)-【finish】
(2).新建:【file】-【new】(【design file-VHDL file】)-【OK】
2、写好源代码,保存文件(gg.vhd)。
3、编译与调试。确定源代码文件为当前工程文件,点击【processing】-【start compilation】进行文件编译。编译结果有一个警告,文件编译成功。
4、波形仿真及验证。新建一个vector waveform file。按照程序所述插入a,b,c三个节点(a、b为输入节点,c为输出节点)。(操作为:右击 -【insert】-【insert node or bus】-【node finder】(pins=all;【list】)-【>>】-【ok】-【ok】)。任意设置a,b的输入波形…点击保存按钮保存。(操作为:点击name(如:en))-右击-【value】-【count】(如设置binary;start value=0;end value=1;count every=10ns),同理设置name b(如0,1,5),保存)。然后【start simulation】,出name C的输出图。
5、功能仿真,即没有延迟的仿真,仅用来检测思路是否正确。
以上是异或门过程,下面是三八译码器过程
1、新建,编写源代码。
(1).选择保存项和芯片类型:【File】-【new project wizard】-【next】(设置文件路径+设置project name为【C:\Users\lenovo\Desktop\笔记\大二上\数字电路\实验课\实验一\指令译码器5(success)】)-【next】(设置文件名【gg】)-【next】(设置芯片类型为【cyclone-EP1CT144C8】)-【finish】
(2).新建:【file】-【new】(【design file-VHDL file】)-【OK】
2、写好源代码,保存文件(gg.vhd)。
3、编译与调试。确定源代码文件为当前工程文件,点击【processing】-【start compilation】进行文件编译。编译结果有一个警告,文件编译成功。
4、波形仿真及验证。新建一个vector waveform file。按照程序所述插入en,ir,our三个节点(en、ir为输入节点,our为输出节点)。(操作为:右击 -【insert】-【insert node or bus】-【node finder】(pins=all;【list】)-【>>】-【ok】-【ok】)。任意设置en,ir的输入波形…点击保存按钮保存。(操作为:点击name(如:en))-右击-【value】-【count】(如设置binary;start value=0;end value=1;count every=10ns),同理设置name ir(如000,1,10),保存)。然后【start simulation】,出name C的输出图。
5、功能仿真,即没有延迟的仿真,仅用来检测思路是否正确。
以上是三八译码器的过程,以下为指令译码器的过程
1、新建,编写源代码。
(1).选择保存项和芯片类型:【File】-【new project wizard】-【next】(设置文件路径+设置project name为【C:\Users\lenovo\Desktop\笔记\大二上\数字电路\实验课\实验一\指令译码器5(success)】)-【next】(设置文件名【gg】)-【next】(设置芯片类型为【cyclone-EP1CT144C8】)-【finish】
(2).新建:【file】-【new】(【design file-VHDL file】)-【OK】
2、写好源代码,保存文件(gg.vhd)。
3、编译与调试。确定源代码文件为当前工程文件,点击【processing】-【start compilation】进行文件编译。编译结果有一个警告,文件编译成功。
4、波形仿真及验证。新建一个vector waveform file。按照程序所述插入en,a, mova,movb,movc,add,sub,and0,not0,shr,shl,jmp,jz,jc,in0,out0,nop,halt十八个节点(en、a为输入节点,mova,movb,movc,add,sub,and0,not0,shr,shl,jmp,jz,jc,in0,out0,nop,halt为输出节点)。(操作为:右击 -【insert】-【insert node or bus】-【node finder】(pins=all;【list】)-【>>】-【ok】-【ok】)。任意设置en,a的输入波形…点击保存按钮保存。(操作为:点击name(如:en))-右击-【value】-【count】(如设置binary;start value=0;end value=1;count every=10ns),同理设置name ir(如0000000,1,10),保存)。然后【start simulation】,出name C的输出图。
5、功能仿真,即没有延迟的仿真,仅用来检测思路是否正确。
2、实验过程
a)异或门源代码如图(VHDL设计)
三八译码器源代码如图(VHDL设计)
指令译码器源代码如图(VHDL设计)
b)异或门原理图
三八译码器原理图
指令译码器原理图
c)编译、调试过程
编译、调试过程中没有太多的错误。但代码优化了好几次。
d)结果分析及结论
由于编译、调试过程中没有出现太多的错误,所以结果应该是:
异或门:
输入00时输出0
输入01时输出1
输入10时输出1
输入11时输出0
三八译码器:
当使能为1时,ir:
输入000时输出10000000,输入100时输出00001000
输入001时输出01000000,输入101时输出00000100
输入010时输出00100000,输入110时输出00000010
输入011时输出00010000,输入111时输出00000001
当使能为0时,恒输出00000000
指令译码器:
当使能为1时,ir为
0011 R1 R2输出mova=1其他为0
0011 11 R2输出movb=1其他为0
0011 R1 11输出movc=1其他为0
1001 R1 R2输出add=1其他为0
0110 R1 R2输出sub=1其他为0
1110 R1 R2输出and0=1其他为0
0101 R1 XX输出not0=1其他为0
1010 R1 00输出shr=1其他为0
1010 R1 11输出shl=1其他为0
0001 00 00输出jmp=1其他为0
0001 00 01输出jz=1其他为0
0001 00 10输出jc=1其他为0
0010 R1 XX输出in0=1其他为0
0100 R1 XX输出out0=1其他为0
0111 00 00输出nop=1其他为0
1000 00 00输出halt=1其他为0
当使能为0时,恒输出0
3、波形仿真
异或门
a)波形仿真过程(详见实验步骤)
b)波形仿真波形图
c)结果分析及结论
0-5ns:输入端00,输出结果为0,正确
5-10ns:输入端01,输出结果为1,正确
10-15ns:输入端10,输出结果为1,正确
15-20ns:输入端11,输出结果为0,正确
代码正确
三八译码器
a)波形仿真过程(详见实验步骤)
b)波形仿真波形图
c)结果分析及结论
0-20ns:使能端en为0,输出结果为00000000,正确
20-40ns:使能端en为1,输出结果为实验过程中结果分析,正确
代码正确
指令译码器
a)波形仿真过程(详见实验步骤)
b)波形仿真波形图
c)结果分析及结论
0-128ns:使能端en为0,输出结果全为0,正确
128-256ns:使能端en为1,输出结果符合实验过程中结果分析,正确
代码正确