基于FPGA的任意小数分频器说明书.doc

上传人:h**** 文档编号:126913 上传时间:2018-07-09 格式:DOC 页数:61 大小:926.50KB
下载 相关 举报
基于FPGA的任意小数分频器说明书.doc_第1页
第1页 / 共61页
基于FPGA的任意小数分频器说明书.doc_第2页
第2页 / 共61页
基于FPGA的任意小数分频器说明书.doc_第3页
第3页 / 共61页
基于FPGA的任意小数分频器说明书.doc_第4页
第4页 / 共61页
基于FPGA的任意小数分频器说明书.doc_第5页
第5页 / 共61页
点击查看更多>>
资源描述

1、成都电子机械高等专科学校 电气系毕业设计论文 I 基于 FPGA 的任意小数分频器 熊翔 成都电子机械高等专科学校 摘要: 论文分析了双模前置小数分频器的分频原理和电路实现。结合脉冲删除技术,提出了一种适于硬件电路实现的任意小数分频的设计方案,用 Verilog HDL语言编程,在 Quartus II下对此方案进行了仿真。 Abstract: The paper analyzes the principle and circuit of the dual-mode pre-decimal divider. The combination of pulse removal technique,

2、 suitable for the realization of the hardware circuit, any fractional frequency design, Verilog HDL language programming, this option in the Quartus II simulation.成都电子机械高等专科学校 电气系毕业设计论文 II 目录 一、 FPGA 的简介 1 1、发展历史 1 2、 FPGA 的特点 2 3、 FPGA 的优点 3 4、 FPGA 与 CPLD 的区别 4 二、 Verilog HDL 的基础语言知识 5 1、 HDL 指南 5

3、 2、 语言 6 3、 数据类型 11 4、 运算符 14 三、 Quartus II 使用简介 16 1、 新建工程 16 2、 程序建立 18 3、 仿真 19 四、 分频器 21 1、 分频器概述 21 2、 分频器分类 22 3、 基于 FPGA 的任意小数分频的实现 22 4、 RTL Viewer 28 五、结束语 28 参考文献 29成都电子机械高等专科学校 电气系毕业设计论文 1 一、 FPGA 简介 当今社会是数字化的社会,是数字 集成电路 广泛应用的社会。数字 集成电路本身在不断地进行更新换代。它由早期的 电子 管、 晶体管 、小中规模集成电路,发展到超大规模集成电路( V

4、LSIC,几万门以上)以及许多具有特定功能的专用集成电路。但是,随着微电子技术的发展,设计与制造集成电路的任 务已不完全由半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路( ASIC)芯片 ,而且希望 ASIC 的设计周期尽可能短,最好是在实验室里就能设计出合适的 ASIC 芯片,并且立即投入实际应用之中,因而出现了现场 可编程逻辑器件( FPLD),其中应用最广泛的当属 现场可编程门阵列 ( FPGA)和复杂可编程逻辑器件( CPLD)。 1 发展历史 早期的可编程逻辑器件只有可编程只读 存储器 ( PROM)、紫外线可擦 除只读存储器 ( EPROM)和电可擦除只读存储器( E

5、2PROM)三种。由于结构的限制,它们只能完成简单的数字逻辑功能。 其后出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件( PLD),它能够完成各种数字逻辑功能。典型的 PLD 由一个 “与 ”门和一个 “或 ”门阵列组成,而任意一个组合逻辑都可以用 “与 或 ”表达式来描述,所以 PLD 能以乘积和的形式完成大量的组合逻辑功能。 这一阶段的产品主要有 PAL(可编程阵列逻辑)和 GAL(通用阵列逻辑)。 PAL 由一个可编程的 “与 ”平面和一个固定的 “或 ”平面构成,或门的输出可以通过 触发器 有选择地被置为寄存状态。 PAL 器件是现场可编程的,它的实现工艺有反熔丝技术、 EPRO

6、M 技术和 E2PROM 技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列( PLA),它也由一个 “与 ”平面和一个 “或 ”平面构成,但是这两个 平面的连接关系是可编程的。 PLA 器件既有现场可编程的,也有掩膜可编程的。在 PAL 的基础上又发展了一种通用阵列逻辑( GAL, Generic ArrayLogic),如 GAL16V8、 GAL22V10等。它采用了E PROM 工艺,实现了电可擦除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用。这些早期的 PLD 器件的一个共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使

7、它们只能实现规模较小的电路。 成都电子机械高等专科学校 电气系毕业设计论文 2 为了弥补这一缺陷, 20世纪 80年代中期, Altera 和 Xilinx 分别推出了类似于 PAL结构的扩展型 CPLD( Complex Programmable Logic Dvice)和与标准门阵列类似的 FPGA( FieldProgrammable Gate Array),它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。这两种器件兼容了 PLD 和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其他 ASIC( Application Specific IC)相比,它们

8、又具有设计开发周期短、设计制造成本低、 开发工具 先进、标准产品不需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产(一般在 10 000件以下)之中。几乎所有应用门阵列、 PLD 和中小规模通用数字集成电路的场合均可应用 FPGA 和 CPLD 器件。 FPGA 是英文 Field Programmable Gate Arry 的缩写,即现场可编程门阵列,它是在 PAL、 GAL、 EPLD 等可 编程器 件的基础上进一步发展的产物。它是作为专用集成电路( ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺

9、点。 2 FPGA 的基本特点 FPGA 采用了逻辑单元阵列( LOA, Logic Cell Arry)这样一个新概念,内部包括可配置逻辑模块( CLB, Configurable Logic Block)、输入 输出模块 ( IOB, Input Output Block)和内部连线( Interconnect)三个部分。 FPGA 的基本特点主要有: ( 1)采用 FPGA 设计 ASIC 电路,用户不需要投片生产就能得到合用的芯片; ( 2) FPGA 可做其他全定制或半定制 ASIC 电路的试样片: ( 3) FPGA 内部有丰富的触发器和 I O 引脚; ( 4) FPGA 是 A

10、SIC 电路中设计周期最短、开发费用最低、风险最小的器件之一; ( 5) FPGA 采用高速 CHMOS工艺,功耗 低,可以与 CMOS、 TTL 电平兼容。 可以说, FPGA 芯片是小批量系统提高系统集成度和可靠性的最佳选择之一。 目前 FPGA 的品种很多,有 XILINX 的 xc 系列、 TI 公司的 TPC 系列、成都电子机械高等专科学校 电气系毕业设计论文 3 ALTERA 公司的 FIEX 系列等。 FPGA 是由存放在片内 RAM 中的程序来 设置其工作状态的。因此,工作 时需要对片内的 RAM 进行编程。用户可以根据不同的配置模式采用不同的编程方式。 加电时, FPGA 芯

11、片将 EPROM 中的数据读入片内编程 RAM 中,配置完成后, FPGA 进入工作状态。掉电后, FPGA 恢复成白片,内部逻辑关系消失。因此, FPGA 能够反复使用。 FPGA 的编程不需专用的 FPGA 编程器,只需用通用的 EPROM、 PROM 编程器即可。当需要修改 FPGA 功能时,只需换一片 EPROM 即可。这样,同一片 FPGA、不同的编程数据,可以产生不同的电路功能。因此, FPGA 的使 用非常灵活。 FPGA 有下面 4种配置模式: ( 1)并行主模式为一片 FPGA 加一片 EPROM 的方式; ( 2)主从模式可以支持一片 PROM 编程多片 FPGA: ( 3

12、)串行模式可以采用串行 PROM 编程 FPGA; ( 4)外设模式可以将 FPGA 作为 微处理器 的外设,由微 处理器 对其编程。 3 FPGA 的优点 FPGA 芯片都是特殊的 ASIC 芯片,除了具有 ASIC 的特点之外,还具有以下 3个优点。 随着超大规模集成电路( VLSI, Very Large Scale IC)工艺的不断提高,单一芯片内部可以容纳上百万个晶体管, FPGA CPLD 芯片的规模也越来越大,其单片逻辑门数已达到上百万门,它 所能实现的功能也越来越强,同时也可以实现系统集成。 FPGA CPLD 芯片在出厂之前都做过百分之百的测试,不需要设计人员承担投片风险和费

13、用,设计人员只需在自己的实验室里就可以通过相关的软硬件环境来完成芯片的最终功能设计。所以, FPGA CPLD 的资金投入小,节省了许多潜在的花费。 用户可以反复地编程、擦除、使用或者在外围电路不动的情况下用不同的软件实现不同的功能。所以,用 FPGAiCPLD 试制样片,能以最快的速度占领市场。 FPGA CPLD 软件包中有各种输入工具和仿真工具及版图设成都电子机械高等专科学校 电气系毕业设计论文 4 计工具和编 程器等全线产品,电路设计人员在很短的时间内就可完成电路的输入、编译、优化、仿真,直至最后芯片的制作。当电路有少量改动时,更能显示出 FPGA CPLD 的优势。电路设计人员使用

14、FPGA CPLD 进行电路设计时,不需要具备专门的 IC(集成电路)深层次的知识, FPGA CPLD软件易学易用,可以使设计人员更能集中精力进行电路设计,快速将产品推向市场 。 4、 FPGA 与 CPLD 的区别 尽管 FPGA 和 CPLD 都是可编程 ASIC 器件,有很多共同特点,但由于CPLD 和 FPGA 结构上的差异,具有各自的特点: CPLD 更适合完 成各种算法和组合逻辑, FPGA 更适合于完成时序逻辑。换句话说, FPGA 更适合于触发器丰富的结构,而 CPLD 更适合于触发器有限而乘积项丰富的结构。 CPLD 的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而

15、 FPGA 的分段式布线结构决定了其延迟的不可预测性。 在编程上 FPGA 比 CPLD 具有更大的灵活性。 CPLD 通过修改具有固定内连电路的逻辑功能来编程, FPGA 主要通过改变内部连线的布线来编程; FPGA 可在逻辑门下编程,而 CPLD 是在逻辑块下编程。 FPGA 的集成度比 CPLD 高,具有更复杂 的布线结构和逻辑 实现。 CPLD 比 FPGA 使用起来更方便。 CPLD 的编程采用 E2PROM 或FASTFLASH 技术,无需外部存储器芯片,使用简单。而 FPGA 的编程信息需存放在外部存储器上,使用方法复杂。 CPLD 的速度比 FPGA 快,并且具有较大的时间可预

16、测性。这是由于 FPGA 是门级编程,并且 CLB 之间采用分布式互联,而 CPLD 是逻辑块级编程,并且其逻辑块之间的互联是集总式的。 在编程方式上, CPLD 主要是基于 E2PROM 或 FLASH 存储器编程,编程次数可达 1万次,优点是系统 断电时编程信息也不丢失。 CPLD 又可分为在编 程器上编程和在系统编程两类。 FPGA 大部分是基于 SRAM 编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM 中。其 优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。 成都电子机械高等专科学校 电气系毕业设计论文 5 CPLD 保密性

17、好, FPGA 保密性差。 一般情况下, CPLD 的功耗要比 FPGA 大,且集成度越高越明显。 随著复杂可编程逻辑器件 (CPLD)密度的提高,数字器件设计人员在进行大型设计时,既灵活又容易,而且产品可以很快进入市常许多设计人员 已经感受到 CPLD 容易使用。时序可预测和速度高等优点,然而,在过去由于受到CPLD 密度的限制,他们只好转向 FPGA 和 ASIC。现在,设计人员可以体会到密度 高达数十万门的 CPLD 所带来的好处。 二、 Verilog HDL 的基础语言知识 1、 HDL 指南 1.1 模块 模块是 Verilog 的基本描述单位,用于描述某个设计的功能或结构及其与其

18、他模块通信的外部端口。一个设计的结构可使用开关级原语、门级原语和用户定义的原语方式描述 ; 设计的数据流行为使用连续赋值语句进行描述 ; 时序行为使用过程结构描述。 一个模块可以在另一个模块中使用。 在模块中,可用下述方式描述一个设计: 1) 数据流方式 ; 2) 行为方式 ; 3) 结构方式 ; 4) 上述描述方式的混合。 1.2 时延 Verilog HDL 模型中的所有时延都根据时间单位定义。 下面是带时 延的连续赋值语句实例。 assign #2 Sum = A B; #2 指 2 个时间单位。 1.3 数据流描述方式 用数据流描述方式对一个设计建模的最基本的机制就是使用连续赋值语句。

19、在连续赋值语句中,某个值被指派 给线网变量。 连续赋值语句的语法为 : assign delay LHS_net = RHS_ expression; 右边表达式使用的操作数无论何时发生变化 , 右边表达式都重新计算 , 并且在指定的时延后变化值被赋予左边表达式的线网变量。时延定义了右边表达式操作数变化与赋值给左边表达式之间的持续时间。如果没有定义时延值 , 缺省时延为 0。 请注意连续赋值语句是如何对电路成都电子机械高等专科学校 电气系毕业设计论文 6 的数据流行为建模的;这种建模方式是隐式而非显式的建模方式。此外 ,连续赋值语句是并发执行的,也就是说各语句的执行顺序与其在描述 中出现的顺序

20、无关。 1.4 行为描述方式 设计的行为功能使用下述过程语句结构描述: 1) initial 语句:此语句只执行一次。 2) always 语句:此语句总是循环执行 , 或者说此语句重复执行。 只有寄存器类型数据能够在这两种语句中被赋值。寄存器类型数据在被赋新值前保持原有值不变。所有的初始化语句和 always 语句在 0时刻并发执行。 在顺序过程中出现的语句是过程赋值模块化的实例。模块化过程赋值在下一条语句执行前完成执行。过程赋值可以有一个可选的时延。 时延可以细分为两种 类型 : 1) 语句间时延 : 这是时延语句执行的时延。 2) 语句内时延 : 这是右边表达式数值计算与左边表达式赋值间

21、的时延。 1.5 结构化描述形式 在 Verilog HDL 中可使用如下方式描述结构 : 1) 内置门原语 (在门级 ); 2) 开关级原语 (在晶体管级 ); 3) 用户定义的原语 (在门级 ); 4) 模块实例 (创建层次结构 )。 1.6 混合设计描述方式 在模块中,结构的和行为的结构可以自由混合。也就是说,模块描述中可以包含实例化的门、 模块实例化语句、连续赋值语句以及 always语句和 initial 语句的混合。它们之间可以相互包含。来自 always 语句和initial 语句(切记只有寄存器类型数据可以在这两种语句中赋值)的值能够驱动门或开关,而来自于门或连续赋值语句(只能

22、驱动线网)的值能够反过来用于触发 always 语句和 initial 语句。 2、语言 2.1 标识符 Verilog HDL 中的标识符 (identifier)可以是任意一组字母、数字、 $符号和 _(下划线 )符号的组合,但标识符的第一个字符必须是字母或者下划线。另外,标识符是区分大小写的 。 成都电子机械高等专科学校 电气系毕业设计论文 7 转义标识符 (escaped identifier )可以在一条标识符中包含任何可打印字符。转义标识符以 (反斜线 )符号开头,以空白结尾(空白可以是一个空格、一个制表字符或换行符)。 Verilog HDL 定义了一系列保留字,叫做关键词,它仅

23、用于某些上下文中另外,转义标识符与关键词并不完全相同。标识符 initial 与标识符initial(这是个关键词)不同。注意这一约定与那些转义标识符不同。 2.2 注释 在 Verilog HDL 中有两种形式的注释。 /*第一种形式 :可以扩展至 多行 */ /第二种形式 :在本行结束。 2.3 格式 Verilog HDL 区分大小写。也就是说大小写不同的标识符是不同的。此外, Verilog HDL 是自由格式的,即结构可以跨越多行编写,也可以在一行内编 写。白空(新行、制表符和空格)没有特殊意义 2.4 系统任务和函数 以 $字符开始的标识符表示系统任务或系统函数。任务提供 了一种封

24、装行为的机制。这种机制可在设计的不同部分被调用。任务可以返回 0 个或多个值。函数除只能返回一个值以外与任务相同。此外,函数在 0 时刻执行,即不允许延迟,而任务可以带有延迟。 $display (“Hi, you have reached LT today“); /* $display 系统任务在新的一行中显示。 */ $time /该系统任务返回当前的模拟时间。 2.5 编译指令 以 (反引号)开始的某 些标识符是编译器指令。在 Verilog 语言编 译时,特定的编译器指令在整个编译过程中有效(编译过程可跨越多个 文件),直到遇到其它的不同编译程序指令。完整的标准编译器指令如 下 : *

25、 define, undef * ifdef, else, endif * default_nettype * include * resetall * timescale 成都电子机械高等专科学校 电气系毕业设计论文 8 * unconnected_drive, nounconnected_drive * celldefine, endcelldefine 2.6 值集合 Verilog HDL 有下列四种基本的值: 1) 0:逻辑 0 或 “假 ” 2) 1:逻辑 1 或 “真 ” 3) x:未知 4) z:高阻 注意这四种值的解释都内置于语言中。如一个为 z 的值总是意味着高阻 抗,一个

26、为 0 的值通常是指逻辑 0。 在门的输入或一个表达式中的为 “z”的值通常解释成 “x”。此外, x 值 和 z 值都是不分大小写的,也就是说,值 0x1z 与值 0X1Z 相同。 Verilog HDL 中的常量是由以上这四类基本值组成的。 Verilog HDL 中有三类常量: 1) 整型 2) 实数型 3) 字符串型 下划线符号( _)可以随意用在整数或实数中,它们就数量本身没有意义。它们能用来提高易读性;唯一的限制是下划线符号不能用作为首 字符 。 2.6.1 整型数 整型数可以按如下两种方式书写: 1) 简单的十进制数格式 2) 基数格式 1) . 简单的十进制格式 这种形式的整数

27、定义为带有一个可选的 “+”(一元)或 “ ”(一元)操作符的数字序列。下面是这种简易十进制形式整数的例子。 32 十进制数 32 15 十进制数 15 这种形式的整数值代表一个有符 号的数。负数可使用两种补码形式表示。因此 32 在 5 位的二进制形式中为 10000,在 6 位二进制形式中为 110001; 15 在 5 位二进制形式中为 10001,在 6 位二进 制形式中为 110001。 2) . 基数表示法 这种形式的整数格式为: size base value size 定义以位计的常量的位长; base为 o 或 O(表示八进制),b 或 B(表示二进制), d 或 D( 表示十进制), h 或 H(表

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。