FPGA
文章平均质量分 63
superyan0
目前就职于某芯片公司,擅长IC前端(FPGA)设计验证等,个人积累了大量ip,商业合作可联系我的qq:549335336。
展开
-
FPGA原型验证、硬件加速器(emulater 模拟器)、和aws FPGA公有云区别
FPGA和模拟器使用的场景也有所不同。FPGA原型验证主要是针对于小型设计或者单独的IP,而模拟器则是用来面向更大更复杂的SoC设计。FPGA主要是为软件开发提供平台,而模拟器则是为了硬件和软件协同验证和整个系统的测试。1、硬件加速器资源上硬件加速器要大得多。2、硬件加速器采用的是时钟等比降频,更容易定位问题。硬件加速器具有以下优势更快的平台建立时间更快的编译综合时间(内部可编程逻辑单元连接网络不同于FPGA,使得它在综合布线效率上优于fpga,而且利用率也高于fpga)良好的...原创 2021-06-24 08:54:34 · 4418 阅读 · 0 评论 -
数字电路时钟问题——Jitter与Skew区别
在时序分析当中,有些基础概念还是要认真了解的,时钟抖动(Clock Jitter)和时钟偏移(Clock Skew)经常容易混淆。时序设计中,对于时钟的要求是非常严格的,因此FPGA中也有专用的时钟管脚,对应着专用的时钟区域BUFG BUFH BUFR。但是实际当中信号并没有那么完美,会出现时钟抖动(Clock Jitter)和时钟偏移(Clock Skew)。抖动(jitter),就是指两个时钟周期之间存在的差值,这个误差是在时钟发生器内部产生的,和晶振或者PLL内部电路有关,布线对其没有影响。如原创 2021-03-11 17:05:05 · 1474 阅读 · 0 评论 -
两种异步时钟同步化区别分析
今天面试被问到异步复位同步释放和异步复位打两拍有什么区别,没回答上来,主要忘记了异步复位同步释放的实现方式,回来查了一下资料,觉得复位还是值得写一写的。在FPGA或者数字IC设计中肯定会涉及到同步和异步复位的问题,首先介绍一下同步复位和异步复位。同步复位:顾名思义,同步复位就是指复位信号只有在时钟上升沿到来时,才能有效。否则,无法完成对系统的复位工作。用Verilog描述如下:always @ (posedge clk) beginif (!Rst_n)…end同步复位的优点:有利于仿真器原创 2021-03-04 10:19:38 · 3091 阅读 · 2 评论 -
fpga与asic的区别
1、FPGA——现场可编程门阵列FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。ASIC具有高性能、低功耗的优势,但它们包含的任何算法——除了那些在软件内部处理器内核执行的——其余都是“冻结的”。所以这个时候我们就需要现场可编程门阵列(FPGA)了。早期的FPGA器件的原创 2021-02-25 11:23:06 · 15249 阅读 · 0 评论 -
【时序约束】关于设置FALSE PATH
FALSE PATH就是我们在进行时序分析时,不希望工具进行分析的那些路径。一般不需要工具时序分析的路径指的是异步的路径,异步路径就是指的不同时钟域的路径。在QuartusII的一个培训文档里面解释了什么时候要用到FALSE PATH:从逻辑上考虑,与电路正常工作不相关的那些路径,比如测试逻辑,静态或准静态逻辑。从时序上考虑,我们在综合时不需要分析的那些路径,比如跨越异步时钟域的路径。...原创 2021-02-25 10:57:51 · 5059 阅读 · 1 评论 -
IC前端开发的一点感悟
最近在调数据交叉模块,简单的说就是单个收发端口,每一个端口都可以将数据发送到其他两个端口和当前端口(环回),当多个端口同时向一个端口发送数据的时候,就要涉及到数据间插,也就是说排队,但是不能只发同一个通道的,要间隔发送,使用状态机来做,想的很简单,三个端口三个状态,只要非空就去读,读完就跳到下一个有数据的通道,由于多通道发送到单通道要用到fifo缓存(公司的fifo模块使用的ram是延时两拍出数据),如果使用fifo的empty作为状态机的跳转指示,就要提前一拍结束读使能,不然就读超了,刚好公司的fifo有原创 2020-05-15 09:34:53 · 499 阅读 · 0 评论 -
ultrascale gty transceiver 笔记
Xilinx的高速串行收发器中包括PMA和PCS两个子层,其中PMA子层主要用于串行化和解串,PCS主要包括线路编码和CRC校验编码。PCS(Physical Coding Sublayer) 物理编码子层PCS子层负责8b/10b编码解码和CRC校验,并集成了负责channel绑定和时钟修正的弹性缓冲。8b/10b编码可以避免数据流中出现连0连1的情况,便于时钟的恢复。channel...原创 2019-06-11 08:31:56 · 5181 阅读 · 2 评论 -
ISE关联Notepad++
本文其实不仅限于ISE关联Nopepad++,其他编译器UltraEdit等,也都可以安装如下方式配置。1、ISE下点击菜单Edit -> Preferences -> Editor。2、在Editor选项框里选择Custom。如图3、在Notepad++的图标右键属性->快捷方式4、复制目标中的路径,刚刚打开的ISE Editor Command l...原创 2019-05-29 13:54:20 · 5375 阅读 · 2 评论 -
Quartus关联Notepad++
本文其实不仅限于Quartus关联Nopepad++,其他编译器UltraEdit等,也都可以安装如下方式配置。Quartus下点击菜单Tools -> Options。2、在Preferred Text Editor -> Text Editor选项框里选择Notepad++。如图3、在Notepad++的图标右键属性->快捷方式4、复制目标中的路...原创 2019-05-29 13:53:28 · 5759 阅读 · 0 评论 -
ISE、VIVADO同Modelsim联合仿真
之前介绍了quartus同modelsim的联合仿真,这次介绍ISE/VIVADO和modelsim的联合仿真ISE和VIVADO的配置方法基本一致,这里我就以ISE为例,ISE没有modelsim的集成安装包,所以要先下载一个modelsim,我的环境: Windows 10 64 位, Xilinx ISE Design Suite 14.7(D:\Xilinx\14.7), Model...原创 2019-05-29 13:49:15 · 2225 阅读 · 0 评论 -
Quartus同Modelsim联合仿真
我看到网上很多人在问如何用modelsim仿真,研究了一番如何在modelsim建立工程,如何关联库之后便放弃了,其实我也遇到过这样的问题,还好有大神指导,知道了联合仿真的概念,少走了不少弯路,下面我就向大家介绍一下FPGA开发环境同modelsim的联合仿真。所谓FPGA开发环境其实就是quartus和ise/vivado,quartus 现在已经有了集成安装包,直接安装就好了,ise/vi...原创 2019-05-29 13:47:50 · 24417 阅读 · 4 评论 -
将vivado example 加入自己工程
复杂一点的vivado ip,一般都能够生成一个example project,直接就可以调试和仿真。接下来就是将其收归己用,其实很简单,包括两部分,一部分是自动生成的wrapper代码,另一部分是IP文件。第一部分在imports文件夹中,第二部分在*.src文件夹下source_1文件夹中的ip下,将这两部分拷贝到自己的工程下,添加即可,也可以自己封装一下,方便使用。...原创 2019-06-05 13:41:44 · 2855 阅读 · 0 评论 -
Xilinx KCU116使用记录-Example Designs
开发板所有资料都可以在官网上找到,但需要你注册一个账号。https://china.xilinx.com/support/documentation-navigation/design-hubs/dh0090-kcu116-evaluation-kit-hub0.html有三部分1、Getting Started 有两个手册,Board user guide,所有的开...原创 2018-12-29 09:41:45 · 1751 阅读 · 0 评论 -
verilog generate的使用
之前一直在排斥对generate的使用,认为这种类似于c语言中for的循环语法并不适用于FPGA设计,因为FPGA实际上还是硬件,循环N次,就会映射N个同样的模块到FPGA,也就是多消耗的N倍的资源,为了节约资源多都会选择复用的方式来处理类循环数据。但是殊不知在处理循环数据的时候还是会消耗一定的资源以及逻辑调试的时间成本(同时也可能买下bug),最终可能也节约不了多少资源,而且相比于处理逻辑,...原创 2019-01-24 09:54:01 · 8259 阅读 · 0 评论 -
verilog 连续赋值驱动能力配置
在调试iic(mdio)接口的时候发现时钟和数据管脚默认都是输出低电平,但是实际上我在逻辑中都是分别赋值为高阻态,为什么选通输出后就变低了呢?解释一下公司的测试接口是iic和mdio,由于都是2wire,所以需求是根据协议可以自由切换接口,也就是说同一对接口要兼容两种不同的协议,同时数据线又是inout型,所以选通赋值有些复杂,但是也不难。平台使用的是cyclone IV 器件,所以用sign...原创 2019-03-05 15:55:34 · 1554 阅读 · 0 评论 -
Ultrascale+ GTY transceivers Quad pll
每个Quad 包含两个基于LC的PLL,称为Quad PLL(qpl0和qpl1)。任何一个QPLL都可以由同一个四路中的串行收发器信道共享,但不能由其他四路中的信道共享。当以高于CPLL工作范围的线路速率操作信道时,需要使用QPLL0/1。gtye3/4_common原语封装了gty qpll0/1,并且在使用qpll时必须实例化。当信道运行速度超过16.375 GB/s时,QPLL0必须使...原创 2019-03-27 15:50:32 · 2807 阅读 · 3 评论 -
UltraScale 架构
提供超越一个节点的价值,保持领先一代的技术Xilinx 全新 16 纳米及 20 纳米 UltraScale™ 系列基于首款架构,不仅覆盖从平面到 FinFET 技术乃至更高技术的多个节点,同时还可从单片 IC 扩展至 3D IC。在 20 纳米技术领域,Xilinx 率先推出了首款 ASIC-Class 架构,不仅支持数百 Gb 级的系统性能,在全线路速度下支持智能处理,而且还可扩展至 Tb...原创 2019-04-08 14:07:42 · 3066 阅读 · 0 评论 -
FPGA 串口波特率和时钟周期的换算问题
前面说到了UART,也就是串口发送模块,串口发送模块两个主要组件之一即为波特率时钟生成模块,这里需要计算出系统时钟计数值与波特率之间的关系:FPGA主板频率是50Mhz,T=20ns 9600波特率指的是9600bps,9600bit/s然后周期是1/速率=1/9600 =1.0416666667*10^(-4)=104167ns波特率分频计数值:1041...转载 2019-04-16 15:38:55 · 1572 阅读 · 0 评论 -
UltraScale Architecture GTY Transceivers 学习
Xilinx UltraScale™体系结构是第一个ASIC类All Programmable体系结构,用于通过智能处理实现每秒几百千兆位的系统性能,同时有效地在芯片上路由和处理数据。基于超大规模体系结构的设备通过使用业界领先的技术创新,包括下一代路由、ASIC类时钟、3D-on-3DIC、多处理器SoC(MPSoC)技术和新的功率降低特性,解决了大量高带宽、高利用率的系统需求。这些设备共享许多构...原创 2018-12-26 16:16:59 · 8344 阅读 · 0 评论