FPGA实战手册

821 117 9MB

Chinese Pages [328] Year 2017

Report DMCA / Copyright

DOWNLOAD FILE

Polecaj historie

FPGA实战手册

Citation preview

FPGA 实战手册

+

基 础 实 综 例 合 实 实 例 战 教 程

+

开 发 板

FPGA 实战手册

大西瓜团队倾情打造

目录: 前言...................................................................................................................................... 4 第一章开发板硬件资源 ....................................................................................................... 5 第二章 FPGA 的简介 ........................................................................................................... 7 2.1 可编程逻辑器件的发展史.......................................................................................... 7 2.2 FPGA 概述 ................................................................................................................... 7 2.3 FPGA 运用领域 .......................................................................................................... 9 2.4 FPGA 发展前景 ......................................................................................................... 10 第三章配套软件的安装和使用.......................................................................................... 12 第四章 FPGA 芯片资源的介绍 .......................................................................................... 22 第五章 FPGA 芯片内部硬件介绍 ...................................................................................... 26 第六章 FPGA 的设计流程.................................................................................................. 34 第七章 Verilog 代码规范 I .................................................................................................. 58 第八章数字基础实验 ......................................................................................................... 62 8.1 分频器的设计 ........................................................................................................... 62 8.2 计数器的设计 ........................................................................................................... 69 8.3 D 触发器 ................................................................................................................... 71 8.4 三态门 ...................................................................................................................... 73 8.5 8-3 编码器 ................................................................................................................ 75 8.6 8-3 优先编码器 ......................................................................................................... 76 8.7 3-8 译码器 ................................................................................................................ 80 8.8 移位寄存器............................................................................................................... 82 8.9 多路选择器............................................................................................................... 84 8.10 串行加法器............................................................................................................. 86 8.11 简单运算单元 ALU.................................................................................................. 88 第九章基础实验................................................................................................................. 91 9.1 LED 流水灯................................................................................................................ 91 9.2 PWM 控制灯的亮暗 ................................................................................................. 94 9.3 数码管的动态显示 .................................................................................................. 98

1

FPGA 实战手册

大西瓜团队倾情打造

9.4 秒表数码管显示 ...................................................................................................... 99 9.5 时钟数码管显示 .................................................................................................... 103 9.6 测頻计的设计 ........................................................................................................ 109 9.7 蜂鸣器唱歌............................................................................................................ 115 9.8 按键消抖 ................................................................................................................ 117 9.9 按键计数器............................................................................................................ 122 9.10 串口通信.............................................................................................................. 127 9.11 液晶 1602 显示 .................................................................................................... 133 9.12 DSS 与嵌入式逻辑分析仪的调用 ......................................................................... 140 9.12.1 DDS 的原理 .................................................................................................... 140 9.12.2 ROM 的调用 ................................................................................................... 143 9.12.3 嵌入式逻辑分析仪的使用 ............................................................................ 146 第十章基于 FPGA 的通信系统实验 ................................................................................. 150 10.1、伪随机信号发生器 ............................................................................................ 150 10.2、2ASK 调制 .......................................................................................................... 151 10.3、2FSK 调制 ........................................................................................................... 152 10.4、2PSK 调制.......................................................................................................... 154 10.5、2DPSK 调制 ........................................................................................................ 156 第十一章宏功能模块调用实验........................................................................................ 159 11.1 PLL 的使用 ............................................................................................................ 159 11.2 ROM 的使用.......................................................................................................... 166 11.3 FIFO 的使用 .......................................................................................................... 166 11.4 RAM 的使用 .......................................................................................................... 172 11.5 乘法器的使用 ....................................................................................................... 178 第十二章进阶实验........................................................................................................... 184 12.1 AD_TLC549 采集模拟信号 .................................................................................... 184 12.2 DA_TLC5615 驱动输出 .......................................................................................... 191 12.3 PS2 接口驱动 ........................................................................................................ 198 12.4 IIC 协议 ................................................................................................................. 206 12.5 VGA 显示控制 ....................................................................................................... 224

2

FPGA 实战手册

大西瓜团队倾情打造

12.6 LCD12864 显示字符 .............................................................................................. 232 12.7 LCD12864 显示图片 .............................................................................................. 239 第十三章综合实验........................................................................................................... 249 13.1 基于 DDS 的任意波形发生器 .............................................................................. 249 13.2 基于 PS2 的 LCD1602 的显示................................................................................ 255 13.3 基于 FPGA 的通信信号源的设计 ......................................................................... 267 第十四章 8051 内核的使用 ............................................................................................ 287 14.1 8051 内核介绍 ................................................................................................... 287 14.2、基于 8051 内核的实验—流水灯........................................................................ 291 第十五章基于 FPGA 滤波器设计入门 ............................................................................. 296 15.1 直接型、线性相位型 FIR 滤波器的设计 ............................................................. 296 15.2 分布式 FIR 滤波器的设计.................................................................................... 308 第十六章 NIOSII 手把手入门教学 ................................................................................... 309

3

FPGA 实战手册

大西瓜团队倾情打造

前言 FPGA 是为何物?曾经的我们对 FPGA 的认识一片空白,现在 FPGA 对我们来说也是一片空白,它可以说是一张白纸,任凭你在上 面挥毫泼墨,只要你的想象够丰富,基础够扎实,相信你定会绘出属 于自己的一片蓝图。 为什么定位为《FPGA 实战手册》?回顾我们的学习之路,缺乏 一些连贯的学习资料和系统的学习方法,为了让更多的人走上这一弯 路,我们积累总结了很多例程和资料,通过一个个简单的例子以点带 面,让你逐步掌握 FPGA 的设计,并通过综合实战将理论与 FPGA 的 硬件实现相结合。实战手册不仅仅是实验手册,更是理论与实践相结 合的 FPGA 设计手册,图文并茂,一步步开启你的 FPGA 设计之路。

大西瓜 FPGA 设计团队 2013.06.19 QQ:776231646 邮箱:[email protected] 版本 V.10

2013.06.19

4

FPGA 实战手册

大西瓜团队倾情打造

第一章开发板硬件资源 欢迎进入FPGA的学习殿堂,也祝贺你踏出学习EDA的第一步。 在这里,我们的目标是零基础也能学会EDA技术,让你领略EDA 设计和并行设计的魅力。为此,我们的开发板配套的基础资源有: LED、数码管、蜂鸣器、按键、串口等,进阶实验的资源有:LCD、 IIC-AT24C04、数模转换芯片TLC5615、模数转换芯片TLC549、PS2 接口、VGA接口,同时,采用Cyclone II系列高性价比的FPGA芯 片。为方便外扩,我们将所有IO引出。 为了让你更好的学习,开发板配备了相关的例程和电子书籍、 资料,以及LPM宏功能模块和IP核的调用,让你掌握在FPGA上跑 51核……,熟悉在FPGA上嵌入NiosII软核。相信你在掌握了各个 模块后,就能领略FPGA的设计思想,熟练掌握硬件描述语言的设 计方法和EDA的设计软件。大西瓜FPGA第一代开发板实物图如下 图:

5

FPGA 实战手册

大西瓜团队倾情打造 LCD12864/160 2接口

8位共阳数码 管 5V、3.3V外 接输出

5V电源接口

PS2 LED灯 串口

AS下载接口

JTAG下载接口

FPGA芯片 EP2C5T144 C8N

蜂呜器

VGA接口

DACTLC5615

ADCTLC549

独立按键

各个模块: LED 灯

8 个红色高亮 LED 灯,用户自定义显示

AS 下载接口 EPCS1

FPGA 的 ASP 模式下载接口

IIC-AT24C04

用 IIC 驱动 EPROM

JTAG 下载接口

用于 JTAG 方式下载接口

蜂鸣器 DAC-TLC5615

用户自定义,根据编程可以发出各种声音

ADC-TLC549

4M8 位串行模数转换芯片

独立按键 VGA

根据需要设定按键功能

串口 PS2

用来和 PC 通讯

8 位共阳数码管

用户自定义显示

LCD1602/12864 接口

LCD1602 和 12864 的共用接口

用于 ASP 模式下的程序烧录

14M10 位串行数模转换芯片

用来驱动液晶屏 用来驱动 PS2 接口的鼠标或者键盘等设备

6

FPGA 实战手册

大西瓜团队倾情打造

第二章 FPGA 的简介 2.1 可编程逻辑器件的发展史 起源:可编程逻辑器件(Programmable Logic Device, PLD)起源于 20 世纪 70 年代,是 在专用集成电路(ASIC)的基础上发展起来的以后总新型逻辑器件。 主要特点:完全由用户通过软件进行配置和编程,从而完成某种特定的功能,并且可以 反复擦写。 常见 PLD 产品:可编程只读存储器(PROM)、现场可编程逻辑阵列(FPLA)、可编程阵列逻 辑(PAL)、复杂可编程逻辑器件(CPLD)、和现场可编程门阵列(FPGA)等类型。它们的内 部结构和表现方法各不相同。 可编程逻辑器件的发展史(4 个阶段) 第一阶段:(20 世纪 70 年代初到 70 年代中) 只有简单的 PROM、紫外线可擦除只读存储器(EPROM)和电可擦除只读存储器 (EEPROM)3 种。只能完成简单的数字逻辑功能。 第二阶段:(20 世纪 70 年代中到 80 年代中) 结构上稍微复杂的可编程阵列逻辑(PAL)和通用阵列逻辑(GAL)器件,正式被称为 PLD,能够完成各种逻辑运算功能。 第三阶段:(20 世纪 80 年代中到 90 年代末) Xilinx 和 Altera 公司分别推出了与标准门阵列雷似的 FPGA 以及类似于 PAL 结构的扩展性 CPLD。提高了逻辑运算速度,逻辑单元灵活、集成度高、适用范围宽、 编程灵活。 第四阶段:(20 世纪 90 年代末至今) 出现了可编程片上系统(SOPC)和片上系统(SOC)技术。涵盖了实时化数字信号处理、 高速数据收发器、复杂计算以及嵌入式系统设计技术的全部内容。Xilinx 和 Altera 公 司也推出了相应的 SOC FPGA 产品。

2.2 FPGA 概述 FPGA 是 Field Programmable Gate Array 的缩写,即现场可编程门阵列,它是在 PAL、GAL、CPLD 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC) 领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器 件门电路数有限的缺点。 FPGA 是 Ross Freema 于 1985 年发明的,当时第一个 FPGA 采用 2μm 工艺,包含 64 个逻辑模块和 85000 个晶体管,门数量不超过 1000 个,当时他所创造的 FPGA 被认为 是一项不切实际的技术,他的同事 Bill Carter 曾说:“这种理念需要很多晶体管,但 那时晶体管是非常珍贵的东西。 ”所以人们认为 Ross 的想法过于脱离现实。但是 Ross 预计:根据摩尔定律(每 18 个月晶体管密度翻一翻) ,晶体管肯定会越来越便宜,因此 它必将成为未来不可或缺的技术。在短短的几年时间内,正如 Ross 所预言的,出现了 数十亿美元的现场可编程门阵列(FPGA)市场。但可惜的是,他已经无法享受这一派欣

7

FPGA 实战手册

大西瓜团队倾情打造

欣向荣的景象,Ross Freeman 在 1989 年已经与世长辞了,但是它的发明却持续不断地 促进电子行业的进步与发展。 FPGA 状况 FPGA 市场占有率最高的两大公司 Xilinx 和 Altera。

Xilinx 作为 FPGA 的发明者,XilinxFPGA 主要分为两大类,一种侧重低成本应用, 容量中等,性能可以满足一般的逻辑设计要求,如 Spartan 系列;还有一种侧重于高性 能应用,容量大,性能能满足各类高端应用,如 Virtex 系列,用户可以根据自己实际 应用要求进行选择。在性能可以满足的情况下,优先选择低成本器件。 Xilinx 官网:http://china.xilinx.com/

Altera 的主流 FPGA 分为两大类,一种侧重低成本应用,容量中等,性能可以满足 一般的逻辑设计要求,如 Cyclone,CycloneII;还有一种侧重于高性能应用,容量大, 性能能满足各类高端应用,如 Startix,StratixII 等,用户可以根据自己实际应用要求进 行选择。在性能可以满足的情况下,优先选择低成本器件。 Altera 官网:http://www.altera.com.cn Cyclone(飓风):Altera 中等规模 FPGA,2003 年推出,0.13um 工艺,1.5v 内核供 电,与 Stratix 结构类似,是一种低成本 FPGA 系列,是目前主流产品,其配置芯片也改 用全新的产品。 简评:Altera 最成功的器件之一,性价比不错,是一种适合中低端应用的通用 FPGA, 推荐使用。 CycloneII:Cyclone 的下一代产品,2005 年开始推出,90nm 工艺,1.2v 内核供电, 属于低成本 FPGA,性能和 Cyclone 相当,提供了硬件乘法器单元 简评:刚刚推出的新一代低成本 FPGA,目前市场零售还不容易买到,估计从 2005 年年底开始,将逐步取代 Cyclone 器件,成为 Altera 在中低 FPGA 市场中的主力产品。 Stratix:altera 大规模高端 FPGA,2002 年中期推出,0.13um 工艺,1.5v 内核供电。

8

FPGA 实战手册

大西瓜团队倾情打造

集成硬件乘加器,芯片内部结构比 Altera 以前的产品有很大变化。 简评:Startix 芯片在 2002 年的推出,改变了 Altera 在 FPGA 市场上的被动局面。 该芯片适合高端应用。随着 2005 年新一代 StratixII 器件的推出,将被 StratixII 逐渐取代。 StratixII: Stratix 的下一代产品,2004 年中期推出,90nm 工艺,1.2v 内核供电,大 容量高性能 FPGA。 简评:性能超越 Stratix,是未来几年中,Altera 在高端 FPGA 市场中的主力产品。 StrtratixV 为 altera 目前的高端产品,采用 28-nm 工艺,提供了 28G 的收发器件,适合 高端的 FPGA 产品开发。

2.3 FPGA 运用领域 汽车电子 在发现可编程逻辑器件(PLD)非常有利于系统供应商和汽车生产商 (原始设 备生产商) 获得成功之后,汽车行业开始大量采用这些器件。PLD 的质量是同类最佳 的,成本结构适合大批量消费类应用,系统性能也在不断提高,因此,和其他半导体产 品相比,PLD 能够更迅速地进入汽车市场领域。与 ASSP 和微控制器解决方案不同,PLD 的灵活性和产品迅速面市特性越来越成为汽车行业的关键需求。PLD 已经在信息娱乐和 通信市场上得到了广泛应用,新兴的汽车辅助驾驶设计也采用了 PLD。在这一领域中, 某些应用发展非常迅速,包括道路偏离报警、夜视和胎压监控系统等。PLD 具有较低的 芯片成本结构、丰富的知识产权(IP)内核、参考设计以及较长的产品在市时间,是汽 车电子市场发展的理想选择。 消费电子 发展迅速的消费类电子市场各式新产品层出不穷,让人耳目一新,例如平面显示 器、便携式媒体播放器以及家庭联网产品等。这些产品的功能不断丰富,每年都有很大 的改进。对采用最新技术的消费类电子生产商而言,如此迅速地发展给他们在时间带来 了很大的竞争压力。 计算机与存储 计算机存储发展迅速。在传统的 IT 应用中,服务器和存储器直接互联,而现在已 经进展为联网存储体系结构,即存储区域网(SAN) 。SAN 很容易实现存储扩展,以前受 内部存储能力限制的服务器可以在现有条件以外扩容。除了容易扩展存储之外,服务器 也发展到能够迅速高效地实现数据处理。 创新的存储和服务器技术需要灵活的平台来迅速实现各种解决方案,而大批量应用市场 更需要低成本方案。在计算机和存储设备中使用 Altera 的低成本可编程逻辑和结构化 ASIC 可以保证无风险地快速提高产量。在这些存储网络的推动下,流量和数据处理的 迅猛增长导致迫切需要高性能芯片和接口技术 Stratix III FPGA 在体系结构上突出了 丰富的存储器和串行接口,非常适合高端存储应用。 军事与航空航天 军事商用(COTS)计划的前提是军事项目能够采用商用元件、电路板和系统,充分 发挥新技术和规模经济的优势。虽然 COTS 获得了一定的成功,但是还需要进行改进。 商用供应商必须能够更好地满足军事和航空航天市场的需求 医疗 大部分医疗产品都采用了某种类型的半导体器件。实际上,半导体器件在这些产品 中的应用越来越广泛。可编程逻辑器件(PLD)的普及率要远远高于其他类型的半导体

9

FPGA 实战手册

大西瓜团队倾情打造

器件。在医疗设备开发中,PLD 是功能强大而且切实可行的 ASIC 和 ASSP 替代方案。在 设计过程中,根据需要对 PLD 重新编程,避免了前端流片(NRE)成本,减少了与 ASIC 相关的订量,降低了芯片多次试制的巨大风险。 和 ASSP 相比,PLD 在设计上非常灵活,可实现电路板级集成,从而使产品在众多 的竞争医疗设备生产商中脱颖而出。此外,随着标准的发展或者当需求出现变化时,还 可以在现场更新 PLD。而且,设计人员能够反复使用公共硬件平台,在一个基本设计基 础上,建立不同的系统,支持各种功能,从而大大降低了生成成本。不论是设计 CT 还 是病人监控设备,可编程逻辑器件都能够成功实现系统设计,非常灵活,没有风险—— 和其他医疗设备生产商相比,不但性价比高,而且更能突出产品增值优势。 无线通信 近十年来互联网的爆炸性增长导致对大众化高速互联网接入技术的需求越来越大。 无线互联网接入技术在家庭和办公室之外提供网络接入,满足了这种不断增长的需求。 目前有很多无线应用方案,能够满足各种不同宽带无线接入技术具有很大的市场潜力, 使得微波接入全球互通(WiMAX) 技术越来越流行。WiMAX 802.16e-2005 支持城域网(MAN) 范围内的移动高速互联网接入,使用正交频分复用接入(OFDMA)和多输入多输出(MIMO) 技术等高级信号处理方案。WiMAX 802.16e-2005 作为一种固定无线技术,将在新网络 实施以及新兴市场上扮演重要角色。随着半导体技术和信号处理技术的进步,无线标准 和系统本身也在不断发展。这就需要一个可以提供较宽处理带宽,具有产品及时面市优 势的灵活硬件平台来满足这些需求。 工业 灵活、可靠,并且能够在同一平台上支持多种标准,Altera FPGA 帮助您在工业自 动化和过程控制产品中开发适应性强而且不会过时的设计方法。从可编程逻辑控制器 (PLC)到运动/电机控制器、I/O 模块、人机接口(HMI)/操作面板和智能驱动器,在 开发过程中甚至在现场,您都可以对产品重新进行配置。而且,您还降低了总成本,进 一步提高了效能。Altera 器件在工业温度范围内完全能够正常工作,极冷或者极热都 不会影响性能,您还可以将知识产权(IP)/解决方案移植到未来的产品系列中。

2.4 FPGA 发展前景 据市场调研公司 Gartner Dataquest 预测,2010 年 FPGA 和其它可编程逻辑器件(PLD) 市将从 2005 年的 32 亿美元增长到 67 亿美元,未来还将有不断增长的趋势。 FPGA 及 PLD 产业发展的最大机遇是替代 ASIC 和专用标准产品(ASSP),由 ASIC 和 ASSP 构成的数字逻辑 市场规模大约为 350 亿美元。 由于用户可以迅速地对 PLD 进行编程, 按照需求实现特殊功能, 与 ASIC 和 ASSP 相比,PLD 在灵活性、开发成本、产品快速上市方面更具优势,所以未来 FPGA 将会是一个非常有前景的行业。 由于 FPGA 结构的特殊性,可以重复编程,开发周期较短,越来越受到人们的青睐,它 的特点也更接近 ASIC,ASIC 比 FPGA 最大的优势是低成本,但是 FPGA 的价格现在也越来越 低,例如,Actel 的 Nano 系列更是打破了 FPGA 的价格屏障,提供超过 50 种低于 1 美金的 FPGA,在一定程度上已经可以与 ASIC 相抗衡。 根据当前发展的趋势,未来的 FPGA 势必将会取代大部分 ASIC 的市场,虽然根据摩尔定 律(Moore’s Law):每 18 至 24 个月能在相同的单位面积内多集成一倍的晶体管数目,也就 意味着每 18 至 24 个月后芯片成本将减半,但这只是指裸晶(Die)的成本,并不表示整个芯 片的成本减半,这是由于晶圆制造前端的掩膜(Mask)成本、晶圆制造后端的封装(也称为:

10

FPGA 实战手册

大西瓜团队倾情打造

构装、包装)成本、人力成本等都不会随摩尔定律而变化,反而芯片的成本有上升的趋势, 所以过去许多中、小用量的芯片无法用先进的工艺来生产,对此不是持续使用旧工艺来制造, 或是必须改用 FPGA 芯片来生产„„ 未来的趋势告诉我们,FPGA 将成为 21 世纪最重要的高科技产业之一,特别是国内的 FPGA 市场,更是一个“未完全开垦的处女地”,抓住现在的机遇也就意味着为我们的将来提 供更强大的竞争力。

11

FPGA 实战手册

大西瓜团队倾情打造

第三章配套软件的安装和使用

软件安装 安装流程: 第一步:解压安装文件 执行 90_Quartus_windows.exe 文件,该过程为解压安装文件,因为安装文件 2G 多,所以要 等待几分钟。解压完会弹出下面的窗口:

C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp 这个路径仅仅是一个临时的解压路径,您可以选 择的临时其它目录,待安装完毕后方便删除掉此临时目录,接着点击 Install 进入第二步 第二步:安装程序正在解压文件到临时目录中。

12

FPGA 实战手册

大西瓜团队倾情打造

第三步:解压完成后,出现开始安装向导窗口

第四步:出现 QuartusII 9.0 安装界面

13

FPGA 实战手册

大西瓜团队倾情打造

点击 next 第五步:出现授权窗口点击 I accept the term of the license agreement.后,再点击下一步 next

14

FPGA 实战手册

大西瓜团队倾情打造

第六步:接下来输入用户名和公司名,如用户名为 FPGA Fans,公司名为 Altera,点击下一 步 next

第七步:选择安装目录,可以自由选择安装目录(建议目录名为英文)

15

FPGA 实战手册

大西瓜团队倾情打造

第八步:您可以点击 Browse„按钮来自行选择安装路径。

16

FPGA 实战手册

大西瓜团队倾情打造

选择好后,点击确定,再点击 next 进入下一步的安装。

第九步:默认开始菜单的软件名称,默认为 Altera,点击 next 下一步按钮继续安装

17

FPGA 实战手册

大西瓜团队倾情打造

第十步:安装类型的选择,我们推荐采用完全安装。

点击 next,进入下一步。

18

FPGA 实战手册

大西瓜团队倾情打造

确认安装目录,点击 next 进入下一步。 第十一步:开始安装,此步骤需要的时间最多,请耐心等待。

第十二步:安装完成,提示是否要创建快捷方式图标在桌面上,点“是”

19

FPGA 实战手册

大西瓜团队倾情打造

点击 Finish,完成安装。

破解步骤:

20

FPGA 实战手册

大西瓜团队倾情打造

(1) 用 Quartus_II_9.0 破 解 器 .exe 破 解 C:\altera\90\quartus\bin 下 的 sys_cpt.dll 和 quartus.exe 文件(运行 Quartus_II_9.0 破解器.exe 后,直接点击“应用补丁”,如果出 现“未找到该文件。搜索该文件吗?”,点击“是”, (如果直接把该破解器 Copy 到 C:\altera\90\quartus\bin 下,就不会出现这个对话框,而是直接开始破解!)然后选 中 sys_cpt.dll,点击“打开” 。安装默认的 sys_cpt.dll 路径是在 C:\altera\90\quartus\bin 下) 。 (2) 把 license.dat 用记事本的形式打开,把里面的 XXXXXXXXXXXX 用网卡号替换(在 Quartus II 9.0 的 Tools 菜单下选择 License Setup,下面就有 NIC ID)。 (3) 在 Quartus II 9.0 的 Tools 菜单下选择 License Setup,然后选择 License file,最后点击 OK。 注意:license 文件存放的路径名称不能包含汉字和空格,空格可以用下划线代替。

21

FPGA 实战手册

大西瓜团队倾情打造

第四章 FPGA 芯片资源的介绍 Cyclone II FPGA 系列简介: Altera® Cyclone® II 采用全铜层、低 K 值、1.2 伏 SRAM 工艺设计,裸片尺寸被尽可 能最小的优化。采用 300 毫米晶圆,以 TSMC 成功的 90nm 工艺技术为基础,Cyclone II 器 件提供了 4,608 到 68,416 个逻辑单元(LE) ,并具有一整套最佳的功能,包括嵌入式 18 比 特 x18 比特乘法器、专用外部存储器接口电路、4kbit 嵌入式存储器块、锁相环(PLL)和 高速差分 I/O 能力。 Cyclone II 器件扩展了 FPGA 在成本敏感性、大批量应用领域的影响力,延续了第一代 Cyclone 器件系列的成功。表 1 所示为 Cyclone II FPGA 系列的特性和能力。 :Cyclone II 系列; “5”:逻辑单元 4608 个; “T” :封装类型; “144” : EP2C5T1448N:“2” 管脚数量; “8” :速度等级为 8。 表一:Cyclone II FPGA 简介: 表 1. Cyclone II FPGA 简介 器件

EP2C5

EP2C8

EP2C15

EP2C20

EP2C35

EP2C50

EP2C70

逻辑单元

4,608

8,256

14,448

18,752

33,216

50,528

68,416

36

52

52

105

129

250

M4K RAM 块 26 (4 k 比 特 + 512 校 验 比 特) 总比特数

119,808 165,888 239,616 239,616 483,840 594,432 1,152,000

嵌入式 18x18 13 乘法器

18

26

26

35

86

150

PLLs

2

4

4

4

4

4

最多用户 I/O 158 管脚

182

315

315

475

450

622

差分通道

77

132

132

205

193

262

工业 N/A 汽车电 子

N/A

N/A

2

58

Cyclone II 是(3) "A" 快速接通型 (1)

工业 是(2) 汽车电 子

表 1 注释: 某些器件的快速接通型号具有较短的上电复位 (POR) 时间。这一特性使 FPGA 能够比普通 Cyclone II 器件更迅速地进入工作状态。这些器件在订购码 (例如,EP2C8 A F256I8N) 中 以字母“A”标出; EP2C15 器件只提供 EP2C15A 快速接通型; EP2C5A 器件提供汽车级版本。

22

FPGA 实战手册

大西瓜团队倾情打造

表二: Cyclone II 器件封装和用户 I/O 管脚数: 表 2. Cyclone II 器件封装和最多用户 I/O 管脚 封装尺寸 (mm x mm)

EP2C5 EP2C8 EP2C15 EP2C20 EP2C35 EP2C50 EP2C 70

144-Pin TQFP (1) (22 x 22)

89

85

-

-

-

-

-

208-Pin PQFP(2) (30.6 x 30.6)

142

138

-

-

-

-

-

240-Pin PQFP (32 x 32)(3)

-

-

-

142

-

-

-

256-Pin FineLine BGA(4) 158 (17 x 17)

182

152

152

-

-

-

484-Pin Ultra FineLine BGA (19 x 19)

-

-

-

322

294

-

484-Pin FineLine BGA (23 x 23)

-

-

315

315

322

294

-

672-Pin FineLine BGA (27 x 27)

-

-

-

-

475

450

422

896-Pin FineLine BGA (31 x 31)

-

-

-

-

-

-

622

表二注释: TQFP = 薄四方扁平封装; PQFP = 塑封四方扁平封装; BGA = 球栅阵列封装。 表 3. Cyclone II FPGA 的适用配置器件 配置器件

支持 Cyclone II 器件 EP2C5

EP2C8

EP2C15

EP2C20

EP2C35

EP2C50

EP2C70

EPCS1

X

EPCS4

X

X

X

X

EPCS16

X

X

X

X

X

X

X

EPCS64

X

X

X

X

X

X

X

表三:Cyclone II 器件的适用配置器件: Cyclone II 器件系列特性:

23

FPGA 实战手册

大西瓜团队倾情打造

Altera 的 Cyclone® II FPGA 系列是低成本 90-nm 解决方案,它前所未有地提高了设计灵活 性,实现了高性能系统集成 ( 请参见表四) 。 表 1. Cyclone II 特性一览 特性

说明

成本优化的架构

Cyclone II 器件架构为最低的成本而优化,提供多达 68,416 个逻辑单元(LE),密度超过第一代 Cyclone FPGA 的 3 倍。Cyclone II FPGA 内部的逻辑资源可以用来实 现复杂的应用。

高性能

Cyclone II FPGA 要比竞争低成本 90-nm FPGA 快 60%, 是市场上性能最好的低成本 90-nm FPGA。

低功耗

Cyclone II FPGA 功耗只有竞争低成本 90-nm FPGA 的一 半,大大降低了静态和动态功耗。

工艺技术

Cyclone II FPGA 在 300 毫米晶圆的基础上,采用了 TSMC 领先的 90nm 低电介工艺技术而生产。

嵌入式存储器

Cyclone II FPGA 基于流行的 M4K 存储器块,提供多达 1.1 兆比特的嵌入式存储器,可以支持配置为广泛的操 作模式,包括 RAM、ROM、先入先出(FIFO)缓冲器以及 单端口和双端口模式。

嵌入式乘法器

Cyclone II FPGA 提供最多 150 个 18x18 比特乘法器, 是低成本数字信号处理(DSP)应用的理想方案。这些乘 法器可用于实现通用 DSP 功能,如有限冲击响应(FIR) 滤波器、快速傅立叶变换、相关器、编/解码器以及数控 振荡器(NCO) 。

外部存储器接口

Cyclone II 器件提供高级外部存储器接口支持,允许开 发人员集成外部单倍数据速率(SDR)、双倍数据速率 (DDR)、DDR2 SDRAM 器件以及第二代四倍数据速率 (QDRII)SRAM 器件,数据速率最高可达 668 Mbps。

差分 I/O 支持

Cyclone II 器件提供差分信号支持,包括 LVDS、RSDS、 mini-LVDS、LVPECL、SSTL 和 HSTL I/O 标准。LVDS 标准 支持接收端最高 805 Mbps 数据速率,发送端最高 622 Mbps。

单端 I/O 支持

Cyclone II 器件支持各种单端 I/O 标准,如当前系统中 常用的 LVTTL、LVCMOS、SSTL、HSTL、PCI 和 PCI-X 标准。

接口和协议支持

Cyclone II 器件支持串行总线和网络接口(如 PCI 和 PCI-X),快速访问外部存储器件,同时还支持大量通讯 协议,包括以太网协议和通用接口。

时钟管理电路

Cyclone II 器件支持最多达四个可编程锁相环(PLL)

24

FPGA 实战手册

大西瓜团队倾情打造 和最多 16 个全局时钟线,提供强大的时钟管理和频率合 成能力,使系统性能最大化。这些 PLL 提供的高级特性 包括频率合成、可编程占空比、外部时钟输出、可编程 带宽、输入时钟扩频、锁定探测以及支持差分输入输出 时钟信号。

Nios® II 嵌入式处理器

Cyclone II 器件的 Nios II 嵌入式处理器降低了成本, 提高了灵活性,给低成本分立式微处理器提供了一个理 想的替代方案。

片内匹配

Cyclone II FPGA 支持驱动阻抗匹配和片内串行终端匹 配。片内匹配消除了对外部电阻的需求,提高了信号完 整性,简化电路板设计。Cyclone II FPGA 通过外部电 阻还可支持并行匹配和差分匹配。

快速接通能力

Cyclone II FPGA 具有快速接通能力,上电后能够迅速 工作,是汽车等需要快速启动的应用的理想选择。在器 件订购码中以“ A ”表示具有较短上电复位 (POR) 时 间的 Cyclone II FPGA (EP2C5A、 EP2C8A、 EP2C15A 和 EP2C20A) 。

热插拔及上电顺序

Cyclone II 器件提供强大的片内热插拔以及上电顺序 支持,确保器件正确操作不依赖上电顺序。该特性同时 实现了上电之前和上电过程中对器件和三态 I/O 缓冲的 保护,使 Cyclone II 器件成为多电压系统以及具高可 靠性和冗余需求的应用的理想方案。

循环冗余码(CRC)

Cyclone II 器件具有 32 比特 CRC 自动校验功能。内置 的 CRC 校验电路简化了校验流程,只需在 Quartus II 软 件中单击一下即可。这是 FPGA 中对付单事件干扰(SEU) 问题最有效的解决方案。

Cyclone II 与 Cyclone Cyclone II FPGA 提供比 Cyclone FPGA 更新更先进的特 FPGA 的差别 性。这些特性包括嵌入式乘法器、支持 DDR2 和 QDR II 存储器件的外部存储器接口、片内串行匹配,以及支持 更多的差分和单端 I/O 标准。 串行配置器件

Cyclone II 器件可以采用 Altera 的低成本串行配置器 件进行配置,这种串行配置器件最大可提供 64 兆比特的 Flash 存储器。

25

FPGA 实战手册

大西瓜团队倾情打造

第五章 FPGA 芯片内部硬件介绍 FPGA(Filed programmable gate device):现场可编程逻辑器件 FPGA 基于查找表加触发器的结构,采用 SRAM 工艺,也有采用 flash 或者反熔丝工艺; 主要应用高速、高密度大的数字电路设计。 FPGA 由可编程输入/输出单元、基本可编程逻辑单元、嵌入式块 RAM、丰富的布线资源 、底层嵌入功能单元、内嵌专用的硬核等组成; (时钟/长线/短线) 目前市场上应用比较广泛的 FPGA 芯片主要来自 Altera 与 Xilinx。另外还有其它厂家 的一些低端芯片(Actel、Lattice)。 这里主要介绍 AlteraCyclone II 系列 FPGA 的内部硬件结构: 1. FPGA 器件结构 2. 可编程输入/输出单元 IOE 3. 可编程逻辑单元 LE 4. 嵌入式块 RAM 5. 布线资源 6. 底层嵌入功能单元 1、 FPGA 器件结构 Altera cyclone II 器件结构

FPGA 的内部结构包括: (1) 可编程逻辑门阵列,由最小单元 LE 组成 (2) 可编程输入输出单元 IOE (3) 嵌入式 RAM 块,为 M4K 块,每个的存储量为 4K,掉电丢失 (4) 布线网络 (5) PLL 锁相环,EP2C5T144C8N 最大的倍频至 250MHz,这也是该芯片的最大工作频率 2、 可编程输入/输出单元 IOE 可编程 I/O,可配置成 OC 门、三态门、双向 IO、单端/差分等;支持各种不同的 I/O

26

FPGA 实战手册

大西瓜团队倾情打造

标准:LVTTL、LVCOMS、SSTL、LVDS、HSTL、PCI 等;

Altera 器件 IOE 结构

Altera 器件的输入输出结构:可配置成三态、输入/输出、双向 IO Altera 器件中 cyclone 系列中的 IOE 结构是基本的输入、输出、使能的触发器结构。

27

FPGA 实战手册

大西瓜团队倾情打造

3、 可编程逻辑单元 LE 基本可编程逻辑单元 LE 由查找表(Look up table)触发器(FF)组成,而 LE 是组成 LAB 的最 小单元; LUT 一般是 4 输入查找表,高端器件(xilinx v5)采用 LUT-6 结构;LUT 可看成 4 位地址 线的 16x1 的 RAM 结构。 FF 是可编程的触发器,可配置成同步/异步复位、同步/异步置位、使能、装载等功能触 发器。

可编程逻辑块:

Altera:LAB

28

FPGA 实战手册

大西瓜团队倾情打造

Xilinx:CLB Xilinx CLB 由四个 SLICE 构成;而 Altera 的 LAB 由 16 个/8 个 LE 构成; 基本逻辑单元 LE/SLICE:

Altera:LE

29

FPGA 实战手册

大西瓜团队倾情打造

Xilinx:SLICE xilinx 为 SLICE:包括两个 LUT-4/两个 FF; altera 为 LE:包括一个 LUT-4/一个 FF; 4、 嵌入式块 RAM 嵌入式块 RAM 可配置单/双端口 RAM、伪双端口 RAM、ROM、FIFO、SHIFT、CAM 等;不同 厂家的块 RAM 大小不一样: Altera:M512、M4K M4K、M-RAM(512K); Xilinx:18kbit; Lattic:9kbit; Altera:M4K:

30

FPGA 实战手册

大西瓜团队倾情打造

5、 布线资源 全局布线资源:用于全局时钟/全局复位/全局置位布线; 长线资源:用于 BANK 或者嵌入式功能单元的高速信号或者第二全局时钟的布线; 短线资源:用于其中逻辑单元间的逻辑互联与布线; 全局布线资源:

全局时钟树:

31

FPGA 实战手册

大西瓜团队倾情打造

6、 底层嵌入式功能块 主要是指 PLL/DPLL、DCM、DSP48、乘法器、嵌入式硬核/软核; Xilinx:DCM、DSP48/48E、DPLL、Multiplier 等 Altera:PLL/EPLL/FPLL、DSPcore 等;

Multiplier 结构 PLL/DCM:嵌入式锁相环

32

FPGA 实战手册

大西瓜团队倾情打造

Altera:PLL

Xilinx:DCM Altera 的 Cyclone II 器件最多有四个 PLL,分布在芯片四个角;需要主要的是 Altera 的 PLL 是 模拟锁相环,在电源/地方面要做考虑。 Xilinx 的 spatan-3 器件最多有四个 DCM,也是分布在芯片四个角。 两者的区别:Altera 的 PLL 可支持较低的输入频率,可 Xilinx 的 DCM 支持的最低锁相频率为 24/32MHz;但 Xilinx 的高端器件 Virtex-5 的 DPLL 可达到很低的输入频率。 内嵌专用硬核 指高速串行收发器;GMAC、SERDES、PCIe 等; Xilinx:GMAC、SERDES、PCI、GTX、GRX Atera:GMAC、SERDES、PCIe、SPI.4/SFI.5

33

FPGA 实战手册

大西瓜团队倾情打造

第六章 FPGA 的设计流程

1.

设计的输入 创建工程 可通过创建工程向导创建一个的工程

设置工程文件夹及工程名添加已存在文件(可选)

34

FPGA 实战手册

选择器件

大西瓜团队倾情打造

选择设定第三方工具

显示设置信息 图形输入 原理图输入法也称为图形编辑输入法,用 QuartusⅡ原理图输入设计法进行数字系 统设计时,不需要任何硬件描述语言的知识,在具有数字逻辑电路基本知识的基础 上,利用 QuartusⅡ软件提供的 EDA 平台设计数字电路或系统。 图形输入的简要步骤如下: 1.选择【File】--【New】选项,打开新建文件类型选择窗口 2.选择 Block Diagram/Schematic File 打开图形编辑输入窗口 (这里以一个半加器为例子)

35

FPGA 实战手册

大西瓜团队倾情打造

新建图形输入文件 A

B

S

C

0 0 1 1

0 1 0 1

0 1 1 0

0 0 0 1

半加器真值表

半加器的逻辑图

36

FPGA 实战手册

大西瓜团队倾情打造

图形编辑器界面 在图形编辑窗口中任一个位置双击鼠标,或点击图中的“符号工具”按钮,或选择 菜单 Edit 下的 Insert Symbol 命令,弹出下图所示的元件选择窗口:

Symbol 对话框

37

FPGA 实战手册

大西瓜团队倾情打造

元器件的查找

元器件的输入和引脚名的更改 文本输入 Quartus Ⅱ自带文本编辑器,用于程序设计输入。 与图形输入类似,选择 Verilog HDL File 输入方式,即可打开文本编辑器;如下图 所示,在编辑器中完成程序代码的编写。

38

FPGA 实战手册

大西瓜团队倾情打造

新建文本输入文件

文件保存

完成代码输入

NOTES PFGA 开发流程中的设计输入、综合以及仿真步骤也可在第三方工具软件中完成。此 时 QuartusⅡ软件将第三方工 具的输出作为输入文件,继续进行后续流程。 在设计输入完成后,可以通过选择菜单【Processing】-【Start】-【Start Analysis & Elaboration】选项,对输入进行分析,如果存在错误,信息窗口将出现错误信息; 分析完成后,可通过菜单【Tools】-【Netlist viewer】-【RTL Viewer】查看设计对应的 寄存器传输级视图

39

FPGA 实战手册

大西瓜团队倾情打造

RTL 视图 2. 功能仿真 验证设计时序是否符合要求;工具有 modelsim、Activehdl、NC-Verilog/Vhdl、各厂家自 带工具等 1.选择【File】--【New】选项,打开新建文件类型选择窗口 2.选择 Vector Waveform File 打开波形仿真窗口 3.添加仿真测试信号,设置输入信号和仿真参数设置

新建波形仿真文件

添加仿真测试信号

40

FPGA 实战手册

大西瓜团队倾情打造

查找节点

添加节点

设置待编辑的引脚 1

设置待编辑的引脚 2

41

FPGA 实战手册

大西瓜团队倾情打造

设置仿真参数: (1)选择【Edit】--【End Time】选项,出现下面的窗口

设置仿真截止时间 (2)选择【Assignments】--【Setings】选项,出现下面的窗口

(3)点击

进行编译,编译完成后在生成功能仿真网表:【Processing】--【Generate

42

FPGA 实战手册

大西瓜团队倾情打造

Functional Simulation Netlist】选项

(4)点击

3.

进行仿真

综合优化 综合(Synthesis) :综合过程完成对设计文件进行分析,生成门级网表文件。 在 Quartus Ⅱ中完成设计的输入后选择【Processing】-【Start】-【Start Analysis

& Synthesis】可以启动综合过程或者点击



综合过程的输入可以是设计源文件(.v/.vhd/.tdf/.bdf etc.),也可以是第三方综 合工具的输出文件,如 Synplify 综合工具输出的综合结果.edf/.vqm 文件。 综合后形成工程数据库文件,用于后续的布局布线流程。 门级是 RTL 级的更进一步,设计此时已转变以基本逻辑门单位的逻辑网表。 综合设计流程图如下:

43

FPGA 实战手册

4.

大西瓜团队倾情打造

适配 适配过程执行布局布线功能 。适配使用由 Analysis & Synthesis 建立的数据库, 将工程的逻辑和时序要求与器件的可用资源相匹配。它将每个逻辑功能分配给最佳 逻辑单元位置,进行布线和时序分析,并选定相应的互连路径和引脚分配。 适配完成后,通过 Netlist Writer 生成的标准网表文件(.vo) 以及标准延时(.sdo) 文件,用于对设计进行时序仿真(后仿真)。

如果在设计中进行了资源分配, Fitter 试图将这些资源分配与器件上的资源相匹配,努力 满足您已设置的任何其它约束条件,然后试图优化设计中的其余逻辑。如果尚未对设计设置 任何约束条件,Fitter 将自动优化设计。如果适配不成功, Fitter 会终止编译,并给出 错误信息。 使用 Report 窗口或 Report 文件查看适配结果

44

FPGA 实战手册

大西瓜团队倾情打造

5.

约束 建立工程和设计之后,可以使用 Quartus II 软件 Assignment 菜单中的 Settings 对话框、 Assignment Editor 、Pin Planner、Design Partitions 窗口和 Timing Closure 布局图指定初始设 计约束条件,例如,引脚分配、器件选项、逻辑选项和时序约束条件。约束将对后序的综合 与适配过程产生控制与影响

使用【Assignments】菜单下的 Settings 对话框,可以设置一般工程范围的选项以及综合、 适配、仿真和时序分析选项。如: (1)修改工程设置:为工程和修订信息指定和查看当前顶层实体;从工程中添加和删除文 件;指定自定义的用户库;为封装、引脚数量和速度等级指定器件选项;指定移植器件。

45

FPGA 实战手册

大西瓜团队倾情打造

指定 EDA 工具设置: 为设计输入、综合、仿真、时序分析、物理综合以及相关工具选项指 定 EDA 工具。 (2)指定编译过程选项:智能编译选项,在编译过程中保留节点名称,运行 Assembler,以 及渐进式编译或综合,并且保存节点级的网表,导出版本兼容数据库,显示实体名称,使能 或者禁止 OpenCore® Plus 评估功能,还为生成早期时序估算提供选项。 (3)指定时序分析设置:为工程设置默认频率,定义各时钟的设置,延时要求和路径排除 选项以及时序分析报告选项。 (4)指定 PowerPlay Power Analyzer 设置: 输入文件类型、输出文件类型和默认触发速率, 以及结温、散热方案要求、器件特性等工作条件。 Settings 对话框 - Analysis & Synthesis 设置 选择菜单【Assignments】-【Settings】对话框 Category 中的 Analysis & Synthesis settings 选项,则可进行用于 Analysis&Synthesis、HDL 输入、默认设参数 和综合网表优化选项工程范围内的设置

Settings 对话框–Fitter 设置 选择菜单【Assignments】-【Settings】对话框 Category 中的 Fitter Settings 选项,则可进行时 序驱动编译选项、Fitter 等级、工程范围的 Fitter 逻辑选项分配,以及物理综合网表优化等 设置。

46

FPGA 实战手册

大西瓜团队倾情打造

分配编辑器 Assignment Editor

界面用于在 Quartus II 软件中建立、编辑节点和实体级别分配。分

配用于在设计中为逻辑指定各种选项和设置,包括位置、I/O 标准、时序、逻辑选项、参数、 仿真和引脚分配。

引脚分配 引脚分配可以在 Assign Editer 中进行,也可在【Assignments】-【Pin Planner】中实现,如图:

47

FPGA 实战手册

大西瓜团队倾情打造

6. 时序仿真 在功能仿真的基础上,将功能仿真设置为时序仿真

点击

进行编 译,编 译完成后 在生成 功能仿真 网表:【 Processing】 --【 Generate

Functional Simulation Netlist】选项

点击

进行仿真

48

FPGA 实战手册

大西瓜团队倾情打造

从时序仿真的结果可以看出输入与输出的信号都存在一个延迟。 7. 时序分析 Quartus®IITiming Analyzer 可用于分析设计中的所有逻辑,并有助于指导 Fitter 达 到设计中的时序要求。默认情况下,Timing Analyzer 作为完整编译的一部分自动运行,分 析、报告时序信息,例如,建立时间(tSU)、保持时间( tH)、时钟至输出延时和最小时钟至 输出延时(tCO)、引脚至引脚延时和最小引脚至引脚延时(tPD)、最大时钟频率( fMAX),以 及设计的其它时序特性。当提供时序约束或者默认设置有效时,Timing Analyzer 报告迟滞 时间。可以使用 Timing Analyzer 生成的信息分析、调试和验证设计的时序性能。还可以 使用快速时序模型,验证最佳情况(最快速率等级的最小延时)条件下的时序。 选择【Assignments】-【Timing Analysis Settings】命令,弹出 Settings 对话框的 Timing Requirements & Opinions 页,在对话框中,可以对逻辑的静态时序要求做出设定。 选择菜单【Processing】-【Start】-【Start Timing Analyzer】可以单独启动静态时 序分析进程,这一步骤默认包括在全编译进程中。在编译结束后,通过编译报告(Compilation Report)中的 Timing Analyzer 项可以查看设计中的时序是否满足要求

8.

下载调试

49

FPGA 实战手册

大西瓜团队倾情打造

对设计进行验证后,即可对目标器件进行编程和配置,下载设计文件到硬件中进行硬件验证。 QuartusⅡ编程器 Programmer 最常用的编程模式是 JTAG 模式和主动串行编程模式 AS。JTAG 模式主要用在调试阶段,主动串行编程模式用于板级调试无误后将用户程序固化在串行配置 芯片 EPCS 中。 1. JTAG 方式下载  选择 QuartusⅡ主窗口的 Tools 菜单下的 Programmer 命令或点击

图标,进入

器件编程和配置对话框。 如果此对话框中的 Hardware Setup 后为“No Hardware” , 则需要选择编程的硬件。点击 Hardware Setup,进入 Hardware Setup 对话框,下 图所示,在此添加硬件设备。  配置编程硬件后,选择下载模式,在 Mode 中指定的编程模式为 JTAG 模式;  确定编程模式后,单击

添加相应的 counter.sof 编程文件,选中

counter.sof 文件后的 Program/Configure 选项,然后点击

图标下载设计

文件到器件中,Process 进度条中显示编程进度,编程下载完成后就可以进行目 标芯片的硬件验证了。  界面下图所示 下载前先进行管脚设置,将未用到的管脚设置为输入三态; 【Assignments】--【Device】然后出现以下窗口

50

FPGA 实战手册

大西瓜团队倾情打造

下载界面的设置

2、AS 方式下载  选择 QuartusⅡ主窗口 Assignments 菜 Device 命令,进入 Settings 对话框的 Device 页面进行设置,如下图所示。  选择 QuartusⅡ主窗口的 Tools 菜单下的 Programmer 命令或点击图标

,进入器

件编程和配置对话框,添加硬件,选择编程模式为 Active Serial Program;  单击

添加相应的 counter.pof 编程文件,选中文件后的 Program/Configure、

Verify 和 Blank Check 项,单击图标

下载设计文件到器件中,Process 进度

条中显示编程进度。下载完成后程序固化在 EPCS 中,开发板上电后 EPCS 将自动完 成对目标芯片的配置,无须再从计算机上下载程序。

51

FPGA 实战手册

大西瓜团队倾情打造

注意:JTAG 和 AS 接口不能带电拔插,不然很容易烧坏配置芯片!!! 3、JTAG 配置 EPCS

Fileconvert programming Files 需要设置的地方,有如下几个:

52

FPGA 实战手册

大西瓜团队倾情打造

第一步: 设置下载文件的类型 这里要的是后缀为.jic 的文件

第二步: 设置配置芯片的类型: 这里选择为 EPCS1 和开发板的配置芯片相匹配

53

FPGA 实战手册

大西瓜团队倾情打造

第三步: 设置输出 jic 文件的名称,这里默认;

第四步: 输入 sof 文件和设置 FPGA 器件类型:

54

FPGA 实战手册

大西瓜团队倾情打造

选择和开发板的 FPGA 芯片类型相匹配的芯片。

55

FPGA 实战手册

大西瓜团队倾情打造

选择.sof 文件 最后窗口如下:

第五步:

56

FPGA 实战手册

大西瓜团队倾情打造

点击生成 jic 文件 最后一步 进行下载

57

FPGA 实战手册

大西瓜团队倾情打造

第七章 Verilog 代码规范 I 7.1、“规范”这问题 “规范”这个富含专业气息的词汇(个人感觉),其实规范这种东西,就是大家都约定 熟成的东西,一旦你不遵守这个东西,专业人士就会觉得你不够专业,特别是程序开发方面 的问题。 为什么要规范呢?一方面能体现你足够专业,另一方面也是最重要的一方面,代码的规 范性有利于开发交流,让代码的可读性大大增强,也有利于降低代码的出错率。 网上关于 EDA 设计方面的代码规范问题的资料,以前开发的时候都没有养成一个很好的代 码规范,在大的项目工程中,这方面的弊端开始慢慢显现,对后续的修改和维护造成很大的 影响,重新去编写又浪费很多的时间,所以请记住一句话“千里之行始于足下”,不要到走 了很远之后才发现导向错了。

7.2、Verilog 代码有哪些规范? 文件名必须体现出设计模块的功能; 在 verilog 设计中,模块名就是文件名,这是由于软件编译的问题而限制的。所以 设置模块名的时候也决定了文件名。因此,模块名的设定要体现出模块的功能,这 样设定对于大的工程项目设计很有用处,便于查找分析。 2. 时钟信号及低电平有效信号的命名: 时钟信号一般的命名为:clk; 请回忆一下,你所编写的程序中低电平复位信号是如何编写的,目前我所见过的版 本有:reset,rst,reset_n,rst_n;普遍就是这四种。前两种体现出该信号 是高电平有效的,而后两种体现该复位信号是低电平有效的,在设计规范中就是采 用*_n 来表示低电平有效的。所以低电平有效的信号一律采用*_n 表示,增强代码 的可读性。 3. 参数 parameter 和宏定义`define 在定义参数和宏定义时,名字要采用大写进行表示,如下: parameter DATA_WIDTH = 32; `define AHB_TRANS_SEQ 2'b11; 4. 信号、端口、模块、例化 有关这四个方面的代码设计最好采用小写进行设计,如下: 1.

58

FPGA 实战手册

5. 6.

7.

8.

9.

大西瓜团队倾情打造

命名字符的长度 一般字符命名的长度不要超过 32 个; 有关模块调用的实体名的设定,参考如下: mux4 u_mux4_1 (…); mux4 u_mux4_2 (…); 位宽的描述 在 Verilog 的设计中一般采用的为[x:0];在 VHDL 中一般采用的是 x downto 0; 采用的都是从高在左低位在右符合人的阅读顺序的方式。 Begin 和 end、case 和 endcase、if 和 else 的对准问题 这里采用一个实例进行说明:

到这里所说到的都是关于文本输入形式的,那么在原理图输入方式中有没有相关的规范

59

FPGA 实战手册

大西瓜团队倾情打造

问题呢?答案是肯定的! ! !所以经常采用原理图输入的好好注意了!!! 原理图输入方式中,有时会将自己所写的文本生生成一个原理图的模块,然后导入到原 理图的设计中,这时该原理图也被设置为顶层模块,所以有时问题就产生在这里。当有多个 模块导入原理图时,这是就需要将这些模块连接起来,如果在连接的时候用一些分立的逻辑 元件将模块与模块之间连接起来,这就产生了一个所谓“胶合逻辑”的问题,因为该逻辑元 件在综合时是没有加入到任何一个模块里面的,所以就无法进行整体的最优化综合,所以就 无法产生一个最优化的电路,这个逻辑元件将两个模块有缝地连接起来,这样的电路在同步 中又怎么会稳定呢? 所以请记住一点,有文本输入和原理图输入的工程中,原理图作为顶层文件时,原理 图最好是页水平的分层结构,即原理图中的模块都是采用文本输入之后生成的,这样就避免 了“胶合逻辑” ,让综合器更好地综合我们设计的电路。 “胶合逻辑”实例:是否在你的原理图中出现过呢?。。。。。。。。。。。 。。

10. 非阻塞和阻塞问题,这个问题在 FPGA 设计中是老生常谈的问题 下面看看一个实例,相信你就懂了:

从时间上进行分析的话,非阻塞赋值就是同时赋值,而阻塞赋值就是顺序赋值,软件综合时

60

FPGA 实战手册

大西瓜团队倾情打造

也会帮你对电路进行简化。 11. 信号敏感列表 什么是信号敏感列表呢?就是在需要信号输入的模块中,如 always @()--括号内包含 的信号就是敏感信号,也就是说在括号内的信号都将会影响模块的工作或者是模块内某些信 号的输出。 那什么信号是敏感信号呢?凡是影响模块输出和工作状态的信号都将是敏感信号,一 般有:时钟信号、复位信号、置数信号、某些赋值语句的右边信号还有一些条件信号。

12. 复位&初始化 相信你看过的经典代码中,一般都会包含有复位信号 rst_n 吧! 为什么要复位呢? 一个是为了初始化,另一个是在系统工作异常时重新进入初始状态(就像电脑有时死 机重启一样) 。 为什么要初始化呢? 在 FPGA 中经常要用到 reg,不是吗?而且是经常要用到,没有 reg 就没有 FPGA。而 reg 在上电后里面所寄存的是 1 还是 0 是不一定的,这将会造成很大的问题,会造成输出不确定、 会造成状态机进入与确定的状态…………所以就需要在上电的时候,利用复位信号进行初始化, 就 reg 的值进行初始化,使一切都是确定的,防止不确定状态的出现。实例如下:

61

FPGA 实战手册

大西瓜团队倾情打造

第八章数字基础实验 8.1 分频器的设计 一、分频器简介 在数字系统的设计中,分频器是一种应用十分广泛的电路,其功能就是对频率较高的信号 进行分频.本质上,分频电路时加法计数器的”变异”,其计数值有分频叙述决定,器输出不 是一般计数器的技术结果,而是根据分频常数对输出信号的高、低电平进行控制。通常 来说,分频器常用于对数字电路中的时钟信号进行分频,从而得到较低频率的时钟信号、 选通信号、中断信号等。 二、分频系数为 10 的分频器 对于分频系数为 10 的分频器,本例的输入时钟系统 50M 时钟(clk_50M),输出为十分频 时钟(f_50) 。设计方法为,通过设置一个 3 位的计数寄存器(cnt)来实现,每种系统 时钟周期的上升沿计数一次,当计数寄存器数到 4 的时候,将输出分频信号取反即可得 到 10 分频的输出。 本例程的 verilog 程序为: module fengping_2(clk_50M,f_10); input clk_50M; //系统输入时钟,50M,周期 20ns output f_10; //10 分频输出,5M reg f_10; reg[2:0] cnt;

//输出寄存器 //计数寄存器

always@(posedge clk_50M) //每个时钟周期的上升沿触发, //执行 begin_end 中的语句 begin if(cnt==3'b100) //判断 cnt 是否为 4,是的话执行以下程序 begin f_10