FPGA重要设计思想
FPGA重要设计思想
1.速度和面积互换原则。以面积换速度可以实现很高的数据吞吐率,其实串/并转换、就是一种以面积换速度的思想
2.乒乓操作。
3.串/并转换的思想。
高速数据处理的重要技巧之一。这里我来举一个多相滤波器抽取的例子:

抽取之后,两路数据以二分频的速度进行处理即可
4.流水线设计(在fir滤波器中表现很突出,一个时钟输出一个数据)
流水线设计可以从某种程度上提高系统频率。。前提是:设计可以分为若干步骤进行处理,而且整个数据处理的过程是单向的,即没有反馈或者逆运算、前一个步骤的输出是下一个步骤的输入。。。

5.逻辑复制与模块复用。
模块复用在节省逻辑资源方面使用非常广泛(举个例子吧)

对比一下,不多说了,一例胜千言!
至于逻辑复制呢,以后再说,目前还没碰到。把概念先抄上来:逻辑复制是一种通过增加面积来改善时序条件的优化手段,其最重要的应用是调整信号的扇出。换句话说,也就是其扇出非常大,那么为了增加这个信号的驱动能力,就必须插入很多级的Buffer,这样就在一定程度上增加了这个信号的路径延时。这种情况下就可以赋值生成这个信号的逻辑,用多路同频同相的信号驱动后续电路,是平均到每路德扇出变低,这样就不需要插入Buffer就能满足驱动能力增加的需求,从而节约该信号的路径延时。
总之。模块复用节省面积,牺牲速度,而逻辑复制正好相反。。
6.模块化设计
就是自顶向下的设计方法。。不讨论了、很简单有很难得东西。
7.时钟设计技巧
尽量避免使用FPGA内部逻辑产生的时钟,因为它很容易导致功能或时序出现问题。内部组合逻辑产生的时钟容易出现毛刺,影响设计的功能实现;组合逻辑固有的延时也容易导致时序问题。
如果采用内部组合逻辑产生的输出作为时钟信号或者异步复位信号,可能会不可避免的出现毛刺。如果此时信号正处于变换过程,那么它将违反建立时间和保持时间的要求,从而影响后续电路的输出状态,甚至导致整个系统运行失败。
如果要减少毛刺,最好用时钟打一下。。达到同步处理的效果。
对于设计中需要用到的分频时钟,应该尽量使用使能时钟,让分频信号作为使能信号来使用。

Bruce Lone
年4月17日星期日
FPGA重要设计思想的更多相关文章
- FPGA/CPLD设计思想与技巧
本文讨论的四种常用FPGA/CPLD设计思想与技巧:乒乓操作.串并转换.流水线操作.数据接口同步化,都是FPGA/CPLD逻辑设计的内在规律的体现,合理地采用这些设计思想能在FPGA/CPLD设计工作 ...
- FPGA常用设计思想与基本模块划分
常用设计思想与技巧 (1)乒乓操作; (2)串并转换; (3)流水线操作; (4)异步时钟域数据同步.是指如何在两个时钟不同步的数据域之间可靠地进行数据交换的问题.数据时钟域不同步主要有两种情况: ① ...
- FPGA设计思想与技巧(转载)
题记:这个笔记不是特权同学自己整理的,特权同学只是对这个笔记做了一下完善,也忘了是从那DOWNLOAD来的,首先对整理者表示感谢.这些知识点确实都很实用,这些设计思想或者也可以说是经验吧,是很值得每一 ...
- 09A-独立按键消抖实验01——小梅哥FPGA设计思想与验证方法视频教程配套文档
芯航线--普利斯队长精心奉献 实验目的: 1.复习状态机的设计思想并以此为基础实现按键消抖 2.单bit异步信号同步化以及边沿检测 3.在激励文件中学会使用随机数发生函数$random 4.仿真模 ...
- 08-FPGA状态机设计实例——小梅哥FPGA设计思想与验证方法视频教程配套文档
芯航线--普利斯队长精心奉献 实验目的:1.学习状态机的相关概念 2.理解一段式.两段式以及三段式状态机的区别以及优缺点 实验平台:芯航线FPGA核心板 实验原理: 状态机全称是有限状态机(fin ...
- 02-FPGA设计流程介绍——小梅哥FPGA设计思想与验证方法视频教程配套文档
芯航线——普利斯队长精心奉献 课程目标: 1.了解并学会FPGA开发设计的整体流程 2.设计一个二选一选择器并进行功能仿真.时序仿真以及板级验证 实验平台:芯航线FPGA开发板.杜邦线 实验内容: 良 ...
- AI框架精要:设计思想
AI框架精要:设计思想 本文主要介绍飞桨paddle平台的底层设计思想,可以帮助用户理解飞桨paddle框架的运作过程,以便于在实际业务需求中,更好的完成模型代码编写与调试及飞桨paddle框架的二次 ...
- 使用Unity3D的设计思想实现一个简单的C#赛车游戏场景
最近看了看一个C#游戏开发的公开课,在该公开课中使用面向对象思想与Unity3D游戏开发思想结合的方式,对一个简单的赛车游戏场景进行了实现.原本在C#中很方便地就可以完成的一个小场景,使用Unity3 ...
- spring事务管理器设计思想(二)
上文见<spring事务管理器设计思想(一)> 对于第二个问题,涉及到事务的传播级别,定义如下: PROPAGATION_REQUIRED-- 如果当前没有事务,就新建一个事务.这是最常见 ...
随机推荐
- 首次用U盘安装CentOS
安之前看了这篇文章,http://www.osyunwei.com/archives/2307.html,然后就开始了. 首先下载ultraiso,官网下载的,将centos的iso镜像写到u盘上. ...
- iostat 命令
iostat -x 1 10 Linux 2.6.18-92.el5xen 02/03/2009 avg-cpu: %user %nice %system %iowait %steal %idle 1 ...
- 查看apache、linux、kernel、nginx等版本
查看apache版本 /usr/sbin/apachectl -v httpd -v 安装目录,使用apachectl -v 查看mysql版本 mysql –help | grep Distri ...
- Python之路----------ConfigParser模块
Python的ConfigParser 废话不说,拿去用 #coding=utf-8 import configparser ''' 基於Python3.0版本寫的配置文件的創建.增加.刪除.修改等方 ...
- Production环境中iptables常用参数配置
production环境中iptables常用参数配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我相信在实际生产环境中有很多运维的兄弟跟我一样,很少用到iptables的这个 ...
- 1047: 小A的计算器
1047: 小A的计算器 时间限制: 1 Sec 内存限制: 128 MB提交: 124 解决: 105[提交][状态][讨论版] 题目描述 以往的操作系统内部的数据表示都是二进制方式,小A新写了 ...
- JSONObject put,accumulate,element的区别
public Object put (Object key, Object value) 将value映射到key下.如果此JSONObject对象之前存在一个value在这个key下,当前的valu ...
- 2.多线程-GCD
1.基本概念 同步任务:在当前线程按顺序执行,不开启新的线程 异步任务:有开新线程的欲望 串行队列:一个一个执行 并行队列:多个任务同时执行 --------------------------- ...
- SQL Server 2008连接字符串写法大全
一..NET Framework Data Provider for SQL Server 类型:.NET Framework类库使用:System.Data.SqlClient.SqlConnect ...
- .net常见的面试题
1,asp.net中的页生命周期 答:msdn官网已给出标准答案,这里简述一下:页要经历下表概述的8个阶段.除了页生命周期阶段以外,在请求前后还存在应用程序阶段,但是这些阶段并不特定于页. 而这8个阶 ...