收藏 分享(赏)

【创新实验】基于VHDL的二进制与十进制之间的相互转换.doc

上传人:dreamzhangning 文档编号:2703236 上传时间:2018-09-25 格式:DOC 页数:15 大小:211.15KB
下载 相关 举报
【创新实验】基于VHDL的二进制与十进制之间的相互转换.doc_第1页
第1页 / 共15页
【创新实验】基于VHDL的二进制与十进制之间的相互转换.doc_第2页
第2页 / 共15页
【创新实验】基于VHDL的二进制与十进制之间的相互转换.doc_第3页
第3页 / 共15页
【创新实验】基于VHDL的二进制与十进制之间的相互转换.doc_第4页
第4页 / 共15页
【创新实验】基于VHDL的二进制与十进制之间的相互转换.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、创新实验1创新实验可编程逻辑设计基础实验题目:二进制与十进制之间的相互转换指导教师:周克峰小组成员: 创新实验2摘 要十进制-二进制转换的编码器是将十进制数0、1、2、3、4、5、6、7、8、9 等十个信号编成二进制代码的电路。它的输入是代表 09 这个 10个数符的状态信号,有效信号为 1,输出是响应的 BCD码,其特点是任何时刻只允许输入一个有效信号。二进制-十进制转换的编码器是十-二进制转换的逆过程,它的功能是将输入的一位 BCD码译成 10个高、低电平输出信号。当输入一个 BCD码时,就会在它所表示的十进制数的对应输出端产生一个低电平有效信号。在本次的实验中,主要使用开发软件 ISE和

2、芯片 Xilinx Spartan-II来实现二进制与十进制之间的相互转换。创新实验3目 录一 、 概 述 .51、 PLD/FPGA 结 构 与 原 理 51) PLD/FPGA 原 理2) 查 找 表 ( Look-Up-Table)的 原 理 与 结 构2、 开 发 软 件 与 芯 片 .51) 开 发 软 件2) 芯 片 介 绍二 、 算 法 设 计 原 理 .61、 十 进 制 二 进 制 的 转 换2、 二 (BCD) 十 进 制 的 转 换三 、 工 程 开 发 流 程 .7( 一 ) 工 程 开 发 流 程 71、 设 计 输 入2、 综 合3、 实 现4、 验 证5、 下 载

3、( 二 ) 实 际 运 用 过 程 91、 设 计 输 入 .91) 建 立 源 文 件2) 输 入 原 理 图3) 行 为 仿 真2、 设 计 实 现 .15创新实验41) 时 序 仿 真2) 产生报告并修改设计3、 配 置 或 编 程 171) 编 程 器 件2) 验 证 电 路3) 下 载四、 实 验 总 结 20五、实验心得.21六 、 参 考 文 献 .21创新实验5一、概述1、PLD/FPGA 结构与原理1)PLD/FPGA 原理:PLD是可编程逻辑器件(Programable Logic Device)的简称,FPGA 是现场可编程门阵列(Field Programable Ga

4、te Array)的简称,两者的功能基本相同,只是实现原理略有不同,所以我们有时可以忽略这两者的区别,统称为可编程逻辑器件或 PLD/FPGA。FPGA采用了逻辑单元阵列 LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块 CLB(Configurable Logic Block) 、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA 的基本特点主要有: 采用 FPGA设计 ASIC电路,用户不需要投片生产,就能得到合用的芯片。 FPGA可做其它全定制或半定制 ASIC电路的中试样片。 FPGA内部有

5、丰富的触发器和 IO 引脚。 FPGA是 ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。 FPGA采用高速 CHMOS工艺,功耗低,可以与 CMOS、TTL 电平兼容。可以说,FPGA 芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。FPGA 是由存放在片内 RAM中的程序来设置其工作状态的,因此,工作时需要对片内的 RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。 加电时,FPGA 芯片将 EPROM中数据读入片内编程 RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA 恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA 的编程

6、无须专用的 FPGA编程器,只须用通用的EPROM、PROM 编程器即可。当需要修改 FPGA功能时,只需换一片 EPROM即可。这样,同一片 FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。2)查找表(Look-Up-Table)的原理与结构查找表(Look-Up-Table)简称为 LUT,LUT 本质上就是一个 RAM。 目前FPGA中多使用 4输入的 LUT,所以每一个 LUT可以看成一个有 4位地址线的16x1的 RAM。 当用户通过原理图或 HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入

7、RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。2、开发软件与芯片1)开发软件许多 PLD公司都提供免费试用版或演示版,如: Altera 公司提供的 QuartusII (web 版) ,Xilinx 公司提供的免费软件 ISE WebPack, Lattice 提供的 isplever Base版下载,Actel 等公司也都有类似的免费软件提供。创新实验6本次实验中,使用的软件为 Xilinx公司提供的 ISE软件。2)芯片介绍FPGA的主要生产产商有 Altera、Xilinx、Actel、Lattice 等,其中Altera和 Xi

8、linx主要生产一般用途 FPGA,其主要产品采用 RAM工艺。Actel主要提供非易失性 FPGA,产品主要基于反熔丝工艺和 FLASH工艺。Xilinx的主流 FPGA分为两大类,一种侧重低成本应用,容量中等,性能可以满足一般的逻辑设计要求,如 Spartan系列;还有一种侧重于高性能应用,容量大,性能能满足各类高端应用,如 Virtex系列,用户可以根据自己实际应用要求进行选择。 在性能可以满足的情况下,优先选择低成本器件。本次实验中,使用的芯片为 Xilinx公司生产的 Spartan-II芯片,它的内部结构主要包括 CLBs,I/O 块,RAM 块和可编程连线(未表示出) 。在 sp

9、artan-II中,一个 CLB包括 2个 Slices,每个 slices包括两个 LUT,两个触发器和相关逻辑。2、算法设计原理二进制转十进制,十进制转二进制的算法十 表 1 二进制数和十进制数换算对照表二进制 十进制 二进制 十进制 二进制 十进制 二进制 十进制0000 0 0011 3 0110 6 1001 90001 1 0100 4 0111 7 1010 100010 2 0101 5 1000 8 1011 11采用“ 二进制数”的算术运算也比较简单,制造成本更经济。二进制的加法运算和乘法运算公式都各有四条规则:加法有0+0=0,0+1=1,1+01,1110;乘法有0*0

10、=0, 0*1=0, 1*0=0, 1*1=1,而十进制的加法和乘法运算公式从 00 开始到 99,从 0*0 开始到 9*9 各需规则 100 条。2二进制代码电子计算机中的数是用二进制表示的,在计算机中也采用二进制代码表示字母、数字字符、各种各样的符号、汉字等。在处理信息的过程中,可将若干位的二进制代码组合起来表示各种各样的信息。但由于二进制数不直观,人们在计算机上实际操作时,输入、输出的数使用十进制,而具体转换成二进制编码的工作则由计算机软件系统自动完成。字母和各种字符在计算机中的传输普遍采用 Ascll 码(American Standard Code For lnformation

11、lnterchange),即美国标准信息交换码,它用了 7 位二进制数来表达字母和各种常用字符(见附录)。对于汉字信息的表示比较复杂,我国有汉字几万个,常用的汉字也有 7000多个,为了统一,我国制定了汉字编码标准,规定了一、二级汉字共 6763 个,创新实验7用两个字节(16 位二进制代码)来表示一个汉字进制转二进制: 用 2 辗转相除至结果为 1 将余数和最后的 1 从下向上倒序写 就是结果 例如 302 302/2 = 151 余 0 151/2 = 75 余 1 75/2 = 37 余 1 37/2 = 18 余 1 18/2 = 9 余 0 9/2 = 4 余 1 4/2 = 2 余

12、 0 2/2 = 1 余 0 故二进制为 100101110 二进制转十进制 从最后一位开始算,依次列为第 0、1、2.位 第 n 位的数(0 或 1)乘以 2 的 n 次方 得到的结果相加就是答案 例如:01101011. 转十进制: 第 0 位:1 乘 2 的 0 次方=1 1 乘 2 的 1 次方 =2 0 乘 2 的 2 次方 0 1 乘 2 的 3 次方 8 0 乘 2 的 4 次方 0 1 乘 2 的 5 次方 32 1 乘 2 的 6 次方 64 0 乘 2 的 7 次方 0 然后:120 8032640 107 二进制 01101011十进制 107一、二进制数转换成十进制数

13、由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为“按权相加“法。 二、十进制数转换为二进制数 十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。 1. 十进制整数转换为二进制整数 十进制整数转换为二进制整数采用“除 2 取余,逆序排列“法。具体做法是:用 2 去除十进制整数,可以得到一个商和余数;再用 2 去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。 2十进制

14、小数转换为二进制小数 十进制小数转换成二进制小数采用“乘 2 取整,顺序排列“法。具体做法是:用 2 乘十进制小数,可以得到创新实验8积,将积的整数部分取出,再用 2 乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。 然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。 回答者:HackerKinsn - 试用期 一级 2-24 13:311二进制与十进制的转换 (1)二进制转十进制方法:“按权展开求和“ 例: (1011.01)2 ( 123022121120021 122 )1

15、0 (8 0210 0.25)10 (11.25)10 (2)十进制转二进制 十进制整数转二进制数:“除以 2 取余,逆序输出“ 例: (89)10 (1011001)2 2 89 2 44 1 2 22 0 2 11 0 2 5 1 2 2 1 2 1 0 0 1 十进制小数转二进制数:“乘以 2 取整,顺序输出“ 例: (0 625)10= (0101)2 0625 X 2 125 X 2 05 X 2 10 2八进制与二进制的转换 例:将八进制的 37.416 转换成二进制数: 37 4 1 6 011 111 100 001 110 即:(37.416)8 (11111.1000011

16、1 )2 例:将二进制的 10110.0011 转换成八进制: 0 1 0 1 1 0 . 0 0 1 1 0 0 2 6 . 1 4 即:(10110.011)2 (26.14 )8 3十六进制与二进制的转换例:将十六进制数 5DF.9 转换成二进制: 创新实验95 D F 9 0101 1101 11111001 即:(5DF.9)16 (10111011111.1001)2 例:将二进制数 1100001.111 转换成十六进制: 0110 0001 1110 6 1 E 即:(1100001.111)2 (61.E)163、1. 十二进制的转换将十进制数 0、1、2、3、4、5、6、7

17、、8、9 等 10 个信号编成二进制代码,它的输入是代表 09 这 10 个数符的状态信号,有效信号为 1(即某信号为 1 时,则表示要对它进行编码) ,输出是相应的 BCD 码,因此也 10 线4 线编码器,任何时刻 只允许输入一个有效信号, 的编码是隐含的。表达式为:0YD= 98Y98C= 45674567AB= 3232 YA= 9751Y9751表 1 十-二进制转换真值表十进制数 D C B A0( )Y0 0 0 01( ) 0 0 0 12( ) 0 0 1 03( )Y0 0 1 14( ) 0 1 0 05( ) 0 1 0 16( )Y0 1 1 0创新实验107( )Y

18、0 1 1 18( ) 1 0 0 09( ) 1 0 0 12. 二(BCD)十进制的转换将输入的一位 BCD 码(四位二元符号)译成 10 个高、低电平输出信号。当输入一个 BCD 码时,就会在它所表示的十进制数的对应输出端产生一个低电平有效信号。)()(32103210 AAY1)()(321032102 3 AAAY)()(321032104 5)()(321032106 AAAY7)()(321032108 9 AAAY表 2 二-十进制转换真值表输入 输出序号 3A210Y123Y456Y789Y0 0 0 0 0 1 0 0 0 0 0 0 0 0 01 0 0 0 1 0 1

19、0 0 0 0 0 0 0 02 0 0 1 0 0 0 1 0 0 0 0 0 0 0创新实验113 0 0 1 1 0 0 0 1 0 0 0 0 0 04 0 1 0 0 0 0 0 0 1 0 0 0 0 05 0 1 0 1 0 0 0 0 0 1 0 0 0 16 0 1 1 0 0 0 0 0 0 0 1 0 0 07 0 1 1 1 0 0 0 0 0 0 0 1 0 08 1 0 0 0 0 0 0 0 0 0 0 0 1 09 1 0 0 1 0 0 0 0 0 0 0 0 0 1三、工程开发流程(一) 工程开发流程利用 Xilinx公司的 ISE开发设计软件的工程设计流程

20、如图 2所示,具体分为五个步骤:即输入(Design Entry) 、综合(Synthesis) 、实现(Implementation)、验证(Verification) 、下载(Download) 。图 2 设计流程图图形或文本输入包括原理图、状态机、波形图、硬件描述语言(HDL) ,是工程设计的第一步,ISE 集成的设计工具主要包括 HDL编辑器(HDL Editor) 、状态机编辑器(StateCAD) 、原理图编辑器(ECS) 、IP 核生成器(CoreGenerator)和测试激励生成器(HDL Bencher)等。1、设计输入常用的设计输入方法是硬件描述语言(HDL)和原理图设计输

21、入方法。创新实验12原理图输入是一种常用的基本的输入方法,其是利用元件库的图形符号和连接线在 ISE软件的图形编辑器中作出设计原理图。ISE中设置了具有各种电路元件的元件库,包括各种门电路、触发器、锁存器、计数器、各种中规模电路、各种功能较强的宏功能块等用户只要点击这些器件就能调入图形编辑器中。这种方法的优点是直观、便于理解、元件库资源丰富。但是在大型设计中,这种方法的可维护性差,不利于模块建设与重用。更主要的缺点是:当所选用芯片升级换代后,所有的原理图都要作相应的改动。为了克服原理图输入方法的缺点,目前在大型工程设计中,在 ISE软件中常用的设计方法是 HDL设计输入法,其中影响最为广泛的

22、HDL语言是 VHDL和Verilog HDL。它们的共同优点是利于由顶向下设计,利于模块的划分与复用,可移植性好,通用性强,设计不因芯片的工艺和结构的变化而变化,更利于向ASIC的移植,故在 ISE软件中推荐使用 HDL设计输入法。波形输入及状态机输入方法是两种最常用的辅助设计输入方法,使用波形输入法时,只要绘制出激励波形的输出波形,ISE 软件就能自动地根据响应关系进行设计;而使用状态机输入时,只需设计者画出状态转移图,ISE 软件就能生成相应的 HDL代码或者原理图,使用十分方便。其中 ISE工具包中的StateCAD就能完成状态机输入的功能。但是需要指出的是,后两种设计方法只能在某些特

23、殊情况下缓解设计者的工作量,并不适合所有的设计。2、综合(Synthesis)综合是将行为和功能层次表达的电子系统转化为低层次模块的组合。一般来说,综合是针对 VHDL来说的,即将 VHDL描述的模型、算法、行为和功能描述转换为 FPGA/CPLD基本结构相对应的网表文件,即构成对应的映射关系。在 Xilinx ISE中,综合工具主要有 Synplicity公司的Synplify/Synplify Pro,Synopsys 公司的 FPGA Compiler II/ Express, Exemplar Logic公司的 LeonardoSpectrum 和 Xilinx ISE 中的 XST等

24、,它们是指将 HDL语言、原理图等设计输入翻译成由与、或、非门,RAM,寄存器等基本逻辑单元组成的逻辑连接(网表) ,并根据目标与要求优化所形成的逻辑连接,输出 edf和 edn等文件,供 CPLD/FPGA厂家的布局布线器进行实现。3、实现(Implementation)实现是根据所选的芯片的型号将综合输出的逻辑网表适配到具体器件上。Xilinx ISE的实现过程分为:翻译(Translate) 、映射(Map) 、布局布线(Place & Route)等 3个步骤。ISE集成的实现工具主要有约束编辑器(Constraints Editor) 、引脚与区域约束编辑器(PACE) 、时序分析器

25、(Timing Analyzer) 、FPGA 底层编辑器(FGPA Editor) 、芯片观察窗(Chip Viewer)和布局规划器(Floorplanner)等。4、验证(Verification)验证(Verification)包含综合后仿真和功能仿真(Simulation)等。功能仿真就是对设计电路的逻辑功能进行模拟测试,看其是否满足设计要求,通常是通过波形图直观地显示输入信号与输出信号之间的关系。创新实验13综合后仿真在针对目标器件进行适配之后进行,综合后仿真接近真实器件的特性进行,能精确给出输入与输出之间的信号延时数据。ISE可结合第三方软件进行仿真,常用的工具如 Model T

26、ech公司的仿真工具 ModelSim和测试激励生成器 HDL Bencher ,Synopsys 公司的 VCS等。通过仿真能及时发现设计中的错误,加快设计中的错误,加快设计进度,提高设计的可靠性。每个仿真步骤如果出现问题,就需要根据错误的定位返回到相应的步骤更改或者重新设计。5、下载(Download)下载(Download)即编程(Program)设计开发的最后步骤就是将已经仿真实现的程序下载到开发板上,进行在线调试或者说将生成的配置文件写入芯片中进行测试。在 ISE中对应的工具是 iMPACT。(二) 实际运用过程1、设计输入1)建立源文件本 实 验 采 用 原 理 图 输 入 工 具

27、 -ESC( Engineering Capture Systems) , 在ESC 的 图 形 化 用 户 界 面 下 , 用 户 可 以 编 辑 原 理 图 的 模 块 符 号 , 使 用 ESC 设 计原 理 图 可 以 分 为 :1、 新 建 原 理 图 ;2、 选 择 放 置 器 件 符 号 ;3、 添 加 连 线 ;4、 添 加 网 线 名 称 ;5、 设 置 I/O 管 脚 ;6、 生 成 器 件 符 号 等 。2、设计实现1)时序仿真在进行布局布线后时序仿真(post-place and route simulation),此类仿真信息中包含目标器件时序信息。2)产生报告并修改

28、设计在本次的实验中,能够较顺利地完成时序仿真,在仿真过程中,产生的毛刺很少,因此就省略了修改设计。但是,一旦在仿真时产生的毛刺较多,就需要修改设计以清除这些毛刺。创新实验14在组合逻辑电路中,信号要经过一系列的门电路和信号变换。由于延迟的作用使得当输入信号发生变化时,其输出信号不能同步地跟随输入信号变化,而是经过一段过渡时间后才能达到原先所期望的状态。这时会产生小的寄生毛刺信号,使电路产生瞬间的错误输出,造成逻辑功能的瞬时紊乱。毛刺问题在电路连线上是找不出原因的,只能从逻辑设计上采取措施加以解决。当电路中存在冒险现象是,必须设法消除它,否则会导致严重错误,消除冒险现象通常有如下几种方法:(1)

29、 ,加滤波电路,消除毛刺的影响;(2) ,加选通信号避开毛刺;(3) ,增加冗余项消除逻辑冒险。3、配置或编程1)编程器件FPGA设计中的约束文件有 3类:用户设计文件(.UCF 文件) 、网表约束文件(.NCF 文件)以及物理约束文件(.PCF 文件) ,可以完成时序约束、管脚约束以及区域约束。a) 创 建 约 束 文 件约 束 文 件 的 后 缀 是 .ucf, 所 以 一 般 也 被 称 为 UCF 文 件 。 通 过 新 建 方 式 创建 约 束 文 件b) 用 PACE进行引脚位置约束启 动 PACE, 在 “Ports”选 项 卡 中 可 以 看 到 , 所 有 的 端 口 都 已

30、 经 罗 列出 来 了 , 如 果 要 修 改 端 口 和 FPGA 管 脚 的 对 应 关 系 , 只 需 要 在 每 个 端 口的 “Location”列 中 填 入 引 脚 的 编 号 即 可 。2)验证电路3)下载:下载成功,实验顺利完成。四、实验总结通过本次的实验,学习到很多以往所没有接触过的知识与技能,如对于FPGA与 PLD的结构原理、开发软件 ISE、芯片 Xilinx Spartan-II等。在实验开始阶段,如何选题成为了首个遇到的困难。由于从未接触过FPGA,不知道选择怎么样的题目才能符合实验的要求,因此就想方设法地从网络上与图书馆中,尽可能多地搜索需要的资料。在阅读与理解

31、了这些资料之后,才对 FPGA有所了解,并选择出适合自己又符合实验要求的题目来。开始实验之后,渐渐地发现学习使用开发软件 ISE的难度。对于一个完全陌生的软件,需要阅读有关书籍与不断地尝试,并时常向老师与同学咨询,才可以学会熟练地应用它。因此,经过此次的实验,不仅学会使用 ISE,并且能创新实验15够通过与老师与同学的交流中学习到更多的东西。也正因为如此,才能够顺顺利利地完成了本次实验。五、参考文献【1】 FPGA 设计及应用(第二版) 作者:褚振勇、齐亮、田红心、高楷娟 西安电子科技大学出版社【2】 Xilinx 可编程逻辑器件的高级应用与设计技巧 作者:孙航 电子工业出版社【3】 FPGA/CPLD 设计工具-XilinxISE5.X 使用详解 EDA 先锋工作室 人民邮电出版社【4】 数字电子技术基础 作者:杨颂华、冯毛官、孙万蓉、胡力山 西安电子科技大学出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报