创新实验基于VHDL二进制与十进制之间相互转换Word下载.docx
《创新实验基于VHDL二进制与十进制之间相互转换Word下载.docx》由会员分享,可在线阅读,更多相关《创新实验基于VHDL二进制与十进制之间相互转换Word下载.docx(20页珍藏版)》请在冰豆网上搜索。
当输入一个BCD码时,就会在它所表示的十进制数的对应输出端产生一个低电平有效信号。
在本次的实验中,主要使用开发软件ISE和芯片XilinxSpartan-II来实现二进制与十进制之间的相互转换。
一、概述5
1)PLD/FPGA原理
2)查找表(Look-Up-Table)的原理与结构
1)开发软件
2)芯片介绍
1、十进制-二进制的转换
2、二(BCD)-十进制的转换
(一)工程开发流程7
1、设计输入
2、综合
3、实现
4、验证
5、下载
(二)实际运用过程9
1)建立源文件
2)输入原理图
3)行为仿真
1)时序仿真
2)产生报告并修改设计
1)编程器件
2)验证电路
3)下载
一、概述
1、PLD/FPGA结构与原理
1)PLD/FPGA原理:
PLD是可编程逻辑器件(ProgramableLogicDevice)的简称,FPGA是现场可编程门阵列(FieldProgramableGateArray)的简称,两者的功能基本相同,只是实现原理略有不同,所以我们有时可以忽略这两者的区别,统称为可编程逻辑器件或PLD/FPGA。
FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个新概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。
FPGA的基本特点主要有:
Ø
采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。
FPGA可做其它全定制或半定制ASIC电路的中试样片。
FPGA内部有丰富的触发器和I/O引脚。
FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。
用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。
FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。
当需要修改FPGA功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA的使用非常灵活。
查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。
目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16x1的RAM。
当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。
2、开发软件与芯片
许多PLD公司都提供免费试用版或演示版,如:
Altera公司提供的QuartusII(web版),Xilinx公司提供的免费软件ISEWebPack,Lattice提供的ispleverBase版下载,Actel等公司也都有类似的免费软件提供。
本次实验中,使用的软件为Xilinx公司提供的ISE软件。
FPGA的主要生产产商有Altera、Xilinx、Actel、Lattice等,其中Altera和Xilinx主要生产一般用途FPGA,其主要产品采用RAM工艺。
Actel主要提供非易失性FPGA,产品主要基于反熔丝工艺和FLASH工艺。
Xilinx的主流FPGA分为两大类,一种侧重低成本应用,容量中等,性能可以满足一般的逻辑设计要求,如Spartan系列;
还有一种侧重于高性能应用,容量大,性能能满足各类高端应用,如Virtex系列,用户可以根据自己实际应用要求进行选择。
在性能可以满足的情况下,优先选择低成本器件。
本次实验中,使用的芯片为Xilinx公司生产的Spartan-II芯片,它的内部结构主要包括CLBs,I/O块,RAM块和可编程连线(未表示出)。
在spartan-II中,一个CLB包括2个Slices,每个slices包括两个LUT,两个触发器和相关逻辑。
xilinxSpartan-II的内部结构,如下图所示:
图1XilinxSpartan-II的内部结构
二、算法设计原理
1.十-二进制的转换
将十进制数0、1、2、3、4、5、6、7、8、9等10个信号编成二进制代码,它的输入是代表0~9这10个数符的状态信号,有效信号为1(即某信号为1时,则表示要对它进行编码),输出是相应的BCD码,因此也10线-4线编码器,任何时刻只允许输入一个有效信号,的编码是隐含的。
表达式为:
D=
C=
B=
A=
表1十-二进制转换真值表
十进制数
D
C
B
A
0()
1()
1
2()
3()
4()
5()
6()
7()
8()
9()
2.二(BCD)-十进制的转换
将输入的一位BCD码(四位二元符号)译成10个高、低电平输出信号。
表2二-十进制转换真值表
序号
输入
输出
2
3
4
5
6
7
8
9
三、工程开发流程
(一)工程开发流程
利用Xilinx公司的ISE开发设计软件的工程设计流程如图2所示,具体分为五个步骤:
即输入(DesignEntry)、综合(Synthesis)、实现(Implementation)、验证(Verification)、下载(Download)。
图2设计流程图
图形或文本输入包括原理图、状态机、波形图、硬件描述语言(HDL),是工程设计的第一步,ISE集成的设计工具主要包括HDL编辑器(HDLEditor)、状态机编辑器(StateCAD)、原理图编辑器(ECS)、IP核生成器(CoreGenerator)和测试激励生成器(HDLBencher)等。
常用的设计输入方法是硬件描述语言(HDL)和原理图设计输入方法。
原理图输入是一种常用的基本的输入方法,其是利用元件库的图形符号和连接线在ISE软件的图形编辑器中作出设计原理图。
ISE中设置了具有各种电路元件的元件库,包括各种门电路、触发器、锁存器、计数器、各种中规模电路、各种功能较强的宏功能块等用户只要点击这些器件就能调入图形编辑器中。
这种方法的优点是直观、便于理解、元件库资源丰富。
但是在大型设计中,这种方法的可维护性差,不利于模块建设与重用。
更主要的缺点是:
当所选用芯片升级换代后,所有的原理图都要作相应的改动。
为了克服原理图输入方法的缺点,目前在大型工程设计中,在ISE软件中常用的设计方法是HDL设计输入法,其中影响最为广泛的HDL语言是VHDL和VerilogHDL。
它们的共同优点是利于由顶向下设计,利于模块的划分与复用,可移植性好,通用性强,设计不因芯片的工艺和结构的变化而变化,更利于向ASIC的移植,故在ISE软件中推荐使用HDL设计输入法。
波形输入及状态机输入方法是两种最常用的辅助设计输入方法,使用波形输入法时,只要绘制出激励波形的输出波形,ISE软件就能自动地根据响应关系进行设计;
而使用状态机输入时,只需设计者画出状态转移图,ISE软件就能生成相应的HDL代码或者原理图,使用十分方便。
其中ISE工具包中的StateCAD就能完成状态机输入的功能。
但是需要指出的是,后两种设计方法只能在某些特殊情况下缓解设计者的工作量,并不适合所有的设计。
2、综合(Synthesis)
综合是将行为和功能层次表达的电子系统转化为低层次模块的组合。
一般来说,综合是针对VHDL来说的,即将VHDL描述的模型、算法、行为和功能描述转换为FPGA/CPLD基本结构相对应的网表文件,即构成对应的映射关系。
在XilinxISE中,综合工具主要有Synplicity公司的Synplify/SynplifyPro,Synopsys公司的FPGACompilerII/Express,ExemplarLogic公司的LeonardoSpectrum和XilinxISE中的XST等,它们是指将HDL语言、原理图等设计输入翻译成由与、或、非门,RAM,寄存器等基本逻辑单元组成的逻辑连接(网表),并根据目标与要求优化所形成的逻辑连接,输出edf和edn等文件,供CPLD/FPGA厂家的布局布线器进行实现。
3、实现(Implementation)
实现是根据所选的芯片的型号将综合输出的逻辑网表适配到具体器件上。
XilinxISE的实现过程分为:
翻译(Translate)、映射(Map)、布局布线(Place&
Route)等3个步骤。
ISE集成的实现工具主要有约束编辑器(ConstraintsEditor)、引脚与区域约束编辑器(PACE)、时序分析器(TimingAnalyzer)、FPGA底层编辑器(FGPAEditor)、芯片观察窗(ChipViewer)和布局规划器(Floor