异或门实验报告VHD.docx
《异或门实验报告VHD.docx》由会员分享,可在线阅读,更多相关《异或门实验报告VHD.docx(13页珍藏版)》请在冰豆网上搜索。
异或门实验报告VHD
实验一
(1)异或门电路设计
班级姓名学号
一、实验目的
熟悉Quartusll仿真软件的基本操作,并用VHDL/Verilog语言设计一个异或门。
二、实验内容
1、熟悉Quartusll软件的基本操作,了解各种设计输入方法(原理图设计、文本设计、波形设计)
2、用VHDL语言设计一个异或门,最终在FPGA芯片上编程异或门,并验证逻辑实现。
三、实验方法
1、实验方法:
采用基于FPGA进行数字逻辑电路设计的方法。
采用的软件工具是QuartusII软件仿真平台,采用的硬件平台是AlteraEPF10K20TI144_4
的FPGA试验箱。
2、实验步骤:
1、新建,编写源代码。
⑴.选择保存项和芯片类型:
【File】-【newprojectwizard】-【next】(设置文件路径+设置projectname为xor2)-【next1(设置文件名xor2.vhd—在【add])-[properties】(type=AHDL)
-【next](family=FLEX10Kname=EPF10K10TI1444)-【next]-【finish]
(2).新建:
【file]-【new](第二个AHDLFile)-【OK]
2、写好源代码,保存文件(xor2.vhd)。
3、编译与调试。
确定源代码文件为当前工程文件,点击【processing]-[startcompilation]进行文件编译。
编译结果有一个警告,文件编译成功。
4、波形仿真及验证。
新建一个vectorwaveformfile。
按照程序所述插入a,b,c三个节点(a、b为输入节点,c为输出节点)。
(操作为:
右击-【insert]-【insertnodeorbus]-【nodefinder]
(pins=all;[list])-【>>]-【ok]-【ok])。
任意设置a,b的输入波形…点击保存按钮保存。
(操作为:
点击name(如:
A))-右击-[value]-【clock](如设置period=200;offset=0),
同理设置nameB(如120,,60),保存)。
然后【startsimulation],出nameC的输出图。
5、时序仿真。
暂时不知道什么是时序仿真
6、FPGA芯片编程及验证
选择pins,连接计算机到实验箱,操作。
四、实验过程
3、编译过程
a)源代码如图(VHDL设计)
老xai2.vhd
try«or2.vwf
1
1
LIBRARYIEEE:
2
USEIEEE,5TD_L0GIC_
JI",ALL;
M站
3
SENTITYXOR2IS
q
BPORT(
(}
ArB:
INSTD
LOGIC;
_!
—_!
—
€
C:
0UTSTD~
LOGIC
7
3
EWDENTITYX0R2;
%?
%
9
3ARCHITECTUREBHVOF
XOR2IS
10
HBEGIN
11
C<-AXORB;
12
ENDAR匚HITECT口RE3HV;
确定源代码文件为当前工程文件,点击【processing】-【startcompilation】进行文件编译。
编译结果有一个警告,文件编译成功。
c)结果分析及结论
结果正确,
4、波形仿真
a)波形仿真过程(详见实验步骤)
b)波形仿真波形图
c)结果分析及结论
0-60ns:
异或门,0$1=1正确
60-70.?
ns:
A$B=0$0=0;由于有时间延迟,反应慢了10.?
nm。
C显示的是0$1的情况
70.?
-100ns:
A$B=0$0=0;正确
100-11.?
ns:
由于时间延迟,显示的是0$0=0
311.324ns分析:
由于AB在310ns时同时变,造成在滞后时,出现此种情况,老师说要避免这种情况。
5、时序仿真
a)时序仿真过程
做好上述步骤后,编译【classictiminganalysis】-在compilationreport中选择【timinganalysis】
-【tpd】(引脚到引脚的延时)
b)时序仿真图
tpd
Slack
Required
P2PTkne
ActualP2P
Time
From|T0
1
None
12900ns
AC
7
N/A
None
12.400ns
b)结果分析及结论
A引脚到C引脚的实际p2p时间为12.9ns,二B引脚到C引脚的实际p2p时间为12.4ns。
A比B慢0.5ns,可由于结果是由时间长的那个决定,故整体为12.9ns。
tpd(引脚到引脚的延时)
6、Programming芯片编程
a)芯片编程过程
写好代码和得到波形图后,【Assignments】-【Pins]-连接端口。
设置好两入一出(如Input:
pin_87Input:
pin_88.Output:
pin_06),从计算机连接数据线到EPF10K20TI144_4的FPGA
试验箱。
连接电源,开始按开关。
找到pin87,88,06的位置,改变87,88的开关状态(开,
开)、(关,开)、(开,关)、(关,关)。
看06灯的亮熄情况并记录。
b)编程芯片验证结果
Input:
A
Input:
B
Output:
C
0
0
0
0
1
1
1
0
1
1
1
0
0代表不灯亮,1代表灯亮。
c)结果分析与结论由逻辑关系得的上述结果。
结果正确。
五、实验结论(实验总结与实验心得)
不知道怎么写总结,随便说些。
在本次实验中,开始由于什么都不懂,缺少了很多细节,让我不知道怎么处理。
如:
不能编译(由于没有设置芯片类型)、编译出错(由于文件名未
定义,文件名没与entity-name里的xor2—致)。
冈U接触Quartusll,什么都不懂,花了两次实验课才做好第一个异或门的实验并初步了解了Quartusll的一些基本操作。
。
由于不了解Quartusll,开始建立一个新文件,照着书把源代码输进去后,不能编译,几经周折,才弄好设置。
才能编译,之后。
再在同学的帮助下,才做好波形图,然后,做芯片,引脚的设定,硬件仿真。
之后,我又自己完整的做了一遍。
得到了正确结果后很高兴。
实验一
(2)3-8译码器电路设计
班级计科1504姓名张洁学号201508010402
一、实验目的
熟悉Quartusll仿真软件的基本操作,并用VHDL/Verilog语言设计一个3-8译码器。
二、实验内容
1、熟悉Quartusll软件的基本操作,了解各种设计输入方法(原理图设计、文本设计、波形设计)
2、用VHDL语言设计一个3-8译码器,最终在FPGA芯片上编程异或门,并验证逻辑实现。
三、实验方法
7、实验方法:
采用基于FPGA进行数字逻辑电路设计的方法。
采用的软件工具是Quartusll软件仿真平台,采用的硬件平台是AlteraEPF10K20TI144_4
的FPGA试验箱。
8、实验步骤:
2、新建,编写源代码。
(1).选择保存项和芯片类型:
【File】-【newprojectwizard】-【next】(设置文件路径+设置projectname为yima38)-【next】(设置文件名yima38.vhd—在【add])-【properties】
(type=AHDL)-【next](family=FLEX10Kname=EPF10K10TI1444)-【next]-【finish]
(2).新建:
【file]-【new](第二个AHDLFile)-【OK]
2、写好源代码,保存文件(yima38.vhd)。
3、编译与调试。
确定源代码文件为当前工程文件,点击【processing]-[startcompilation]进行文件编译。
编译结果有一个警告,文件编译成功。
4、波形仿真及验证。
新建一个vectorwaveformfile。
按照程序所述插入a,b,c三个节点(a、b为输入节点,c为输出节点)。
(操作为:
右击-[insert]-[insertnodeorbus]-【nodefinder]
(pins=all;【list])-【>>]-【ok]-[ok])。
任意设置X,Y的输入波形…点击保存按钮保存。
。
然后【startsimulation],出nameC的输出图。
5、时序仿真。
暂时不知道什么是时序仿真
6、FPGA芯片编程及验证
选择pins,连接计算机到实验箱,操作。
四、实验过程
9、编译过程
a)源代码如图(VHDL设计)
b)编译、调试过程
按照上述步骤进行调试分析
c)结果分析及结论
结果有一个警告,0个错误。
编译成功
10、波形仿真
a)波形仿真过程(详见实验步骤)
b)波形仿真波形图
c)结果分析及结论
0-10ns:
X010Y11111011
10-20ns:
X001Y11111101
20-30ns:
Y
X10130-40ns:
X000
40-70ns:
X101
80-90ns:
X110
11011111
Y11111110
Y11011111
Y11011111
11、时序仿真
c)时序仿真过程
做好上述步骤后,编译【classictiminganalysis】-在compilationreport中选择【timinganalysis】
-【tpd】(引脚到引脚的延时)
b)时序仿真图
仿真是不考虑器件及电路延时的情况下的功能上的仿真验证计电路是否达
到预想要求。
时序仿真在考虑门级及电路延时的情况下考虑有延时情况下的结果一般接
近最后作出的硬件结果。
所以功能仿真是验证理论上的正确值时序仿真是考虑误差后的值。
按钮开关引脚分配
LED灯引脚分配
d)结果分析及结论
在DEO实验板上,扳动SW2,SW1和SWO开关,可以看到译码之后的LEDR7LEDR0红
色LED发光输出Programming芯片编程
b)芯片编程过程
写好代码和得到波形图后,【Assignments】-【Pins]-连接端口。
设置好三入八出,从计算机
连接数据线到EPF10K20TI144_4的FPGA试验箱。
连接电源,开始按开关。
找到pinJ1,pinJ2,pin
J3以及LED[3]-LED[9]的位置,改变J1,J2,J3的开关状态。
看LED灯的亮熄情况并记录。
b)编程芯片验证结果
Input:
x[0]
Input:
x[1]
Input:
x[2]
Output:
y[0]
Output:
y[1]
Output:
y[2]
Output:
y[3]
Output:
y[4]
Output:
y[5]
Output:
y[6]
Output:
y[7]
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
I
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
F■—
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0二
!
1
1
0
0
0
0
0
0
0
1
0二
1
1
1
0
0
0
0
0
0
0
1
0代表不灯亮,1代表灯亮。
c)结果分析与结论
由逻辑关系得的上述结果。
结果正确。
五、实验结论(实验总结与实验心得)
虽然已经做过一个实验了,但是对QuartusII,软件的使用还不是很到位。
并且对于问题的分析也不够透彻,最重要的是我还不熟悉用QuartusII的语言来编写代码,花了很长时间
才做好第二个实验并加深了解了QuartusII的一些基本操作。
可以说3-8异或门这个实验的
进行让我对这门课有了更深的印象,我想在我以后一定会更熟练地运用软件解决问题。
实验一(3)指令译码器电路设计
班级计科1504姓名张洁学号201508010402
一、实验目的
熟悉Quartusll仿真软件的基本操作,并用VHDL/Verilog语言设计一个异或门。
二、实验内容
1、熟悉Quartusll软件的基本操作,了解各种设计输入方法(原理图设计、文本设计、波形设计)
2、用VHDL语言设计一个异或门,最终在FPGA芯片上编程指令译码器,并验证逻辑实
现。
三、实验方法
12、实验方法:
采用基于FPGA进行数字逻辑电路设计的方法。
采用的软件工具是QuartusII软件仿真平台,采用的硬件平台是AlteraEPF10K20TI144_4
的FPGA试验箱。
13、实验步骤:
3、新建,编写源代码。
(1).选择保存项和芯片类型:
【File】-【newprojectwizard】-【next】(设置文件路径+设置projectname为zlym)-【next】(设置文件名zlym.vhd—在【add】)-【properties】
(type=AHDL)-【next】(family=FLEX10Kname=EPF10K10TI1444)-【next】-【finish】
(2).新建:
【file】-【new】(第二个AHDLFile)-【OK】
2、写好源代码,保存文件(zlym.vhd)。
3、编译与调试。
确定源代码文件为当前工程文件,点击【processing】-【startcompilation】进行文件编译。
编译结果有一个警告,文件编译成功。
4、波形仿真及验证。
新建一个vectorwaveformfile。
按照程序所述插入X1,X2.X2以及Y(8)四个节点(x1,x2,x3为输入节点,Y为输出节点)。
(操作为:
右击-【insert】-【insertnodeorbus】-【nodefinder】(pins=all;【list】)-【>>】-【ok】-【ok】)。
任意设置X1,X2,X3的输入波形••点击保存按钮保存。
然后【startsimulation】,出nameY的输出图。
5、时序仿真。
暂时不知道什么是时序仿真
6、FPGA芯片编程及验证
选择pins,连接计算机到实验箱,操作。
四、实验过程
14、编译过程
a)源代码如图(VHDL设计)
b)编译、调试过程
确定源代码文件为当前工程文件,点击【processing】-【startcompilation】进行文件编译。
编译结果有四个警告,文件编译成功。
c)结果分析及结论
结果正确,
15、波形仿真
a)波形仿真过程(详见实验步骤)
b)波形仿真波形图
c)结果分析及结论
0-10ns:
00110000
10-20ns:
00111100
20-30ns:
00110011
30-40ns:
10010000
40-50ns:
01100000
MOVA=1
MOVB=1
MOVC=1
ALU=1
ALU=1
通过波形图可以得出实验结果正确
16、时序仿真
e)时序仿真过程
做好上述步骤后,编译【classictiminganalysis】-在compilationreport中选择【timinganalysis】
-【tpd】(引脚到引脚的延时)
b)时序仿真图
f)结果分析及结论
X1[1]引脚到JMP引脚的实际p2p时间为10.732ns,其余分析见图tpd(引脚到引脚的延时)
17、Programming芯片编程
c)芯片编程过程
写好代码和得到波形图后,【Assignments】-【Pins】-连接端口。
设置好八入十三出,从计算
机连接数据线到EPF10K20TI144_4的FPGA试验箱。
连接电源,开始按开关。
找到位置,改变开关状态。
看灯的亮熄情况并记录。
b)编程芯片验证结果
X
EN
Dataout
OUT
0011R1R2
1
1000000000000
MOVA=1
001111R2
1
010*********
MOVB=1
0011R111
1
0010000000000
MOVC=1
1001R1R2
1
0001000000000
ALU=1
0110R1R2
1
0001000000000
ALU=1
1110R1R2
1
0001000000000
ALU=1
0101R1XX
1
0000100000000
N0T=1
1010R100
1
0000010000000
SH=1
1010R111
1
0000010000000
SH=1
00010000
1
0000001000000
JMP=1
00010001
1
0000000100000
JZ=1
00010010
1
0000000010000
JC=1
0010R1XX
1
0000000001000
IN=1
0100R1XX
1
0000000000100
OUT=1
01110000
1
0000000000010
NOP=1
10000000
1
0000000000001
HALT=1
0代表不灯亮,1代表灯亮。
C)结果分析与结论由逻辑关系得的上述结果。
结果正确。
五、实验结论(实验总结与实验心得)
这是第三次使用这个软件了,这次自己独立完成了一道题。
一天多的修修改改让我对逻
辑设计一个题目以及软件的使用有了更加明显的进步,刚接触Quartusll,什么都不懂。
但是通过上网学习VHDL语言了解了它其实与C++十分相似,但是在使用过程中有一些问题也是因为这个引起的,例如ELSEIF应该是ELSIF这个问题导致我无数次错误。
最后才发现。
让我长了教训,深刻的记住了这个tip。
所以我认为题目都是靠练出来的,独立完成题目很重
要。