EDA实验讲义版.docx
- 文档编号:27959035
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:23
- 大小:430.88KB
EDA实验讲义版.docx
《EDA实验讲义版.docx》由会员分享,可在线阅读,更多相关《EDA实验讲义版.docx(23页珍藏版)》请在冰豆网上搜索。
EDA实验讲义版
《EDA技术》实验讲义
湖南文理学院物电系电子技术教研室
2013
第一部分硬件资源说明
1)PORTA信号分配,EP4CE22F17C8,FPGA芯片
PORTA
FPGA管脚
信号
PORTA
FPGA管脚
信号
PIN_1
+5V
PIN_2
+5V
PIN_3
GND
PIN_4
GND
PIN_5
PIN_B3
D0
PIN_6
PIN_A4
D1
PIN_7
PIN_B4
D2
PIN_8
PIN_A5
D3
PIN_9
PIN_A14
D4
PIN_10
PIN_B14
D5
PIN_11
PIN_B11
D6
PIN_12
PIN_B10
D7
PIN_13
PIN_P14
D8
PIN_14
PIN_R14
D9
PIN_15
PIN_N14
D10
PIN_16
PIN_K16
D11
PIN_17
PIN_K15
D12
PIN_18
PIN_L16
D13
PIN_19
PIN_L15
D14
PIN_20
PIN_N16
D15
PIN_21
PIN_C9
A0
PIN_22
PIN_D3
A1
PIN_23
PIN_A2
A2
PIN_24
PIN_C3
A3
PIN_25
PIN_A3
A4
PIN_26
PIN_B5
A5
PIN_27
PIN_A6
A6
PIN_28
PIN_B6
A7
PIN_29
PIN_A7
A8
PIN_30
PIN_B7
A9
PIN_31
PIN_A11
A10
PIN_32
PIN_B12
A11
PIN_33
PIN_A12
A12
PIN_34
PIN_B13
A13
PIN_35
PIN_A13
A14
PIN_36
PIN_D5
A15
PIN_37
PIN_C11
PIN_38
PIN_J13
PIN_39
PIN_D12
PIN_40
PIN_D11
PIN_41
PIN_E9
PIN_42
PIN_E11
PIN_43
PIN_R16
PIN_44
PIN_N15
PIN_45
PIN_P16
PIN_46
PIN_P15
PIN_47
PIN_48
PIN_49
PIN_F8
PIN_50
PIN_F8
PIN_51
PIN_52
PIN_53
PIN_54
PIN_55
PIN_56
PIN_57
PIN_F16
SPI_I1
PIN_58
PIN_F15
SPI_I2
PIN_59
PIN_D15
SPI_I3
PIN_60
PIN_D16
SPI_I4
注意:
从FPGA引出到PORTA、PORTB的所有信号线,在适配器板上均有其它器件复用,使用时一定要注意,请查看《E-Play-SOPC适配器原理图》或查看前面FPGA对其它芯片的管脚分配表。
2)PORTB信号分配
PORTB
FPGA管脚
信号
PORTB
FPGA管脚
信号
PIN_1
NC
PIN_2
NC
PIN_3
NC
PIN_4
NC
PIN_5
PIN_N12
SPI_NSS1
PIN_6
PIN_J14
SPI_CLK1
PIN_7
PIN_L13
SPI_MISO1
PIN_8
PIN_J15
SPI_MOSI1
PIN_9
PIN_R12
PIN_10
PIN_G15
PIN_11
PIN_D6
E_UART_R
PIN_12
PIN_E6
E_UART_T
PIN_13
NC
PIN_14
NC
PIN_15
PIN_M10
E_ALE
PIN_16
PIN_T10
E_IO1
PIN_17
PIN_T11
E_IO2/3?
?
PIN_18
PIN_E10
E_IO3
PIN_19
PIN_E8
E_IO4
PIN_20
NC
PIN_21
NC
PIN_22
NC
PIN_23
NC
PIN_24
NC
PIN_25
PIN_T13
E_IO9
PIN_26
PIN_T12
E_IO10
PIN_27
PIN_T15
E_IO11
PIN_28
PIN_T14
E_IO12
PIN_29
PIN_F13
E_IO13
PIN_30
PIN_N9
E_IO14
PIN_31
PIN_E7
E_IO15
PIN_32
PIN_P6
E_IO16
PIN_33
PIN_J16
LCD_C
PIN_34
NC
PIN_35
NC
PIN_36
NC
PIN_37
PIN_N11
E_IO5
PIN_38
PIN_P11
E_IO6
PIN_39
PIN_R11
E_IO7
PIN_40
PIN_R10
E_IO8
PIN_41
PIN_P9
CPLD_1
PIN_42
PIN_F9
CPLD_2
PIN_43
PIN_T7
CPLD_3
PIN_44
PIN_T6
CPLD_4
PIN_45
NC
PIN_46
NC
PIN_47
NC
PIN_48
NC
PIN_49
NC
PIN_50
NC
…
…
…
…
PIN_69
NC
PIN_70
NC
3)系统复位及系统时钟分配:
FPGA管脚
网络或符号
备注
PIN_E1
SYS_CLK
系统时钟
PIN_M1
Sys_nRST
系统复位
4)模式分配
16个用户IO单元IO1-IO16都是通过PORTB从FPGA直接引出,供用户二次开发使用,具体定义请参照PORTB的接口定义。
16个拨码开关,16个按键,12个交通灯和蜂鸣器四周4个灯,8位数码管,4x4矩阵键盘,16x16点阵LED均是从底板的两片CPLD引出的,这些资源有IO方式和总线操作两种控制方式。
当采用IO控制方式时,通过PORTB的41-44四位设置不同的值来选择不同的资源。
4位功能管脚说明:
PORTB对应标识
41M[0]
42M[1]
43M[2]
44M[3]
M[3..0]000116位拨码开关接到16位数据总线上
001116位按键接到16位数据总线上
011112个交通灯和蜂鸣器四周4个灯接到16位数据总线上
00108个数码管,低8位为7位段总加小数点选取位,高8位为8个数码管com端选取,即如果要选取数码管0,则发送总线值为:
1111111011111111,如要选取数码管1,则发送总线值为:
1111110111111111.此时所选数码管7段和DP位将全部亮.
01014X4键盘功能选取,此时只有最低的8位有效,高4位为键盘的4位行扫描输出,低4位为键盘的4位列查询输入
011016X16LED点阵显示功能选取,16位数据总线作为点阵的行值,4位地址对应列值编码,(底板上已经过译码).4位地址分别对应E-PLAY-SOPC主适配器上外扩总线地址的ADDRESS[4..1]
在做基本的数字逻辑实验时,如果用到底板的资源时,一定要设置M[3..0]4位功能位,并且设置值一定要与上述功能对应,如不对应有可能对硬件造成损伤.
当实验用到的拨码,按键,LED小于5位时,可以使用E-PLAY-SOPC适配器上的资源,当实验中仅使用到E-PLAY-SOPC适配器就可以完成时,可以不设置M[3..0]
特别注意
在做QuartusII工程时必须将未分配的管脚置为三态输入。
QuartusII-->Assignments-->Device…-->Device-->Device&PinOptions…-->UnusedPins-->Reserveallunusedpins:
ASinputtri-stated。
如未将未分配管脚置为三态输入,将可能导致主芯片或外围芯片损坏,属人为使用不当,公司将不负责。
5)可调时钟输出单元
底板上ADJ_CLK为4位拨码开关SW17--SW20来控制输出40M分频后的可调时钟
具体对应如下
SW20SW19SW18SW17ADJ_CLK
11111Hz
01115Hz
101110Hz
001125Hz
110150Hz
0101500Hz
10011KHz
00012.5KHz
111010KHz
011020KHz
101050KHz
0010200KHz
1100500KHz
01002MHz
10005MHz
000020MHz
CLK110MHz固定时钟(40MHz分频产生)
CLK21MHz
CLK3100KHz
CLK45KHz
CLK5100Hz
第二部分VHDL文本输入设计方法
1、打开QuartusII软件。
2、选择路径。
选择File/NewProjectWizard,指定工作目录,指定工程和顶层设计实体称;注意:
工作目录名不能有中文。
3、添加设计文件。
将设计文件加入工程中。
单击“Next”,如果有已经建立好的VHDL或者原理图等文件可以在Filename中选择路径然后添加,或者选择AddAll添加所有可以添加的设计文件(.VHDL,.Verilog原理图等)。
如果没有直接点击“Next”,等建立好工程后再添加也可,这里我们暂不添加。
4、选择FPGA器件。
Family选择Cyclone4,Availabledevice选EP4CE22F17C8,Packge选择Any,PinCount选择484,Speedgrade选择Any;点击“Next”。
5、选择外部综合器、仿真器和时序分析器。
QuartusII支持外部工具,可通过选中来指定工具的路径。
这里我们不做选择,默认使用QuartusII自带的工具。
6、结束设置。
单击“Next”,弹出“工程设置统计”窗口,上面列出了工程的相关设置情况。
最后单击“Finish”,结束工程设置。
7、建立VHDL原文件。
选择菜单“File”“New…”。
8、添加文件到工程中。
VHDL原文件编辑完后,选择File/Save,选择和工程相同的文件名。
点击“保存”,文件就被添加进工程当中。
9、编译。
选择Processing/Start/StartAnalysis&Synthesis,进行综合。
10、功能仿真验证,从菜单File-New中选择创建VectorWaveformFile,如下图所示。
在新的波形文件中选入需要验证的引脚,通过在左边窗栏理点击鼠标右键,选InsertNodeorBus..,在打开的对话框中点击List,选择所要观察的信号引脚,设置引脚的信号值,如下图所示。
点击保存Save.
在Settings对话框中,选中SimulatorSettings选择页,设置Function类型仿真,并将新创建的波形文件当作仿真输入,如下图所示:
设置完毕之后,点击Processing->GenerateFunctionalSimulatorNetList,生产网表文件之后,点击StartSimulator,进行功能仿真,然后验证逻辑功能是否正确。
11、添加管脚信息。
当综合完成后,网表信息才会生成。
选择Assignments/AssignmentEditor在Edit中选择NodeFider,在NodeFider中选择List显示所有节点信息,然后全部选中。
为每个节点分配引脚。
12、全局编译。
点击Assignments/Devicec菜单,在对话框中选CycloneIVE系列的EP4CE22F17C8N
芯片,重新编译一次。
13、下载。
下载可以选择JTAG方式,选择Tool/Programmer,选择JTAG下载方式,选择AddFile,添加.sof文件,并选中Program/Configure,点击“Start”后开始下载。
第一次使用下载时,首先点击“HardwareSetup...”,打开HardwareSetup对话框,然后点击AddHardware,选择USB—方式。
第三部分实验
实验一2选1多路选择器的VHDL描述
1、实验目的:
学习QuartusII软件的应用,以及组合电路的设计、仿真,进一步熟悉VHDL设计技术。
2、实验原理:
2选1多路选择器
3、实验内容:
1、学习使用QuartusII软件,学会工程的建立,程序编辑、软件编译、波形编辑、仿真分析等必要过程。
2、编写程序,说明各语句的含义,以及整体功能。
在QuartusII上对它进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形。
4、实验报告:
根据以上的实验内容写出实验报告,包括程序设计、软件编译、仿真分析和详细实验过程;设计原程序,程序分析报告、仿真波形图及其分析报告。
【参考程序】
第一部分
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYmux21aIS
PORT(a,b:
INBIT;
s:
INBIT;
y:
OUTBIT);
ENDENTITYmux21a;
ARCHITECTUREoneOFmux21aIS
BEGIN
PROCESS(a,b,s)
BEGIN
IFs='0'THEN
y<=a;ELSE
y<=b;
ENDIF;
ENDPROCESS;
ENDARCHITECTUREone;
参考仿真结果:
仿真波形
实验二译码器
一、实验目的
设计并实现一个3-8译码器。
二、实验原理
常用的译码器有:
2-4译码器、3-8译码器、4-16译码器,下面我们用一个3-8译码器的设计来介绍译码器的设计方法。
3-8译码器如图10-1所示,其真值表如表10-1。
图10-13-8译码器
表10-13-8译码器真值表:
输入
输出
G1
G2A
G2B
A
B
C
Y0N
Y1N
Y2N
Y3N
Y4N
Y5N
Y6N
Y7N
0
X
X
X
X
X
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
下面我们用VHDL语言来描述一个3-8译码器。
LIBRARYieee;
USEieee.std_logic_1164.ALL;
ENTITYdecoder3_8IS
PORT(
A,B,C,G1,G2A,G2B:
INSTD_LOGIC;
Y:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDdecoder3_8;
ARCHITECTUREfunOFdecoder3_8IS
SIGNALindata:
STD_LOGIC_VECTOR(2DOWNTO0);
BEGIN
M<="0001";
indata<=C&B&A;
encoder:
PROCESS(indata,G1,G2A,G2B)
BEGIN
IF(G1='1'ANDG2A='0'ANDG2B='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<="01111111";
WHENOTHERS=>Y<="XXXXXXXX";
ENDCASE;
ELSE
Y<="11111111";
ENDIF;
ENDPROCESSencoder;
ENDfun;
请参考以上程序设计一4-16译码器。
三、实验连线
--A,B,C,G,G2A,G2B分别接SW1--SW6
--YIO9--IO16(IO9--IO16用导线连接L1--L8,LED高电平点亮)
--M4位功能选择位
输入信号A、B、C、G1、G2A、G2B分别对应SW1—SW6,其中A、B、C代表三路数据输入,G1、G2A、G2B代表控制端;输出信号Y0~Y7对应IO9—IO16,代表8路译码数据输出。
实验接线:
IO9—IO16用导线连接L1—L8,LED高电平点亮
功能选择位M[3..0]状态为0001,即16位拨码SW1—SW16被选中输出到总线D[15..0]。
改变拨码开关的状态,参照表10-13-8译码器真值表,观察实验结果。
四、实验记录
对译码器造表,得到其真值表,并分析其运算结果的正确性。
实验三十进制计数器
一、实验目的
1、设计一个带使能输入、进位输出及同步清0的增1十进制计数器,波形图见图22-1
2、设计一个带使能输入及同步清0的增1计数器,波形图见图22-2
二、实验内容
图22-1计数器1波形图
图22-2计数器2波形图
在用VHDL语言描述一个计数器时,如果使用了程序包ieee.std_logic_unsigned,则在描述计数器时就可以使用其中的函数“+”(递增计数)和“-”(递减计数)。
假定设计对象是增1计数器并且计数器被说明为向量,则当所有位均为‘1’时,计数器的下一状态将自动变成‘0’。
举例来说,假定计数器的值到达“111”是将停止,则在增1之前必须测试计数器的值。
如果计数器被说明为整数类型,则必须有上限值测试。
否则,在计数顺值等于7,并且要执行增1操作时,模拟器将指出此时有错误发生。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYcounterIS
PORT(clr,en,clk:
INSTD_LOGIC;
co:
OUTSTD_LOGIC;
Q:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
M:
OUTSTD_LOGIC_VECTOR(3DOWNTO0)
);
ENDcounter;
ARCHITECTUREcounter1OFcounterIS
SIGNALqs:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALca:
STD_LOGIC;
BEGIN
M<="0001";
PROCESS(clk)
--VARIABLEq10:
INTEGER;
BEGIN
IF(rising_edge(clk))THEN
IF(clr='1')THEN
qs<="0000";
ELSIF(en='1')THEN
IF(qs="1001")THEN
qs<="0000";
ca<='1';
ELSE
qs<=qs+1;
ca<='0';
ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
Q<=qs;
co<=caANDen;
ENDcounter1;
参考以上实例完成实验目的中所要求的2个计数器的设计。
三、实验连线
--en,clr对应SW1,SW2
--clkPIN28,(将ADJ_CLK与IO3相连,调节拨码SW17--SW20,使输出1Hz时钟)
--Q对应IO9—IO12,co对应IO13,(IO9—IO13用导线连接L1—L5)
--M4位功能选择位
1、en、clr分别对应SW1、SW2
clk(对应管脚为IO3),(将ADJ_CLK与IO3相连,调节拨码SW17—SW20,使输出1Hz时钟)
Q对应IO9—IO12,co对应IO13,(IO9—IO13用导线连接L1—L5)
功能选择位M[3..0]状态为0001,即16位拨码SW1—SW16被选中输出到总线D[15..0]
2、本实验没有co,其它接线同1
实验四1位全加器VHDL文本输入设计
1、实验目的:
学习QuartusII软件的应用软件的应用,以及元件例化语句,进一步熟悉VHDL设计技术。
2、实验原理:
1位全加器可以如图那样用两个半加器及一个或门连接而成,首先完成半加器和或门两元件的底层设计,然后用例化语句作出顶层设计,完成1位全加器的描述。
3、实验内容:
1、学习使用QuartusII软件,学会工程的建立,程序编辑、软件编译、波形编辑、仿真分析等必要过程。
2、编写程序,说明各语句的含义,以及整体功能。
在QuartusII软件上对它进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形。
4、实验报告:
根据以上的实验内容写出实验报告,包括程序设计、软件编译、仿真分析、硬件测试和详细实验过程;设计原程序,程序分析报告、仿真波形图及其分析报告。
【参考程序】1位全加器VHDL文本输入设计,利用以下2个程序。
半加器:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYhalf_adderIS
PORT(a,b:
INSTD_LOGIC;
s,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 实验 讲义
![提示](https://static.bdocx.com/images/bang_tan.gif)