FPGA设计经验谈 —— 10年FPGA开发经验的工程师肺腑之言 2014年08月08日 14:08    看门狗 关键词: FPGA 作者:friends 从大学时代第一次接触FPGA至今已有10多年的时间.至今记得当初第一次在EDA实验平台上完成数字秒表,抢答器,密码锁等实验时,那个兴奋劲.当时由于没有接触到HDL硬件描述语言,设计都是在MAX+plus II原理图环境下用74系列逻辑器件搭建起来的.后来读研究生,工作陆陆续续也用过Quartus II,Foundation,ISE,Libe…
转自:http://bbs.ednchina.com/BLOG_ARTICLE_198929.HTM 如何在FPGA设计环境中加时序约束    在给FPGA做逻辑综合和布局布线时,需要在工具中设定时序的约束.通常,在FPGA设计工具中都FPGA中包含有4种路径:从输入端口到寄存器,从寄存器到寄存器,从寄存器到输出,从输入到输出的纯组合逻辑. 通常,需要对这几种路径分别进行约束,以便使设计工具能够得到最优化的结果.下面对这几种路径分别进行讨论.从输入端口到寄存器:这种路径的约束是为了让FPGA设计…
随着FPGA设计复杂程度越来越高,芯片内部逻辑分析功能显得越来越重要.硬件层次上的逻辑分析仪价格十分昂贵,而且操作比较复杂.目前,FPGA芯片的两大供应商都为自己的FPGA芯片提供了软件层面上的逻辑分析仪,可以帮助我们在线分析芯片内部逻辑.而且操作简单方便.但是往往因为某些原因,有些信号在综合的时候就会被优化掉,就可能会导致我们的设计失败,当然在为逻辑分析仪添加观察信号的时候也无法找到该信号.从而对设计.调试人员的工作带来一定的不便.下面就分别以Xilinx公司的逻辑分析仪ChipScope和A…
FPGA面积优化 1 对于速度要求不是非常高的情况下,我们能够把流水线设计成迭代的形式,从而反复利用FPGA功能同样的资源. 2 对于控制逻辑小于共享逻辑时,控制逻辑资源能够用来复用,比如FIR滤波器的实现过程中,乘法器是一个共享的资源,我们能够通过控制资源实现状态机,从而复用乘法器,当然这样也牺牲了面积. 3 对于具有类似计数单元的模块,能够採用全局的计数器,以减小面积.比如模块A须要256的循环计数,模块B须要1000的循环计数,那么我们就能够设计一个全局计数器,计数器位数为10,前八位供模…
题记:这个笔记不是特权同学自己整理的,特权同学只是对这个笔记做了一下完善,也忘了是从那DOWNLOAD来的,首先对整理者表示感谢.这些知识点确实都很实用,这些设计思想或者也可以说是经验吧,是很值得每一个有志于FPGA/CPLD方面发展的工程师学习的. 1.硬件设计基本原则 (1).速度与面积平衡和互换原则:一个设计如果时序余量较大,所能跑的频率远高于设计要求,能可以通过模块复用来减少整个设计消耗的芯片面积,这就是用速度优势换面积的节约:反之,如果一个设计的时序要求很高,普通方法达不到设计频率,那…
http://www.fpga.com.cn/advance/skill/speed.htm http://www.fpga.com.cn/advance/skill/design_skill3.htm 时钟是整个电路最重要.最特殊的信号,系统内大部分器件的动作都是在时钟的跳变沿上进行, 这就要求时钟信号时延差要非常小, 否则就可能造成时序逻辑状态出错:因而明确FPGA设计中决定系统时钟的因素,尽量较小时钟的延时对保证设计的稳定性有非常重要的意义. 1.1 建立时间与保持时间 建立时间(Tsu:…
基于ISE 12.4的FPGA设计基本流程 ISE是使用XILINX的FPGA的必备的设计工具,它可以完成FPGA开发的全部流程,包括设计输入.仿真.综合.布局布线.生成BIT文件.配置以及在线调试等,功能非常强大.本文主要通过一个最简单的“点亮LED灯”实例介绍了基于ISE 12.4软件的FPGA设计流程,包括设计输入.仿真.约束.下载等. 0 前言 一套完整的FPGA设计流程包括电路设计输入.功能仿真.设计综合.综合后仿真.设计实现.添加约束.布线后仿真和下载.调试等主要步骤. 图1 FPG…
本文是对实验课上讲解的"面向硬件电路的设计思维"的总结,结合数字逻辑课本,进行提炼和整理. 主要来源是课件与本人整理,部分参考了网络大佬的博客. 本文主要介绍不同于之前软件设计思维的硬件设计思维,从非阻塞赋值.并行.面积速度转换.同步电路设计原则.模块划分设计.if-case对比等方面进行整理. 内容太多,我整理了好几天,在浩如烟海的网络前有点无力,想想是自己的实践不够,有一些问题没有亲身体验:也不能一蹴而就,得久久为功.所以这篇文章就当作一个Verilog学习与FPGA设计的总述性文…
芯航线——普利斯队长精心奉献 课程目标: 1.了解并学会FPGA开发设计的整体流程 2.设计一个二选一选择器并进行功能仿真.时序仿真以及板级验证 实验平台:芯航线FPGA开发板.杜邦线 实验内容: 良好的文件夹设置以及工程管理是一个好的FPGA设计的基础,在学习之初就建立俩良好的习惯,会少走一些弯路.因此我们首先在新建的工程文件夹下面,分别建立如图2-1所示的子文件夹. 图2-1 FPGA工程子文件夹 上图中,prj为工程文件存放目录:rtl为verilog可综合代码存放目录:testbench…
本文讨论的四种常用FPGA/CPLD设计思想与技巧:乒乓操作.串并转换.流水线操作.数据接口同步化,都是FPGA/CPLD逻辑设计的内在规律的体现,合理地采用这些设计思想能在FPGA/CPLD设计工作种取得事半功倍的效果. FPGA/CPLD的设计思想与技巧是一个非常大的话题,由于篇幅所限,本文仅介绍一些常用的设计思想与技巧,包括乒乓球操作.串并转换.流水线操作和数据接口的同步方法.希望本文能引起工程师们的注意,如果能有意识地利用这些原则指导日后的设计工作,将取得事半功倍的效果! 乒乓操作“乒乓…
至芯FPGA培训中心-1天FPGA设计集训(赠送开发板) 开课时间2014年5月3日 课程介绍 FPGA设计初级培训班是针对于FPGA设计技术初学者的课程.课程不仅是对FPGA结构资源和设计流程的描述,更重要的是对FPGA结构资源.设计流程和设计工具的归纳.总结与升华,让学习者能够透过表面现象看到FPGA设计技术的实质,通过FPGA培训初级研修班学习者会更快速进入FPGA设计领域,进而为掌握FPGA高级设计技术打下基础. 课程对象 本FPGA设计培训课程适合于使用FPGA器件进行科研和产品开发的…
FPGA 设计流程,延迟,时间 流程:每个时钟周期可以传输的数据比特. 延迟:从输入到时钟周期的输出数据需要经验. 时间:两个元件之间的最大延迟,最高时钟速度. 1 採用流水线能够提高 流量: 比如计算X^3,迭代结构 流水线: 此时  流量=8/1 时滞=3 时序=乘法器延迟 2 假设要求低时滞则能够去掉寄存器 3 减少时序,提高时钟频率的方法 版权声明:本文博主原创文章,博客,未经同意不得转载.…
原创博客,转载请注明出处:[重新发布,代码开源]FPGA设计千兆以太网MAC(1)——通过MDIO接口配置与检测PHY芯片 - 没落骑士 - 博客园 https://www.cnblogs.com/moluoqishi/p/9118283.html 一.前言 本文设计思想采用明德扬至简设计法.以太网这一高效实用的数据传输方式应用于各个领域,如网络交换设备,高速网络相机等.虽然各FPGA厂商都提供MAC IP核,但大多收费,有时无法破解.不同厂家之间无法移植,而且为了通用性考虑牺牲了效率,因此自己…
(1)异步复位与同步复位的写法 1.异步复位与同步复位的区别? 同步复位:若复位信号在时钟有效边沿到来时刻为有效,则执行一次复位操作. 优点: 1)同步复位是离散的,所以非常有利于仿真器的仿真: 2)同步复位只有在时钟有效边缘到来时才有效,所以可以滤除高于时钟频率的毛刺,提高复位的可靠性: 3)使用同步复位的系统可以被设计成为纯粹的同步时序逻辑,这样会有利于FPGA项目开发流程中的时序约 束和时序分析环节的工作,而且综合出来的FPGA设计的性能以便也会较高. 缺点: 1)必须保证复位信号有效持续…
reference:http://xilinx.eetrend.com/d6-xilinx/blog/2010-05/682.html   随着集成电路设计与制造技术的发展,FPGA芯片的容量越来越大.性能越来越高,用FPGA构建片上系统成为现实,基于FPGA的嵌入式系统与SOPC(System On a Programmable Chip)设计技术将逐渐成为系统设计的主流技术,正获得越来越广泛地研究.Microblaze是Xilinx公司一款针对FPGA器件进行了优化设计的软处理器核,有不错的…
本人参与写的一本书(TimeQuest一章由我所写),希望大家多多支持: 全书配套资料上传各大网盘资料中附送大量源码,你值得拥有--<FPGA设计技巧与案例开发详解-第二版>全套资料包-V3.6.1:[1]微云:http://url.cn/gJvIzW[2]百度云:http://pan.baidu.com/s/1gdQMIJp[3]360云盘:https://yunpan.cn/crgkV48DFcaJc (提取码:4271)…
原文地址:关于FPGA设计16位乘法器的两种算法作者:ChrisChan 部分原代码如下: 用特权的右移算法虽复杂点,但节省不少LEs,如下图: 用左移算法尽管浅显易懂,但因每次都会从最右端移位,会占用更大面积,速度暂不说,如下图:  …
FPGA设计中遇到的奇葩问题之“芯片也要看出身”(一) 昨夜西风凋碧树.独上高楼,望尽天涯路 2000年的时候,做设计基本都是使用Xilinx公司的Virtex和Virtex-E系列芯片.那时候Altera技术实力还比较弱,基于Altera的芯片做设计是要被大家diss的.某天晚上大概十点多了吧,我正如痴如醉的沉浸在编码的快感当中.主管悄无声息的站到了我身后,我从显示器中看到了隐约的影子,转头一看果然是他老人家. 主管神色凝重,眉头紧蹙.我在脑子里迅速回顾了一下自己最近的所作所为,确信没干什么罪…
FPGA使用的越来越广泛,除了可用于设计控制电路以为,数字信号处理电路更是FPGA的强项和难点.个人可以说才刚刚入门FPGA设计,也做过一些数字信号处理方面的电路设计,记录下个人心得体会. (一)善用MATLAB来为设计做充分的准备和验证. 在学习EDA课程的时候,我们往往都是按照要求,直接打开QuartusII,噼里啪啦开始疯狂敲代码,然后仿真——不对——再改再仿真——还不对——再改直到仿真结果正确为止.不错,这的确是人们先入为主的一种方法.但这只是我们学习HDL语言,学习使用开发工具时候比较…
本文篇章将讨论一下的四种常用 FPGA 设计思想与技巧: 乒乓操作. 串并转换. 流水线操作. 数据接口同步化, 都是 FPGA 逻辑设计的内在规律的体现, 合理地采用这些设计思想能在FPGA设计工作种取得事半功倍的效果. FPGA 的设计思想与技巧是一个非常大的话题, 由于篇幅所限, 本文仅介绍一些常用的设计思想与技巧, 包括乒乓操作. 串并转换. 流水线操作和数据接口的同步方法. 希望本文能引起工程师们的注意, 如果能有意识地利用这些原则指导日后的设计工作, 将取得事半功倍的效果! 乒乓操作…
今天学习了FPGA设计流程的视频,我理解要做一个完整的FPGA系统,所要经历的步骤,先将它简单总结如下: 我在对上面的流程图进行解释: 第一:设计定义就是我们这个FPGA系统或者FPGA设计所要实现的具体功能.如设计定义为流水灯还是呼吸灯,这就是设计定义. 第二:设计输入就是我们设计Verilog代码或功能模块. 第三:仿真包括前仿真和后仿真.前仿真就是寄存器仿真也是功能仿真,是在理想状态下的仿真,没有考虑延迟等. 后仿真则是门级仿真或时序仿真,考虑了时间延迟等不理想因素. 第四,板级验证则是在…
很多做过单片机的朋友都知 道,我们在对MCU烧写完程序固件后,那么该程序固件就存储在了该MCU内部.即使MCU断电了再重新上电,程序也能继续运行.这是因为对MCU烧写固件 的实质就是将程序固件写入到MCU的片上程序存储器ROM中,而现代的大部分MCU这个ROM都是FLASH存储器.FLASH存储器能够掉电保持数据, 所以可以实现掉电程序不丢失.Altera或Xilinx的FPGA芯片,使用的是基于SRAM结构的查找表,而SRAM的一大特性就是掉电数据会丢失, 当我们使用JTAG将SRAM配置文件…
[原文地址 点击打开链接] 原创文章,转载请注明:转载自Keegan小钢 并标明原文链接:http://keeganlee.me/post/architecture/20160107 微信订阅号:keeganlee_me 写于2016-01-07 App架构设计经验谈:接口的设计App架构设计经验谈:技术选型App架构设计经验谈:数据层的设计App架构设计经验谈:业务层的设计App架构设计经验谈:展示层的设计 App与服务器的通信接口如何设计得好,需要考虑的地方挺多的,在此根据我的一些经验做一些…
App架构设计经验谈:接口的设计 App与服务器的通信接口如何设计得好,需要考虑的地方挺多的,在此根据我的一些经验做一些总结分享,旨在抛砖引玉. 安全机制的设计 现在,大部分App的接口都采用RESTful架构,RESTFul最重要的一个设计原则就是,客户端与服务器的交互在请求之间是无状态的,也就是说,当涉及到用户状态时,每次请求都要带上身份验证信息.实现上,大部分都采用token的认证方式,一般流程是: 用户用密码登录成功后,服务器返回token给客户端: 客户端将token保存在本地,发起后…
芯航线--普利斯队长精心奉献   实验目的: 1.复习按键的设计 2.用模块化设计的方式实现每次按下按键0,4个LED显示状态以二进制加法格式加1,每次按下按键1,4个LED显示状态以二进制加法格式减1 实验平台:芯航线FPGA核心板 实验原理:         在上一讲中设计并验证了独立按键的消抖,这里基于上一讲的按键消抖模块来实现一个加减法计数器,并以此学习模块化的设计方式.     在设计过程中,相对大一点的工程经常通常不会写在一个设计文件中,通常会针对不同的功能设计出不同的子文件,最后在…
芯航线--普利斯队长精心奉献   实验目的: 1.复习状态机的设计思想并以此为基础实现按键消抖 2.单bit异步信号同步化以及边沿检测 3.在激励文件中学会使用随机数发生函数$random 4.仿真模型的概念 实验平台:芯航线FPGA核心板 实验原理:     按键在电子设计中使用的最多,从复位到控制设置均可以看到其身影.现在按键的功能也种类也越来越多,例如多向按键.自锁按键.薄膜按键等.普通按键其硬件示意图如图9-1所示. 图9-1 按键示意图 芯航线开发板所载的为两脚贴片按键,分别位于开发板…
芯航线--普利斯顿队长精心奉献   实验目的:了解FPGA的IP核相关知识并以计数器IP核为例学会基本IP使用的流程 实验平台:无 实验原理:     IP核(Intellectual Property core),也被称为知识产权核,其分为软核.硬核和固核.软核通常是与工艺无关.具有寄存器传输级硬件描述语言描述的设计代码,可以进行后续设计:硬核是前者通过逻辑综合.布局.布线之后的一系列工艺文件,具有特定的工艺形式.物理实现方式:固核则通常介于上面两者之间,它已经通过功能验证.时序分析等过程,设…
一段时间以来,MathWorks一直主张使用Matlab和Simulink开发工具进行基于模型的设计,因为好的设计技术使您能够在更短的时间内开发更高质量的复杂软件.基于模块的设计采用了数学和可视化的方法,通过整个开发过程中使用的系统级建模(从初始设计到设计分析,仿真,自动代码生成.开发和验证)来开发复杂的控制和信号处理系统.这些模块是由框图,文本程序和其他图形元素组成的可执行规范.基于模型的设计鼓励对比其他设计方法更广泛的设计空间的快速探索,因为您可以在设计周期的早期更快地迭代设计.而且,由于这…
过去,FPGA设计者主要关心时序和面积使用率问题.但随着FPGA不断取代ASSP和ASIC器件,设计者们现正期望能够开发低功耗设计,在设计流程早期就能对功耗进行正确估算,以及管理和对与FPGA相关的各种内部电压及I/O电压排序.电源管理已成为FPGA设计者的一个重要考虑因素,特别是在设计便携式.电池供电的产品时.通过功率监控设计技术能够减少功耗.增强可靠性.降低生产成本,并减少对电源和冷却的要求.设计者可能会面临的与FPGA电源相关的主要问题如下:系统级电源要求是什么?将要消耗多少电流?要求多大…
设计文档 一个完整的软件是由程序. 数据和文档三部分组成的. 在FPGA电路设计中, 撰写完善的设计文档是非常重要的. 对于一个比较复杂的设计来说, 各个子单元的功能各不相同, 实现的方法也不一样,各子单元之间信号时序和逻辑关系也是纷繁复杂的. 因此, 在设计文档中对整个设计进行详细的描述, 可以保证使用者能够在较短时间内理解和掌握整个设计方案, 同时设计人员在对设计进行维护和升级时, 完善的设计文档也是非常有用的. 设计文档的内容 (1) 设计所要实现的功能:(2) 设计所采用的基本思想:(3…