EDA一分析.docx
- 文档编号:26006322
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:27
- 大小:1.24MB
EDA一分析.docx
《EDA一分析.docx》由会员分享,可在线阅读,更多相关《EDA一分析.docx(27页珍藏版)》请在冰豆网上搜索。
EDA一分析
EDA技术应用
实验一1位全加器原理图输入设计
一、实验目的
学习QuartusII原理图输入设计方法和步骤,掌握应用EL-SOPC4000实验系统,将设计项目编程下载到可编程器件,并进行硬测试,验证设计的正确性。
二、实验原理
1位全加器可以用两个半加器及一个或门连接而成,因此需首先完成半加器的设计。
(1)半加器原理图设计
半加器只考虑了两个加数(a、b)本身,而没有考虑由低位来的进位,所以称为“半加”,输出so表示和数,co表示进位数。
一位半加器的加法运算可用真值表4-1-1来表示:
表4-1-1半加器的真值表
被加数a
加数b
和数so
进位数co
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
由真值表得逻辑表示式为:
由逻辑表达式可画出半加器原理图。
(2)全加器原理图设计
全加器能进行被加数(ain)、加数(bin)和由低位来的进位(cin)三者相加,得出求和结果(sum)并给出该位的进位信号(cout)。
一位全加器的加法运算可用如下真值表4-1-2来表示:
表4-1-2全加器的真值表
被加数ain
加数bin
低位进位cin
和数sum
进位数cout
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
由真值表得逻辑表示式为:
由逻辑表达式可利用封装的半加器元件来画出全加器原理图。
三、实验内容
(1)利用QuartusII进行1位半加器的原理图输入设计。
对其进行编辑、编译、综合、适配、仿真,并且进行元件封装入库。
(2)利用半加器元件进行1位全加器的原理图输入设计。
对其进行编辑、编译、综合、适配、仿真,并进行引脚锁定以及硬件下载测试。
引脚锁定以及硬件下载测试:
功能选择位M[3..0]状态为0001,即16位拨码SW1—SW16被选中输出到总线D[15..0]。
输入信号ain、bin、cin分别对应SW1—SW3,输出信号cout、sum分别对应IO1—IO2。
实验接线:
IO1—IO2用导线连接L1—L2,LED高电平点亮,改变拨码开关的状态,参照表4-1-2,观察实验结果。
四、预习要求
(1)完成半加器和全加器的原理图设计;
(2)详细阅读QuartusⅡ9.1软件操作流程与实验方法;
五、报告要求
实验报告包括:
实验原理、过程、仿真波形,以及硬件测试结果;思考题。
六、思考题
在实验一的启发下,如何用原理图输入设计法实现4位全加器?
表A-1PORTA信号分配
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
PORTA
FPGA管脚
信号
PORTA
FPGA管脚
信号
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
表A-2PORTB信号分配
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_E10
E_IO2
PIN_18
PIN_T11
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
PORTB
FPGA管脚
信号
PORTB
FPGA管脚
信号
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
说明:
标有“NC”的引脚,表示没有用到适配器上的引脚;
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]
当采用总线控制方式时,两片CPLD共用同一条片选信号线CS7,读/写信号线各一条,16位数据线用于数据读写,4位地址线EA1-EA4可访问16个寄存器。
左端CPLD对应CS7,4位二进制地址为:
1000到1111
1000--16个LED
1001--16个8段数码管,16位数据,低8位为8段数码管的段选(a、b、c、d、e、f、g、dp),高8位的低4位为16个数码管选择
1100--16位按键
1101--16位拨码
1111--复位LED及8段数码管
右端CPLD对应CS7,4位二进制地址为:
0000到0111
0000--4位行选,写4位二进制来决定对哪一行操作
0001--16位行数据,要写某一行值时,先写0000地址行选,再写0001地址行数据
0100--读出来为:
第5位状态值+第4位有效标志+第3到0位键盘值;
写入时,将清除第4位有效标志;读完后,紧跟着写一次。
第5位为1时,说明键盘有键正在按下,为0时说明按键已弹起;
只有当第5位为0,第4位为1时,读到的值才为有效值。
0101--写键盘复位
0111--全局复位
(1)对16个LED操作即为对寄存8(二进制地址为1000)写操作。
如执行NIOSII指令:
write_bus16((cs7+8),0x0001);
则为向以cs7为基地址,以8为偏移地址的寄存器写0x0001,这条指令的功能是使LED1点亮,除LED1以外的其它LED均为不点亮状态。
(2)对数码管操作时,对应的寄存器为寄存器9(二进制地址为1000)。
16个8段数码管,16位数据,低8位为8段数码管的段选(a、b、c、d、e、f、g、dp),高8位的低4位为16个数码管选择,最高的4位数据D15—D12未定义,可以不作理会。
如执行NIOSII指令:
write_bus16((cs7+9),0x017f);
则为向以cs7为基地址,以9为偏移地址的寄存器写0x007f,使用数码管0显示“8”。
(3)键盘对应的键值寄存器为寄存器4(二进制地址为0100)。
(4)16个按键,对应的寄存器为寄存器12(二进制地址为1100)。
16个拨码开关,对应的寄存器为寄存器13(二进制地址为1101)。
则读按键值操作指令为:
read_bus16((cs7+12));
读拨码开关值操作指令为:
read_bus16((cs7+13));
(5)16×16LED点阵对应的寄存器为寄存器0、1(二进制地址为0000、0001)。
寄存器0对应4位行选,低4位有效,写4位二进制值来决定对哪一行操作,底板CPLD对4位值进行译码,驱动行选信号输出。
寄存器1对应16位行值数据。
要写某一行值时,先写寄存器0行选,再写寄存器1行值数据。
在底板的CPLD中,分别把16行的行值数据保存到16个输出寄存器中,当编程对某行数据显示时,只是更新对应行的输出寄存器值。
扫描时钟由外部时钟分频得到。
底板CPLD程序自动完成16×16LED点阵的扫描输出显示。
QuartusⅡ应用向导
QuartusII软件在21世纪初推出,是Altera前一代FPGA/CPLD集成开发环境Max+plusII的更新换代产品,其界面友好,使用便捷。
在QuartusII上可以完成设计输入、HDL综合、布线布局(适配)、仿真和下载和硬件测试等流程,它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。
本实验指导书主要围绕文字输入(VHDL)方式、EDA图形输入(原理图输入设计)进行展开研究。
B.1设计流程
完整地了解利用QuartusII,进行设计开发的流程对于优化设计项目,提高设计效率大有益处。
典型的QuartusII设计流程如图B-1所示。
图B-1QuartusII设计流程
图B-1上排所示的是QuartusII编译设计主控界面,它显示了QuartusII自动设计的各主要处理环节和设计流程,包括设计输入编辑、设计分析与综合、适配、编程文件汇编(装配)、时序参数提取以及编程下载几个步骤。
图B-1下排的流程框图,是与上面的QuartusII设计流程相对照的标准的EDA开发流程。
(1)设计输入:
设计输入有多种方式,包括采用硬件描述语言(如AHDL、VHDL和verilogHDL等)进行设计的文本输入方式(TextEditorFile)、图形输入方式(GraphicEditorFile)和波形输入方式(WaveformEditorFile),或者采用文本、图形两者混合的设计输入方式等。
(2)项目编译(编辑/配置):
检查项目是否正确,并对项目进行逻辑综合,然后将其配置到一个Altera器件中,同时产生报告文件、编译文件和用于时间仿真的输出文件。
(3)项目校验(仿真):
利用功能或时序仿真对设计者的硬件描述和设计结果进行查错、验证。
(4)硬件测试(下载):
在编译和仿真后,若没发现问题,即满足原设计的要求,就可在引脚锁定后,通过编程器或编程电缆向目标芯片FPGA/CPLD进行下载,以便进行硬件测试和验证。
B.2电路原理图设计法
利用EDA工具进行原理图输入设计的优点是,设计者能利用原有的电路知识迅速入门,完成较大规模的电路系统设计,而不必具备许多诸如编程技术、硬件语言等新知识。
与早期的Max+plusII相比,QuartusII提供了功能强大,直观便捷和操作灵活的原理图输入设计功能,同时还配备了适用于各种需要的元件库,其中包含基本逻辑元件库(如与非门、反向器、D触发器等)、宏功能元件(包含了几乎所有74系列的器件),以及功能强大,性能良好的类似于IPCore的巨功能块LPM库。
但更为重要的是,QuartusII还提供了原理图输入多层次设计功能,使得用户能设计更大规模的电路系统,以及使用方便精度良好的时序仿真器。
下面将详细介绍原理图输入设计方法,但读者应该更多地关注设计流程,因为除了最初的图形编辑输入外,其它处理流程都与文本(如VHDL文件)输入设计完全一致。
在此拟利用原理图输入设计方法完成全加器的设计。
全加器可以用两个半加器及一个或门连接而成,因此需要首先完成半加器的设计。
以下将给出使用原理图输入的方法进行底层元件设计和层次化设计的完整步骤,其主要流程与数字系统设计的一般流程基本一致。
事实上,除了最初的输入方法稍有不同外,应用VHDL的文本输入设计方法的流程也基本与此相同。
基本设计步骤如下:
1.为本项工程设计建立文件夹
任何一项EDA设计都是一项工程(Project),都必须首先为此工程建立一个放置与此工程相关的所有文件的文件夹,此文件夹将被EDA软件默认为工作库(WorkLibrary)。
一般不同的设计项目最好放在不同的文件夹中,而同一工程的所有文件都放在同一文件夹中。
还应该注意,不要将工程文件夹设在计算机已有的安装目录中,也不要建在桌面上,更不要将其直接放在安装目录中。
在建立了文件夹后就可以将设计文件通过QuartusII的文本编辑器编辑并存盘了。
具体步骤如下:
假设本项设计的文件夹取名为myproject,在D盘中,路径为D:
\myproject。
特别注意文件夹不能用中文也不要用数字命名。
2.创建本项目设计工程
图B-2创建工程
打开QuartusII软件后,直接点击创建工程,也可以利用NewProjectWizard工具选项来创建设计工程,命工程名为“h_adder”,文件名也为“h_adder”,要和工程名保持一致。
其他相关信息:
目标器件,综合器,仿真器等的设置默认即可。
(1)打开并建立新工程管理窗口。
选择File→NewProjectWizard,弹出设置窗口,如图B-2所示。
其中第一行D:
\myproject表示工程所在的工作库文件夹;第二行为此项工程的工程名。
工程名可以取任何其他的名,也可直接用顶层文件的模块名作为工程名;第三行为当前工程顶层文件的实体名。
(2)将设计文件加入工程中。
单击Next按钮,在弹出的对话框中单击File栏后的按钮,将与工程相关的所有bdf文件(如果有)加入此工程。
(3)选择目标芯片。
单击Next按钮,选择目标器件。
实验室所用的实验系统中目标芯片为CycloneⅣE系列的EP4CE22F17C8N,如图B-3所示。
由于所用的QuartusII9.1软件不支持CycloneⅣE系列芯片的仿真,若需进行功能仿真,则需在QuartusII9.1软件中选择其支持的CycloneⅡ系列任意型号芯片先行进行仿真验证。
待下载前再根据实际所连接的芯片系列和型号再改过来。
图B-3选择目标器件EP4CE22F17C8N图B-4工具设置
(4)工具设置。
单击Next按钮后,弹出下一个窗口:
EDA工具设置窗口-EDAToolSettings,如图B-4所示。
Designentry/synthesis用于选择输入HDL类型和综合工具;Simulation用于选择仿真工具;Timinganalysis用于选择时序分析工具,除了可以用自带的工具外可以外加工具。
因此,若不做选择,表示仅选择QuartusII自含的EDA设计工具。
此对话框可暂时不作修改,直接点击Next按钮。
(5)结束设置。
单击Next按钮后,弹出工程设置统计窗口,列出了与此项工程相关的设置情况。
单击Finish按钮,出现设好的工程名的工程管理窗口,以显示本工程项目的层次结构和各层次实体名。
QuartusII将工程信息存在工程配置文件(quartus)中。
它包含工程所有信息,包括设计文件,波形文件,signalTapII文件。
内存初始化文件,以及构成工程的编译器,仿真器和软件构建设置。
建立工程之后,可以使用Assignment菜单下的Setting对话框中的Add/Remove选项在工程中添加、删除或设计其他文件,执行分析和综合器件。
文件处理顺序也将在选项卡中按依次显示。
3.输入设计项目和存盘
原理图编辑输入流程如下:
(1)打开编程窗口和配置文件。
打开QuartusII,选择File→New命令,在弹出的New窗口中选择DeviceDesignFiles选项卡,再选择BlockDiagram/SchematicFile选项,单击ok打开原理图编辑窗口(B-5)。
图B-5选择编辑文件类型图B-6选择打开原件输入窗
(2)建立一个初始原理图。
在编辑窗口中任何一个位置右击,出现快捷菜单,选择Insert→Symbol命令(B-6),或直接双击原理图编辑窗口,弹出如图B-7的元件输入对话框。
在左下部的Name栏键入单词“input”,然后单击Symbol窗口中的OK按钮,即可在原理图编辑窗口中添加输入引脚图标。
图B-7在原件输入对话框输入引脚图B-8半加器原理图
(3)绘制半加器原理图。
用上述方法可以在原理图编辑框中添加任意需要的元件。
在原理图编辑窗口任意位置双击鼠标左键,再次弹出如图B-7所示的输入元件对话框。
分别在name栏输入元件“and2”、“xor”和“output”,添加元件,并按图B-8所示连接好。
分别双击输入图标和输出图标的“pinname”上使其变黑色可变状态,可修改各输入输出的名称分别为:
a、b、co和so,如图B-8所示。
(4)原理图文件存盘。
选择菜单File→SaveAs,将半加器原理图文件保存于刚才建立的目录D:
\myproject中,原理图文件名为h_adder.bdf。
确认软件界面左上角的文件路径即为当前编辑的半加器原理图编辑界面后即可进行下一步操作。
4.设置约束项目
对工程编译处理前,必须做好必要设置步骤如下:
(1)选择FPGA目标芯片。
Assignmemts→Setting命令,选择Category项下面的Device,选择目标芯片,这一设置也可以在前文所述的新建工程时完成。
选择目标芯片为EP4CE22F17C8N。
此处为了顺利进行接下来的时序仿真,目标芯片需先选择“CycloneⅡ”系列任意型号芯片。
图B-9器件工作方式选择图B-10器件闲置引脚状态选择
(2)选择器件的工作方式。
单击Device&PinOptions按钮,进入选择对话框,首先选择主菜单“General”,在Option栏中选中Auto-restartconfigurationaftererror复选框,配置失效后能自动重新配置,并加入JTAG用户编码,如图B-9所示。
图B-11器件工作电压选择图B-12修改供电电压
(3)选择目标器件闲置引脚状态。
点击主菜单“UnusedPins”选项,可以根据实际需要选择目标器件闲置引脚状态。
可选择输入状态或输出状态,或输出不定状态。
这里选择输入状态位高阻态“Asinputtri-stated”,如图B-10所示。
(4)选择器件工作电压。
点击主菜单“Voltage”选项,可以根据实际需要选择目标器件工作电压,这里选择“3.3VLVTTL”电平,如图B-11所示。
5.全程编译与逻辑综合
QuartusII编译器是由一系列处理模块构成的,这些模块负责对设计项目的检查,逻辑综合,结构综合,输出结果的编辑配置,以及时序分析。
在这个过程中,将设计项目适配到FPGA/CPLD目标器件中,同时产生多种用途的输出文件,如功能和时序信息文件,器件编程的目标文件等。
编译器首先检查出工程设计中的错误信息,然后产生一个结构化的网表文件表达的原理图文件。
编译前若器件已经选择CycloneⅣ
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 分析