fpga3-设计入门.ppt

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
fpga3-设计入门.ppt

FPGA设计基础 设计入门 一、基于FPGA的设计流程和方法 实际上就是: 系统功能定义 具体FPGA电路实现 的若干个影射和变换的技术过程。 FPGA设计流程 1、系统设计(制定系统规范)---手工完成 2、模块设计---手工完成 3、设计输入---手工完成 4、功能仿真 5、综合、优化 6、布局与布线,生成网表文件 7、时序仿真---借助EDA工具手工完成 8、器件的编成和测试 1、系统设计(制定系统规范)---手工完成 定义整个系统完成的功能。平衡各方面的因素, 对整个系统确定大体规划和整体设计方案。 系统规范包含的内容: 设计所要实现的功能; 设计所采用的基本思想; 整个设计的组织结构; I/O引脚的名称、作用及其测试波形的描述; 采用的PLD器件的型号; 片内各种资源的使用情况; 该设计与其它设计的接口方式等。 依据《系统规范》采用Top—Down的设计方法,逐步细化将系统划分为若干个相对完整,功能相对独立的功能模块。确定模块之间的逻辑关系和层次关系以及模块间接口约定;确定各个子单元的设计思路;确定各个子单元之间的接口关系; 关键节点的位置、作用及其测试的描述; 3、设计输入---手工完成 原理图输入 使用元件符号和连线等描述 比较直观,但设计大规模的数字系统时则显得繁琐 HDL语言输入 逻辑描述功能强 成为国际标准,便于移植 4、功能仿真---借助EDA工具 不考虑信号传输和器件的延时,仿真系统逻辑功能是否符合系统规范。 5、综合、优化---借助EDA工具自动完成(综合器) 优化:将逻辑化简,去除冗余项,减少设计所耗用的资源。 综合:将模块化层次化设计的多个文件合并为一个网表,使设计层次平面化。对综合来说满足要求的方案可能多个,综合器将产生一个最优或接近最优的结果。 6、布局与布线,生成编程文件---借助EDA工具自动完成 将已分割的逻辑小块放到器件内部逻辑资源的具体位置并利用布线资源完成各功能块之间的连接 生成可供器件编程使用的数据文件。 7、时序仿真---借助EDA工具手工完成 考虑信号传输和器件的延时,仿真系统的时序和逻辑功能是否仍符合系统规范。(不同器件的内部延时不一样,不同的布局、布线延时也会有比较大的不同)。 8、器件的编成和测试 在功能仿真与时序仿真正确的前提 下,将布局布线后形成的位流文件通过下载工具下载到具体的FPGA芯片中,这个过程也叫FPGA编程(配置) 二、可编程逻辑设计指导原则 模块划分的一般规则: 8 将不同优化目标的逻辑分开 这种方法的好处是:对于某个模块综合器只需要考虑一种优化目标和策略,从而比较容易达到较好的优化效果。如果同时考虑两种优化目标,会使综合器陷入相互制约的困境,耗费巨大的综合优化时间也得不到好的优化效果。 9 使用合适的模块规模,结构层次不宜太深。 可综合代码的编码风格 例2、可以利用多个 “1位全加器” 构成多位的二进制加法器,即所谓的 “行波加法器” 。 3、组合电路设计中应注意的问题 避免组合逻辑反馈环路(不能产生组合环) 组合逻辑反馈回路是PLD设计的大忌,它最容易引起整个系统的不稳定和不可靠。 原因: 组合反馈回路的逻辑功能完全依赖于其反馈回路上组合逻辑的门延时和布线延时,如果这些传播延时有任何改变,则该组合反馈单元的整体逻辑功能将彻底改变,而且改变后的逻辑功能很难确定。 组合反馈环的时序分析是无穷循环的时序计算,综合、实现等EDA工具迫不得已一般必须主动切断其时序路径,以完成相关的时序计算,而不同的EDA工具对组合反馈环的处理方法各不相同,所以组合反馈环的实现结果有很多不确定性。 避免设计中无意间产生锁存器 (case 语句有 default,if 语句 else 末分支) 4、时序电路的设计 module case1(a, b, c, d, sel, z); input a, b, c, d; input [1:0] sel; output z; reg z; always @(a or b or c or d or sel) begin casex (sel) 2’b00: z = d;

文档评论(0)

资料 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档