前言 经常有朋友会问我,“我这个方案是用A家的FPGA还是X家的FPGA呢?他们的容量够不够呢?他们的容量怎么比较呢?”当然,在大部分时候,我在给客户做设计的时候,直接会用到最高容量的产品,因为我们的产品对成本不敏感.不过,在此还是比较一下两家的产品,简单写写一些自己的想法,供大家参考,如有不对的地方,还请指正! 进入正题 要比较Xilinx和Altera的FPGA,就要清楚两个大厂FPGA的结构,由于各自设计的不同,两家的FPGA结构各不相同,参数也各不相同,但可以统一到LUT(Look-Up…
最近END china上的大神阿昏豆发表了博文 <FPGA研发之道(25)-管脚>,刚好今天拿到了新书<深入理解Altera FPGA应用设计>第一章开篇就讲pin.这里就两者的知识做一个整理.至于cyclone IV器件的I/O特性笔记博文后续会补上. 上一篇Altera FPGA中的pin简介已经对altera FPGA中的pin做了一个简要的全面说明,下面就做一些深入的了解 1,一般来说,DDR的接口信号最好能在一个BANK上约束,如果不能则其控制信号要约束到同一BANK上,…
CLB(包括LUT.加法器.寄存器.MUX(多路选择器)) 时钟网络资源(全局时钟网络,区域时钟网络,IO时钟网络),理解时钟网络的本质和意义 时钟处理单元(PLL,DCM),理解时钟网络资源和时钟处理单元的差异和相关性 BLOCK RAM:用于缓存数据 DSP核 接口资源:对于FPGA而言,IO资源划分成块,形成IO BANK,不同的 bank块,兼容不同的接口标准,如LVTTL3V3,LVDS2V5……这点在FPGA中很重要,表明其可以支持多种电平通信标准. 1.  供电机制 一个FPGA芯…
第一步要看的肯定是pin planner ,这个是黑金四代EP4CE15F17C8的视图 先就是发现他们pin有不同的颜色区域,分别对应不同的bank,应该是有的设计里面要求pin在同一个bank吧(首先这么猜想,后面再验证),再看不同的圈圈三角形代表什么意思 View--> Pin Legend 图中几个棕色背景的pin就是使用过得,鼠标放到pin上就会自动显示 pin name 再后面就是all pin list 窗口 此窗口中可以指定pin位置,电压,电流等一系列信息,每一个bank只有一…
FPGA面积优化 1 对于速度要求不是非常高的情况下,我们能够把流水线设计成迭代的形式,从而反复利用FPGA功能同样的资源. 2 对于控制逻辑小于共享逻辑时,控制逻辑资源能够用来复用,比如FIR滤波器的实现过程中,乘法器是一个共享的资源,我们能够通过控制资源实现状态机,从而复用乘法器,当然这样也牺牲了面积. 3 对于具有类似计数单元的模块,能够採用全局的计数器,以减小面积.比如模块A须要256的循环计数,模块B须要1000的循环计数,那么我们就能够设计一个全局计数器,计数器位数为10,前八位供模…
随着FPGA的广泛应用,所含的资源也越来越丰富,从基本的逻辑单元.DSP资源和RAM块,甚至CPU硬核都能集成在一块芯片中.在做FPGA设计时,如果针对FPGA中资源进行HDL代码编写,对设计的资源利用和时序都有益.下面主要讲解一下如何巧用FPGA中资源: 1. 移位寄存器 FPGA中的移位寄存器使用在前面的博文中有所论述,Xilinx FPGA中的LUT可以作为SRL使用,主要可参考此博文<Xilinx 7系列FPGA使用之CLB探索>,在此想补充论述一下SRL的延时,首先看一下如下代码,实…
1.异步复位 always @ ( posedge sclk or negedge s_rst_n ) if ( !s_rst_n ) d_out <= 1'b0; else d_out <= a; 综合出来的RTL视图如下所示: 从图中可以看到寄存器d_out有一个低电平有效的复位信号s_rst_n端口,即使设计是高电平复位,实际综合后也会把异步复位信号反向后接到这个CLRN端: 2.同步复位 always @ ( posedge sclk ) if ( !s_rst_n ) d_out &…
之前的项目中更多的是有师兄提供经验和帮助,追求的是快速上手,所以不管对于硬件电路设计,还是verilog电路编程,甚至是FPGA内部的资源,都没来得及系统地学习,最近在做算法到电路的实现,正好系统学习,将感悟记于此,如有错误,欢迎指出.讨论. 原创不易,转载请转原文,注明出处,谢谢.   一.关于时钟引脚 FPGA芯片一般有好几组时钟引脚 CLK [0..N] [p,n],我的理解是:首先,时钟必须由外部晶振通过CLK引脚输入到FPGA的时钟网络,至于选用哪一组CLK,主要看FPGA哪个bank…
之前的项目中更多的是有师兄提供经验和帮助,追求的是快速上手,所以不管对于硬件电路设计,还是verilog电路编程,甚至是FPGA内部的资源,都没来得及系统地学习,最近在做算法到电路的实现,正好系统学习,将感悟记于此,如有错误,欢迎指出.讨论. 一.关于时钟引脚 FPGA芯片一般有好几组时钟引脚 CLK [0..N] [p,n],我的理解是:首先,时钟必须由外部晶振通过CLK引脚输入到FPGA的时钟网络,至于选用哪一组CLK,主要看FPGA哪个bank对时钟要求最为苛刻:其次,一般用p端,n端由q…
渐渐地,发现自己已经习惯于发现细节,喜欢打破常规,真的非常喜欢这种feel. 相信很多人在书上或者博文上都有提出“在FPGA中使用for语句是很占用资源的”的观点,特权同学也不例外.那么,这种观点正确吗?我的答案是:对一半,错一半.在某些情况下,使用for循环也许真的挺占用资源的.但我并不想去探讨这种情况.而是谈谈在另外一些情况下使用for语句的好处. 第一个好处:有时使用for循环不但不会浪费多余的资源,而且可以减少代码量,从而提高编码效率:第二个好处是:方便模块的移植.下面举个移位寄存器的简…