1、 I 目 草鱼录 草鱼 摘要 I 草鱼 Abstract I 草鱼 第一章 草鱼 引言 1 草鱼 1.1 草鱼 课题研究的目的与意义 1 草鱼 1.2 草鱼 国内外发展现状 1 草鱼 1.3 草鱼 课题的主要技术路线 1 草鱼 第二章 草鱼 FPGA 技术及硬件描述语言 2 草鱼 2.1 草鱼 FPGA 技术的发展现状及与 CPLD 的比较 2 草鱼 2.2 草鱼 FPGA 设计方法 4 草鱼 2.3 草鱼 利用硬件描述语言( HDL)的硬件电路设计方法 4 草鱼 2.4 草鱼 VHDL 语言的特点 5 草鱼 2.5 草鱼 Quartus 草鱼 概述及其设计流程 6 草鱼 第三章 草鱼 系统总
2、体设计 7 草鱼 3.1 草鱼 计算器的计算部分 8 草鱼 3.2 草鱼 计算器的存储部分 8 草鱼 3.3 草鱼 计算器的显示部分 8 草鱼 3.4 草鱼 计算器的输入部分 9 草鱼 第四章 草鱼 计算器的 VHDL 设计 10 草鱼 4.1 草鱼 加法器的设计与仿真 10 草鱼 4.2 草鱼 减法器的设计与仿真 11 草鱼 4.3 草鱼 乘法器的设计与仿真 12 草鱼 4.4 草鱼 除法器的设计与仿真 13 草鱼 第五章 草鱼 结束语 15 草鱼 致谢 错误 !未定义书签。 草鱼 参考文献 16 草鱼 附录 16 草鱼 草鱼 I 基于 FPGA 的计算器设计 草鱼 摘要 : 草鱼 本文介绍
3、了一个简单 计算器的设计 , 鲤鱼 该设计 采用了现场可编程逻辑器件 FPGA 设计 , 鲤鱼 并基于硬件描述语言 VHDL 在 Altera 公司的 Quartus 草鱼 软件上实现 仿真 。 草鱼 系统由 计算部分 、 pork存储部分 、 pork显示部分和输入部分四 个 部分 组成 , 鲤鱼 计算部分为加法器 、 pork减法器 、 pork乘法器和除法器 , 鲤鱼 存储部分需要3 个存储器来实现 : pork内部累加器( acc) 、 pork输入寄存器( reg)以及结果暂存器( ans) 。 草鱼 显示部分由四个七段译码管组成 , 鲤鱼 分别来显示输入数字 , 鲤鱼 输入部分采用
4、外接键盘 , 鲤鱼 由 09 十个数字按键 , 鲤鱼 加减乘除四个运算符按键 , 鲤鱼 一个等号按键和一个清零按键组成的 。 草鱼 通过 外部的按键 可以 完成 四位数 之内的 草鱼 加 、 pork减 、 pork乘 、 pork除 四 种功能运算 , 鲤鱼 其 结构简单 , 鲤鱼 易于实现 。 草鱼 草鱼草鱼 关键 词 :FPGA; porkVHDL; por k计算器 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 The 草鱼design 草鱼 of 草鱼calculato
5、r 草鱼 based 草鱼on 草鱼FPGA 草鱼 Abstract: porkThis 草鱼 article 草鱼 describes 草鱼 the 草鱼 design 草鱼 of 草鱼 a 草鱼 simple 草鱼 calculator, 草鱼 the 草鱼 design 草鱼 uses 草鱼 Field 草鱼 Programmable 草鱼 Gate 草鱼 Array 草鱼 FPGA 草鱼 based 草鱼 on 草鱼 VHDL 草鱼 hardware 草鱼 description 草鱼 language 草鱼 to 草鱼design 草鱼 and 草鱼 Alteras 草鱼 Quart
6、us 草鱼 草鱼 in 草鱼 software 草鱼 for 草鱼 emulation. 草鱼 This 草鱼 system 草鱼 is 草鱼componentted 草鱼 by 草鱼 the 草鱼 calculation 草鱼 section, 草鱼 storage 草鱼 section, 草鱼 display 草鱼 and 草鱼 input 草鱼 section 草鱼 of 草鱼the 草鱼 four 草鱼 parts, 草鱼 the 草鱼 computing 草鱼 part 草鱼 include 草鱼 adder, 草鱼 subtractor, 草鱼 multiplier 草鱼 and
7、草鱼divider,Storage 草鱼 part 草鱼 needs 草鱼 three 草鱼 memory 草鱼 to 草鱼 help 草鱼 achieved: 草鱼 internal 草鱼 accumulator 草鱼 (acc), 草鱼II input 草鱼 register 草鱼 (reg) 草鱼 as 草鱼 well 草鱼 as 草鱼 the 草鱼 results 草鱼 of 草鱼 registers 草鱼 (ans). 草鱼 Display 草鱼 part 草鱼 is 草鱼 made 草鱼 up 草鱼three 草鱼 decoder 草鱼 of 草鱼 7 草鱼 sections, 草
8、鱼 respectively 草鱼 to 草鱼 show 草鱼 the 草鱼 number 草鱼 of 草鱼 input. 草鱼 Input 草鱼 part 草鱼 has 草鱼ten 草鱼 number 草鱼 keys, 草鱼 from 草鱼 0 草鱼 草鱼 9, 草鱼 also 草鱼 has 草鱼 addition 草鱼 and 草鱼 subtraction 草鱼 and 草鱼 multiplication 草鱼 and 草鱼 division 草鱼 arithmetic 草鱼 operator 草鱼 keys, 草鱼 a 草鱼 button 草鱼 and 草鱼 of 草鱼 equal 草鱼
9、 sign 草鱼 and 草鱼 the 草鱼 clear 草鱼 key. 草鱼Buttons 草鱼 can 草鱼 be 草鱼 done 草鱼 through 草鱼 external 草鱼 within 草鱼 the 草鱼 four-digit 草鱼 add, 草鱼 subtract, 草鱼 multiple, 草鱼divede 草鱼 the 草鱼 four 草鱼 kinds 草鱼 of 草鱼 functional 草鱼 operations, 草鱼 its 草鱼 structure 草鱼 is 草鱼 simple 草鱼 and 草鱼 easy 草鱼 to 草鱼implement.草鱼 Key
10、草鱼 words: porkFPGA;porkVHDL;por kcalclute 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 1 第一章 草鱼 引言 草鱼 1.1 草鱼 课题研究的目的与意义 草鱼 在人类学会交易的时候 , 鲤鱼 计算也随之产生 , 鲤鱼 而 算盘作为计算最实用的工具存在了几千年 。草鱼 算盘亦称珠算 , 鲤鱼 是中国人民创造的一种计算工具 , 鲤鱼 素有 中国计算机 之称 。 草鱼 算盘产生于汉代之前 , 鲤鱼 是由古代的 筹算 演变而来的 , 鲤鱼 珠算一词 , 鲤鱼 最早见于汉末三国时代徐岳撰数术记遗 , 鲤鱼 书中有 珠算 , 鲤鱼 控带四时 , 鲤鱼
11、 经纬三才 的记述 。 草鱼 南宋数学家杨辉的乘除通变算宝中有 九归 口诀 , 鲤鱼 元代刘因亦有算盘诗 , 鲤鱼 明人吴敬九章详注比类算法大全记载了珠算的有关算法 。 草鱼 明清时期 , 鲤鱼 算盘的应用已很广泛 , 鲤鱼 关于算盘制造规格 , 鲤鱼 明万历年间柯尚迁的数学通轨载有 13 档算盘图 , 鲤鱼 上 2 珠 , 鲤鱼 下 5 珠 , 鲤鱼 呈长方形 , 鲤鱼 四周为木框 ,鲤鱼 内有轴心 , 鲤鱼 俗称 档 , 鲤鱼 档中间用一根横梁隔开 , 鲤鱼 运算时定位后拨珠运算 。 草鱼 后来出现的各种规格的算盘 , 鲤鱼 都是在此基础上发展起来的 。 草鱼 算盘构造简单 , 鲤鱼 便于
12、掌握 , 鲤鱼 使用方便 , 鲤鱼成为计算理财不可缺少的工具 。 草鱼 算盘从明代开始传入朝鲜 、 pork日本等东亚国家 。 草鱼 清代 时 算盘随着经济文化交往被传入东南亚诸国 , 鲤鱼 二次世界大战后 , 鲤鱼 美国也从日本引进了算盘 ,鲤鱼 可见算盘在人们的日常生活 中 起着非常重要的作用 , 鲤鱼 不管是 大商人 还是小商贩都需要使用算盘进行计算 。 草鱼 可是随着人类文明的进步和科学技术的不断发展 。 草鱼 算盘已经越来越不能满足一些高强度 、 por k高难度 、 pork高速度的复杂计算 。 草鱼 这时 , 鲤鱼 一种 新 的电子产品问世了 , 鲤鱼它就是电子计算器 。 草鱼
13、电子计算器 的发明是跨时代 的 , 鲤鱼 它比算盘计算 的速度要快几百几千倍 , 鲤鱼 计算的结果要比算盘更精确 , 鲤鱼 操作的方法要更方便 , 鲤鱼 更简单易学 , 鲤鱼 计算的范围更广 ,鲤鱼 并且小巧 、 pork轻便 。 草鱼 它已经成为人们日常生活中不可缺少的一种计算工具 , 鲤鱼 为我们的生活提供了很大的方便 。 草鱼 而随着计算机的普及 , 鲤鱼 越来越多人在使用计算机 , 鲤鱼 越来越多的工作离不开计算机 , 鲤鱼 可 以说 计算机已经成为现代社会中不可 或缺 的工具 , 鲤鱼 而电子计算器功能也以软件的形式进入计算机的软件世界 , 鲤鱼 这不仅给人们带来了更大的便利 , 鲤
14、鱼 更为人们引入了更快的计算速度和更强大的 运算 功能 。 草鱼 草鱼 1.2 草鱼 国内外发展现状 草鱼 ( 1)国外情况 草鱼 在国外 , 鲤鱼 电子计算器在集成电路发明后 , 鲤鱼 只用短短几年时间就完成了技术飞跃 , 鲤鱼 经过激烈的市场竞争 , 鲤鱼 现在的计算器技术己经相当成熟 。 草鱼 计算器已慢慢地脱离原来的 辅助计算工具 的功能定位 , 鲤鱼 正向着多功能化 、 pork可编程化方向发展 , 鲤鱼 在各个领域都得到了广泛的应用 。 草鱼 用计算器不仅可以实现各种各样复杂的数学计算还可以用来编制 、 pork运行程序 ,鲤鱼 甚至解方程组 , 鲤鱼 图形计算器还可以进行 图形处
15、理 。 草鱼 计算器内置的软件允许用户进行类似于对计算机的文件和目 录 管 理等操作 , 鲤鱼 允许用户对图形界面进行定制 , 鲤鱼 同时各种新技术也被应用到计算器里使计算器功能越来越强大 。 草鱼 可以说 , 鲤鱼 计算器就是一个 微微型 的计算机 。 草鱼 草鱼 ( 2)国内情况 草鱼 国内也有厂商利用计算器芯片开发新的产品 , 鲤鱼 但对计算器技术的研究 、 pork计算器芯片的设计还处于起步阶段 。 草鱼 计算器的主要功能还是在于 计算 , 鲤鱼 不妨称之为 低档计算器 。 草鱼 即便是对这种计算器 , 鲤鱼 很多厂商也只从事计算器的组装 、 pork销售业务 。 草鱼 一些 IC 设
16、计公司 、 por k芯片提供商也开始研究计算器技术 。 草鱼 草鱼 1.3 课题的主要技术路线 草鱼 2 本次 设计 基于 现场可编程逻辑器件 FPGA 进行 设计 , 鲤鱼 应用 硬件描述语言 VHDL 编程并在 Altera 公司的 Quartus 草鱼 软件上实现 仿真 。 草鱼 需要进行 计算器的常用运算功能的实现 ,鲤鱼 通过外接键盘输入 、 por kLED 数码显示来达成运算目的 。 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 第二章 草鱼 FPGA技术及硬件描述语言 草鱼 2.1 草鱼 FPGA 技术的发展
17、现状 及与 CPLD 的比较 草鱼 ( 1) FPGA 技术的发展现状 草鱼 FPGA 是英文 Field 草鱼 Programmable 草鱼 Gate 草鱼 Array的缩写 , 鲤鱼 即现场可编程门阵列 , 鲤鱼 它是在PAL、 por kGAL、 porkCPLD 等可编程器件的基础上进一步发展的产物 。 草鱼 它是作为专用集成电路( ASIC)领域中的一种半定制电路而出现的 , 鲤鱼 既解决了定制电路的不足 , 鲤鱼 又克服了原有可编程器件门电路数有限的缺点 。 草鱼草鱼 FPGA 采用了逻辑单元阵列 LCA( Logic 草鱼 Cell 草鱼 Array)这样一个概念 , 鲤鱼 内
18、部包括可配置逻辑模块 CLB( Configurable 草鱼 Logic 草鱼 Block) 、 pork输入 输出模块 IOB( Input 草鱼 Output 草鱼 Block)和内部连线( Interconnect)三个部分 。 草鱼 FPGA 的基本特点主要有 : por k草鱼 .采用 FPGA 设计 ASIC 电路 , 鲤鱼 用户不需要投片生产 , 鲤鱼 就能得到合用的芯片 。 草鱼草鱼 .FPGA 可做其它全定制或半定制 ASIC 电路的 测 试样片 。 草鱼草鱼 .FPGA 内部有丰富的触发器和 I O 引脚 。 草鱼草鱼 .FPGA 是 ASIC 电路中设计周期最短 、 p
19、or k开发费用最低 、 por k风险最小的器件之一 。 草鱼草鱼 .FPGA 采用高速 CHMOS 工艺 , 鲤鱼 功耗低 , 鲤鱼 可以与 CMOS、 por kTTL 电平兼容 。 草鱼草鱼 FPGA 是由存放在片内 RAM 中的程序来设置其工作状态的 , 鲤鱼 因此 , 鲤鱼 工作时需要对片内的 RAM 进行编程 。 草鱼 用户可以根据不同的配置模式 , 鲤鱼 采用不同的编程方式 。 草鱼 加电时 , 鲤鱼 FPGA芯片将 EPROM 中数据读入片内编程 RAM 中 , 鲤鱼 配置完成后 , 鲤鱼 FPGA 进入工作状态 。 草鱼 掉电后 , 鲤鱼 FPGA 恢复成白片 , 鲤鱼 内
20、部逻辑关系消失 , 鲤鱼 因此 , 鲤鱼 FPGA 能够反复使用 。 草鱼 FPGA 的编程无须专用的 FPGA 编程器 , 鲤 鱼 只须用通用的 EPROM、 porkPROM 编程器即可 。 草鱼 当需要修改 FPGA 功能时 , 鲤鱼 只需换一片 EPROM 即可 。 草鱼 这样 , 鲤鱼 同一片 FPGA, 鲤鱼 不同的编程数据 ,鲤鱼 可以产生不同的电路功能 。 草鱼 因此 , 鲤鱼 FPGA 的使用非常灵活 。 草鱼草鱼 3 与 FPGA 对应的还有 DSP 处理器 , 鲤鱼 DSP 处理器速度虽然很快 , 鲤鱼 并对许多 DSP 应用来说很有用 , 鲤鱼 但仍有一些应用要求性能再
21、进一步提升 , 鲤鱼 而 FPGA 提供了更高的性能 。 草鱼 FPGA可以生成一个定制硬件设计 , 鲤鱼 从而控制逻辑能够在硬件中实现 , 鲤鱼 不必再利用精确的时钟周期来 实现控制功能 。 草鱼 此外 , 鲤鱼 通过裁减硬件架构 , 鲤鱼 FPGA 可以提供额外的性能 。 草鱼 如果最重要的设计考虑因素是速度 , 鲤鱼 那么可以在 FPGA 中设计完全并行的算法处理方案 。 草鱼 现在 ,鲤鱼 许多系统已经包含了一个 FPGA, 鲤鱼 用于协议转换 、 pork胶合逻辑或一些其它系统功能 。 草鱼 如果那个 FPGA 没有被完全利用 , 鲤鱼 那么把 DSP 功能加入其中可以为系统节约成本
22、 。 草鱼 而且如果标准发生改变 , 鲤鱼 使用 FPGA 就不会有任何风险 。 草鱼 FPGA 的配置文件能够像软件那样升级 , 鲤鱼 尽管它们必须被存储在系统的非易失性存储器中 。 草鱼草鱼 目 前的 FPGA 设计一般采用 Top-down(自顶向下)的设计方法 。 草鱼 先将系统划分为各个功能子模块 , 鲤鱼 在系统级层次上进行行为描述 , 鲤鱼 再对这些子模块进一步进行行为描述 。 草鱼草 鱼 ( 2) FPGA 与 CPLD 的比较 草鱼 FPGA 是现场可编程逻辑门阵列的简称 , 鲤鱼 是电子设计的一个里程碑 。 草鱼 CPLD 是复杂可 编程 逻辑器件的简称 。 草鱼 尽管 F
23、PGA 和 CPLD 都是可编程 ASIC 器件 ,有很多共同特点 ,但由于 CPLD 和 FPGA 结构上的差异 ,具有各自的特点 : por k 草鱼 草鱼草鱼 .CPLD 更适合完成各种算法和组合逻辑 , 鲤鱼 FPGA 更适合于完成时序逻辑 。 草鱼 换句话说 , 草鱼 FPGA更适合于触发器丰富的结构 , 鲤鱼 而 CPLD更适合于触发器有限而乘积项丰富的结构 。草鱼草鱼 .CPLD 的连续式布线结构决定了它的时序延迟是均匀的和可预测的 , 鲤鱼 而 FPGA 的分段式布线结构决定了其延迟的不可预测性 。 草鱼草鱼 .在编程上 FPGA 比 CPLD 具有更大的灵活性 。 草鱼 CP
24、LD 通过修改具有固定内连电路的逻辑功能来编程 , 鲤鱼 草鱼 FPGA 主要通过改变内部连线的布线来编程 ; pork 草鱼 FPGA 可在逻辑门下编程 , 鲤鱼 而 CPLD 是在逻辑块下编程 。 草鱼 草 鱼草鱼 .FPGA 的集成度比 CPLD 高 , 鲤鱼 具有更复杂的布线结构和逻辑实现 。 草鱼 草鱼草鱼 .CPLD 比 FPGA 使用起来更方便 。 草鱼 CPLD 的编程采用 E2PROM 或 FASTFLASH 技术 ,鲤鱼 无需外部存储器芯片 ,使用简单 。 草鱼 而 FPGA 的编程信息需存放在外部存储器上 , 鲤鱼 使用方法复杂 。 草鱼草鱼 .CPLD 的速度比 FPG
25、A 快 , 鲤鱼 并且具有较大的时间可预测性 。 草鱼 这是由于 FPGA 是门级编程 , 鲤鱼 并且 CLB 之间采用分布式互联 , 鲤鱼 而 CPLD 是逻辑块级编程 , 鲤鱼 并且其逻辑块之间的互联是集总式的 。 草鱼 草鱼草鱼 .在编程方式上 , 鲤鱼 FPGA 大部分是基于 SRAM 编程 , 鲤鱼 编程信息在系统断电时丢失 , 鲤鱼 每次上电时 , 鲤鱼 需从器件外部将编程数据重新写入 SRAM 中 。 草鱼 其优点是可以编程任意次 , 鲤鱼可在工作中快速编程 ,从而实现板级和系统级的动态配置 。 草鱼 草鱼 CPLD 主要是基于 EEPROM或 FLASH 存储器编程 ,编程次数
26、可达 1 万次 , 鲤鱼 优点是系统断电时编程信息也不丢失 。 草鱼CPLD 又可分为在编程器上编程和在系统编程两类 。 草鱼草鱼 .一般情况下 , 鲤鱼 CPLD 的功耗要比 FPGA 大 , 鲤鱼 且集成度越高越明显 。 草鱼草鱼 随着 FPGA 门数以及性能的提高 , 鲤鱼 可以将现在的许多数字电路部分下载到 FPGA 上 , 鲤鱼实现硬件的软件化 , 鲤鱼 包括 51 核 , 鲤鱼 DSP 核以及其他的一些数字模块 , 鲤鱼 到最后一个系统板子就剩下电源 、 pork模拟电路部分 , 鲤鱼 接口部分以及一块 FPGA。 草鱼 FPGA 可以说是芯片级的 PCB板 , 鲤鱼 在一个芯片里
27、设计原来的电子系统的所有数字电路部分 。 草鱼草鱼 现在也有将 ARM 核嵌入到 FPGA 里面的 , 鲤鱼 比如 Altera 公司的 Nois 核 。 草鱼 Nois 是一个软核 , 鲤鱼 是有软件编写的一个 32 位处理器 , 鲤鱼 并不是硬件上存在的处理核 , 鲤鱼 该核工 作频率为50HZ, 鲤鱼 现在用于许多图像处理以及其他的很多网络设备 。 草鱼 利用锁相环技术可以将频率4 成倍提升 , 鲤鱼 一般的 ARM 核是将锁相环做到芯片里面的 , 鲤鱼 在变成的时候可以对某个寄存器进行设置从而达到分频和倍频的目的 。 草鱼 而将 DSP 核嵌入到 FPGA 里面去实现强大的计算功能是
28、Altera 公司近期推出的一系列芯片的一个优点 。 草鱼 Altera 公司的 Stratix 草鱼 II 系列芯片采用内嵌的 DSP 核 , 鲤鱼 但是其 DSP 核的计算速度比现在业界上最快的 DSP 芯片还要快几个数量级 。 草鱼草鱼 2.2 草鱼 草鱼 FPGA 设计方法 草 鱼 在 FPGA 设计中 , 鲤鱼 有许多重要的原则和规律可循 , 鲤鱼 掌握这些原则和规律 , 鲤鱼 人们可以设计出许多高性能的电子系统 。 草鱼 草鱼 (1) 草鱼 硬件原则 草鱼 硬件原则主要针对 HDL 代码编写而言的 。 草鱼 硬件描述语言 , 鲤鱼 它通过对硬件的抽象 , 鲤鱼 最终实现在芯片内部的
29、实际电路 。 草鱼 因此评判一段 HDL 代码的优劣的最终标准是 : pork其描述并实现的硬件电路的性能(主要是指面积和速度) 。 草鱼 评价一个设计的代码水平 , 鲤鱼 主要从设计工程师所构想的硬件实现方案的效率以及合理性来分析 。 草鱼 草鱼 (2) 草鱼 系统原则 草鱼 一个硬件系 统 , 鲤鱼 通过何种方式进行模块划分与任务分配 , 鲤鱼 使用算法和实现功能 , 鲤鱼 以及FPGA 的规模估算 、 pork数据接口设计等 , 鲤鱼 具体到 FPGA 的设计就要求对设计的全局有个宏观上的合理安排 。 草鱼 一般来说实时性要求高 、 pork频率快 、 pork功耗小的功能模块适合使用
30、CPLD实现 。 草鱼 而 FPGA 与 CPLD 相比 , 鲤鱼 更适合实现规模较大 、 pork频率较高 、 pork寄存器资源使用较多的设计 。 草鱼 草鱼 (3) 草鱼 面积和速度的平衡与互换原则 草鱼 这是在进行 FPGA 设计时的一个重要原则 。 草鱼 这里 面积 是指一种设计所要消耗的FPGA/CPLD 的逻辑资源的数量 , 鲤鱼 对于 FPGA 可以用所消耗的触发器( FF)和查找表( LUT)来衡量 , 鲤鱼 更一般的衡量方式可以用设计所占用的等价逻辑门数 。 草鱼 速度 是指设计在芯片上稳定运行 , 鲤鱼 所能够达到的最高频率 , 鲤鱼 这个频率由设计的时序状况决定 , 鲤
31、鱼 和设计满足的时钟周期 , 鲤鱼 时钟建立时间( Clock 草鱼 Setup 草鱼 Time) , 鲤鱼 时钟保持时间( Clock 草鱼 Hold 草鱼 Time)等众多时序特征量密切相关 。 草鱼 面积和速度是对立统一的矛盾体 。 草鱼 要求一个设计同时具备运行频率最高而且面积最小是不 现实的 。 草鱼 科学的设计方法是在满足设计时序要求的前提下 , 鲤鱼 占用最小的芯片面积 。 草鱼 或者在所规定的面积下 , 鲤鱼 频率更高 。 草鱼 这两种目标充分体现了面积和速度的平衡思想 。 草鱼 相比之下 , 鲤鱼 满足时序 、 por k工作频率的要求更重要一些 , 鲤鱼当两者冲突时 , 鲤
32、鱼 采用速度优先的准则 。 草鱼 草鱼 (4) 草鱼 同步设计原则 草鱼 采用同步时序设计是 FPGA 设计的一个重要原则 。 草鱼 它可以使静态时序分析变得简单而且可靠 , 鲤鱼 能有效地避免毛刺的影响 , 鲤鱼 使设计更加有效 , 鲤鱼 还可以减小环境对芯片的影响 。 草鱼在遵循这一原则的时候 , 鲤鱼 应该 尽可能的在设计中使用同一时钟 , 鲤鱼 时钟走全局网络 , 鲤鱼 同时避免使用混合时钟采样数据 。 草鱼 草鱼 2.3 草鱼 利用硬件描述语言( HDL)的硬件电路设计方法 草鱼 硬件描述语言 , 鲤鱼 就是可以描述电路的功能 、 pork信号连接关系及定时关系的语言 。 草鱼 它能
33、比电路图更有效地表示硬件电路的特性 。 草鱼 利用硬件描述语言编程来表示逻辑器件及系统硬件的功能和行为 , 鲤鱼 是该设计方法的一个重要特征 。 草鱼 随着大规模专用集成电路( ASIC)的开发和研制 , 鲤鱼 为了提高开发的效率 , 鲤鱼 增加已有开发成果的可继承性以及缩短开发时间 , 鲤鱼各 ASIC 研制和生产厂家相继开发了用于各自目的的硬件描述语言 。 草鱼 其中最有代表性的是美国国防部开发的 VHDL 语言 , 鲤鱼 Verilog公司开发的 Verilog 草鱼 HDL 以及日本电子工业振兴协会开发的 UDL/I 语言 。 草鱼 利用硬件描述语言( HDL)的硬件电路设计方法具有以
34、下5 特点 : por k草鱼 (1) 草鱼 采用自上而下的设计方法 草鱼 (2) 草鱼 系统中可大量采用 ASIC 芯片 草鱼 由于目前众多的制造 ASIC 芯片的厂家 , 鲤鱼 他们的工具软件都可以支持 HDL 语言的编程 ,鲤鱼 因此 , 鲤鱼 硬件设计人员在设计硬件电路时 , 鲤鱼 无须受只能使用 通用元器件的限制 , 鲤鱼 而可以根据硬件电路设计的需要 , 鲤鱼 设计自用的 ASIC 芯片或可编程逻辑器件 。 草鱼 这样最终会使系统电路设计更趋合理 , 鲤鱼 体积也可大为缩小 。 草鱼 草鱼 (3) 草鱼 采用系统早期仿真 草鱼 从自上至下的设计过程可以看到 , 鲤鱼 在系统设计过程
35、中要进行三级仿真 , 鲤鱼 即行为层次仿真 、porkRTL 层次仿真和门级层次仿真 。 草鱼 也就是说进行系统数学模型的仿真 、 pork系统数据流的仿真和系统门级电路原理的仿真 。 草鱼 这 三 级仿真贯穿系统硬件设计的全过程 , 鲤鱼 从而可以在系统设计早期发现设计中存在的问题 。 草鱼 草鱼 (4) 草鱼 降低了硬件电路设计难度 草鱼 在采用传统的硬件电路设计方法时 , 鲤鱼 往往要求设计者在设计电路前应写出该电路的逻辑表达式或真值表(或时序电路的状态表) 。 草鱼 这一工作是很困难和繁杂的 , 鲤鱼 特别是在系统比较复杂时更是如此 。 草鱼 在用 HDL 语言设计硬件电路时 , 鲤鱼
36、 就可以使设计者免除编写逻辑表达式或真值表之苦 。 草鱼 这样使硬件 电路的设计难度有了大幅度的下降 , 鲤鱼 从而也缩短了硬件电路的设计周期 。 草鱼 草鱼 (5) 草鱼 主要设计文件是用 HDL 语言编写的源程序 草鱼 在传统的硬件电路设计中 , 鲤鱼 最后形成的主要文件是电原理图 , 鲤 鱼而采用 HDL 语言设计系统硬件电路时 , 鲤鱼 主要的设计文件是用 HDL 语言编写的源程序 。 草鱼 如果需要也可以转换为电原理图形式输出 。 草鱼 用 HDL 语言源程序作为归档文件有很多好处 。 草鱼 其一是资料量小 , 鲤鱼便于保存 。 草鱼 其二是可继承性好 。 草鱼 当设计其它硬件电路时
37、 , 鲤鱼 可以使用文件中的某些库 、 por k进程和过程等描述某些局部硬件电路的程序 。 草鱼 其三是阅读方便 。 草鱼 阅读程序比阅读原理图要更容易一些 。 草鱼 阅读者很容易在程序中看出某一硬件电路的工作原理和逻辑关系 。 草鱼 而阅读电原理图 , 鲤鱼 推知其工作原理却需要较多的硬件知识和经 验 , 鲤鱼 而且看起来也不那么一目了然 。 草鱼 草鱼 2.4 草鱼 VHDL 语言的特点 草鱼 VHDL 语言作为一种标准的硬件描述语言 , 鲤鱼 具有结构严谨 、 pork描述能力强的特点 。 草鱼 支持从系统级到逻辑门级电路所有层次的设计 , 鲤鱼 适合于复杂逻辑电路和系统的设计 。 草
38、鱼 作为一种高级硬件描述语言 , 鲤鱼 VHDL 语言有如下特点 : por k草鱼 .与其他的硬件描述语言相比 , 鲤鱼 VHDL 具有更强的行为描述能力 。 草鱼 强大的行为描述能力是避开具体的器件结构 、 por k从逻辑行为上描述和设计大规模电子系统的重要保证 。 草鱼 草鱼 .VHDL 具有 丰富的仿真语句和库函数 , 鲤鱼 使得在任何大系统的设计早期 , 鲤鱼 就能检查系统的功能可行性 , 鲤鱼 随时可对系统进行仿真模拟 , 鲤鱼 使设计者对整个工程的结构和功能的可行性做出判断 。 草鱼 草鱼 .用 VHDL 完成一个确定的设计 , 鲤鱼 可以利用 EDA 工具进行逻辑综合和优化
39、, 鲤鱼 并自动把VHDL 描述设计转变成门级网表(根据不同的实现芯片) 。 草鱼 这种方式突破了门级设计的瓶颈 , 鲤鱼 极大地减少了电路设计的时间和可能发生地错误 , 鲤鱼 降低了开发成本 。 草鱼 利用 EDA工具的逻辑优化功能 , 鲤鱼 可以自动地把一个综合后的设计变成一个更小 、 pork更 高速的电路系统 。 草鱼 反过来 , 鲤鱼 设计者还可以容易地从综合和优化的电路中获得设计信息 , 鲤鱼 返回去更新修改 VHDL 设计描述 , 鲤鱼 使之更加完善 。 草鱼 草鱼 .VHDL 对设计的描述具有相对独立性 。 草鱼 设计者可以不懂硬件的结构 , 鲤鱼 也不必顾及最终6 设计的目标
40、器件是什么 , 鲤鱼 而进行独立的设计 。 草鱼 正因为 VHDL 得硬件描述与具体的工艺技术和硬件结构无关 , 鲤鱼 所以 VHDL 设计程序的硬件实现目标器件有广阔的选择范围 。 草鱼 草鱼 .由于 VHDL 具有类属描述语句和子程序调用等功能 , 鲤鱼 对于完成的设计 , 鲤鱼 在不改变源程序的条件下 , 鲤 鱼只需改变类属参量或函数 , 鲤鱼 就能轻而易举地改变设计的规模和结构 。 草鱼 草鱼 .VHDL 本身的生命周期长 。 草鱼 因为 VHDL 得硬件描述与工艺无关 , 鲤鱼 不会因工艺变化而使描述过时 。 草鱼 而与工艺技术有关的参数可通过 VHDL 提供的属性加以描述 , 鲤鱼
41、 当生产工艺改变时 , 鲤鱼 只需要修改相应程序中的属性参数即可 。 草鱼 草鱼 2.5 草鱼 Quartus 草鱼 概述及其设计流程 草鱼 ( 1) 草鱼 Quartus 草鱼 概述 草鱼 Quartus 草鱼 是 Altera 公司的综合性 PLD 开发软件 , 鲤鱼 支持原理图 、 por kVHDL、 por kVerilogHDL以及 AHDL( Altera 草鱼 Hardware 草鱼 Description 草鱼 Language)等多种设计输入形式 , 鲤鱼 内嵌自有的综合器以及仿真器 , 鲤鱼 可以完成从设计输入到硬件配置的完整 PLD 设计流程 。 草鱼 Quartus
42、草鱼 可以在 XP、 por kLinux 以及 Unix 上使用 , 鲤鱼 除了可以使用 Tcl 脚本完成设计流程外 , 鲤鱼 提供了完善的用户图形界面设计方式 。 草鱼 具有运行速度快 , 鲤鱼 界面统一 ,鲤鱼 功能集中 , 鲤鱼 易学易用等特点 。 草鱼 草鱼 Quartus 草鱼 支持 Altera 的 IP 核 , 鲤鱼 包含了 LPM/MegaFunction 宏功能模块库 , 鲤鱼使用户可以充分利用成熟的模块 , 鲤鱼 简化了设计的复杂性 、 por k加快了设计速度 。 草鱼 对第三方 EDA 工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA 工具 。 草
43、鱼 此外 , 鲤鱼 Quartus 草鱼 通过和 DSP 草鱼 Builder 工具与 Matlab/Simulink 相结合 ,鲤鱼 可以方便地实现各种 DSP 应用系统 ; pork支持 Altera 的片上可编程系统( SOPC)开发 , 鲤鱼 集系统级设计 、 pork嵌入式软件开发 、 por k可编程逻辑设计于一体 , 鲤鱼 是一种综合性的开发平台 。 草鱼 Maxplus 草鱼 II 草鱼 作为 Altera 的上一代 PLD 设计软件 , 鲤鱼 由于其出色的易用性而得到了广泛的应用 。 草鱼 目前 Altera 已经停止了对 Maxplus 草鱼 II 草鱼 的更新支持 , 鲤
44、鱼Quartus 草鱼 与之相比不仅仅是支持器件类型的丰富和图形界面的改变 。 草鱼 Altera 在Quartus 草鱼 中包含了许多诸如 SignalTap 草鱼 II、 porkChip 草鱼 Editor 和 RTL 草鱼 Viewer 的设计辅助工具 , 鲤鱼 集成了 SOPC 和 HardCopy 设计流程 , 鲤鱼 并且 继承了 Maxplus 草鱼 II 草鱼 友好的图形界面及简便的使用方法 。 草鱼 草鱼 Altera 草鱼 Quartus 草鱼 作为一种可编程逻辑的设计环境 , 草鱼 由于其强大的设计能力和直观易用的接口 , 鲤鱼 越来越受到数字系统设计者的欢迎 。 草鱼
45、Altera 的 Quartus 草鱼 可编程逻辑软件属于第四代 PLD 开发平台 。 草鱼 该平台支持一个工作组环境下的设计要求 , 鲤鱼其中包括支持基于 Internet 的协作设计 。 草鱼 Quartus 平台与 Cadence、 por kExemplarLogic、pork 草鱼 MentorGraphics、 porkSynopsys 和 Synplicity 等 EDA 供应商的开发工具相兼容 。 草鱼 改进了软件的 LogicLock 模块设计功能 , 鲤鱼 增添 草鱼 了 FastFit 编译选项 , 鲤鱼 推进了网络编辑性能 , 鲤鱼 而且提升了调试能力 。 草鱼 支持
46、MAX7000/MAX3000 等乘积项器件 。 草鱼 草鱼 ( 2) Quartus 草鱼 设计流程 草鱼 .建立新工程 :首先将所设计工程项目划分为若干子模块 , 鲤鱼 将每个子模块单独存放在一个文件夹中 , 鲤鱼 并分别进行编译 , 鲤鱼 验证通过后 , 鲤鱼 将每个子模块的 VHDL 文本文件添加到总工程文件夹中 , 鲤 鱼并建立图元(建立图元 block, 鲤鱼 右键点击 .V 文件 , 鲤鱼 选择 草鱼 create 草鱼 草鱼 symbol 草鱼 files 草鱼 for 草鱼 current 草鱼 files) , 鲤鱼 将各个图元(亦即子模块)连接起来构成总体设计项目 。 草
47、鱼 草鱼 .设计各子模块 :编写各子模块相应的代码 , 鲤鱼 并分别进行编译 , 鲤鱼 验证通过后将各子模块 VHDL 文件添加到顶层设计中 , 鲤鱼 创建图元 , 鲤鱼 进行连接以完成总体项目的设计 。7 草鱼 这部分就是将管脚连好 。 草鱼 在原理图编辑中 , 鲤鱼 英文的大小写代表相同的含义 , 鲤鱼 只要器件连接线的节点名称相同 就会默认为是连接的 , 鲤鱼 总线( Bus)在图形编辑窗口显示的是一条粗线 , 鲤鱼 总线必须在名称的后面加上 a.b, 鲤鱼 表示一条总线内所含有的节点编号 , 鲤鱼 原理图编辑的文件扩展名为 .bdf, 鲤鱼 在 Quartus 草鱼 II 中工程名称必
48、须与顶层实体名称相同 , 鲤鱼 且 VHDL设计中实体名称亦为相同的名字 , 鲤鱼 否则不能进行编译 。草鱼 草鱼 .编译工程 草鱼 .仿真 :波形矢量文件的扩展名为 .vwf, 鲤鱼 仿真分为功能仿真和时序仿真 , 鲤鱼 也称为前仿真和后仿真 , 鲤鱼 功能仿真是忽略延时后的仿真 , 鲤鱼 是最理想的仿真 , 鲤鱼 时序仿真则是加上了一些延时的仿真 , 鲤鱼 是最接近于实际的仿真 , 鲤鱼 在设计中通常先做功能仿真验证逻辑的正确性 , 鲤鱼 后做时序仿真验证时序是否符合要求 , 鲤鱼 需注意默认为时序仿真 , 鲤鱼 在设置功能仿真后需要生成功能仿真网络表 。 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 第三章 草鱼 系统总体设计 草鱼 系统总体设计框图如图 3.1 所示 。 草鱼 此设计由计算部分 、 pork存储部分 、 pork显示部分和输入 部分组成 。 草鱼草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 输入部分 存储部分计算部分显示部分FP G A