fpga3-设计入门

更新时间:2023-09-02 05:48:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

FPGA设计基础设计入门

一、基于FPGA的设计流 程和方法

所谓的 “基于FPGA的设计”---是指 使用FPGA器件作为载体,借助EDA工 具实现有限功能数字系统的技术过程。

实际上就是: 系统功能定义 具体FPGA电路实现 的若干个影射和变换的技术过程。

FPGA设计流程1、系统设计(制定系统规范)---手工完成 2、模块设计---手工完成 3、设计输入---手工完成 4、功能仿真 5、综合、优化 6、布局与布线,生成网表文件 7、时序仿真---借助EDA工具手工完成 8、器件的编成和测试

1、系统设计(制定系统规范)---手工完成定义整个系统完成的功能。平衡各方面的因素, 对整个系统确定大体规划和整体设计方案。 系统规范包含的内容:设计所要实现的功能;设计所采用的基本思想; 整个设计的组织结构; I/O引脚的名称、作用及其测试波形的描述; 采用的PLD器件的型号; 片内各种资源的使用情况; 该设计与其它设计的接口方式等。

2、模块设计阶段---手工完成依据《系统规范》采用Top—Down的设 计方法,逐步细化将系统划分为若干个相 对完整,功能相对独立的功能模块。确定 模块之间的逻辑关系和层次关系以及模块 间接口约定;确定各个子单元的设计思路; 确定各个子单元之间的接口关系; 关键节 点的位置、作用及其测试的描述;

3、设计输入---手工完成 原理图输入– 使用元件符号和连线等描述 – 比较直观,但设计大规模的数字系统时则显 得繁琐

HDL语言输入– 逻辑描述功能强 – 成为国际标准,便于移植

4、功能仿真---借助EDA工具 不考虑信号传输和器件的延时,仿 真系统逻辑功能是否符合系统规范。 5、综合、优化---借助EDA工具自动完成(综合器)

– 优化:将逻辑化简,去除冗余项,减少设 计所耗用的资源。– 综合:将模块化层次化设计的多个文件合 并为一个网表,使设计层次平面化。对综 合来说满足要求的方案可能多个,综合器 将产生一个最优或接近最优的结果。

6、布局与布线,生成编程文件---借助EDA工具自动完成

– 将已分割的逻辑小块放到器件内部逻辑资 源的具体位置并利用布线资源完成各功能 块之间的连接 – 生成可供器件编程使用的数据文件。

7、时序仿真---借助EDA工具手工完成 考虑信号传输和器件的延时,仿真系统的 时序和逻辑功能是否仍符合系统规范。(不同 器件的内部延时不一样,不同的布局、布线延 时也会有比较大的不同)。 8、器件的编成和测试 在功能仿真与时序仿真正确的前提 下, 将布局布线后形成的位流文件通过下载工具下 载到具体的FPGA芯片中,这个过程也叫FPGA 编程(配

置)

可编程逻辑器件设计流程

目标 FPGA 的选择① FPGA 的资源情况(LE数量、结构特点、嵌 入式硬核); ② FPGA的工作速度、工作温度;

③ I/O管脚的数量和类型 ;④ FPGA器件的编程方式 ;

⑤ FPGA的开发工具支持情况;

二、可编程逻辑设计指导原则当代的可编程逻辑设计日趋复杂,设计的复 杂度和设计频率的要求与5年前都不可同日 而语。良好的设计风格对设计的工作频率、 所消耗的芯片面积、甚至整个系统的稳定性 都非常重要。

模块划分的一般规则:模块划分非常重要,关系到能否最大程度上 发挥项目成员的协同设计能力,更重要的是它直 接决定着设计的综合、实现的耗时和效率。 模块划分多大、如何划分取决于设计人员对 所设计系统的理解和设计经验,没有严格的规则。 工程师常遵循一些基本原则,使用这些规则可以 清晰地划分电路,形成较为合理的电路结构,帮 助形成良好的习惯。我们简单地列举一些模块划 分的原则:

1

分离特殊逻辑和核心逻辑输出 双向 输入

I/O PAD

I/O输 出 使 能 核心逻辑输出 核心逻辑输入

复位模块 I/O模块时钟模块

核心逻辑所用的时钟

核心逻辑

时钟模块存储器模块核心逻辑所用的复位信号

复位模块

好处是:便于利用综合约束属性显化指定 这些单元的结构和所使用的资源,还可以 提高仿真效率。

2

模块之间 无 粘合逻辑

只在层次结构中的最底层模块中包含门电路。模块A组合 逻辑

模块BD Q组合 逻辑

模块AD Q组合 逻辑

模块BD Q组合 逻辑

D Q

粘合逻辑

模块间存在粘合逻辑

模块间存无粘合逻辑

综合器不能将异或门与模块B合并,因此会 限制综合器进行逻辑优化。

3

一个模块内只使用一个时钟如果一个设计中包含了多个时钟,按时钟 管辖的范围划分模块。

4

相邻的组合逻辑放到同一模块组合C 组合B模块 2 模块 3模块 3

D Q

组合A模块 1

D Q

D Q

组合逻辑

D Q

便于综合器优化逻辑设计、复用资源、减少 面积、更利于工具优化某个具体的时序关键 路径。

5

寄存器方式输出每个模块经过D触发器锁存后再输出。亦即 寄存器和输出端口之间不要含有组合逻辑。好处: 便于综合工具权衡所分割的子模块中的组合电路 部分和同步时序电路部分,从而达到更好的优化 效果,这种模块划分符合时序约束的习惯,便于 利用约束属性进行时序约束。

6

时序逻辑使用D触发器,而不是锁存器

7

独立异步逻辑在FPGA的设计中,应尽量避免异步逻辑 设计。若必须使用异步逻辑,应将异步逻辑 放在一个独立的模块中 。

8 将不同优化目标的逻辑分开这种方法的好

处是:对于某个模块综合器只 需要考虑一种优化目标和策略,从而比较容易 达到较好的优化效果。如果同时考虑两种优化 目标,会使综合器陷入相互制约的困境,耗费 巨大的综合优化时间也得不到好的优化效果。 9 使用合适的模块规模,结构层次不宜太深。

使用可综合的编码风格HDL语言: 是“硬件描述语言” ,即Hardware Description Language,而不是“硬件设计语 言”,Hardware Design Language. 因此电路设计必须遵循RTL的模式来编写代 码,而不能随心所欲地只写出符合语法的代 码。 下面就常用的可综合Verilog编写格式做 一简单总结。

本文来源:https://www.bwwdw.com/article/19ai.html

Top