摘要:
一、背景 数据的跨时钟域处理是FPGA开发过程中的常见问题,存在两种情况 慢时钟向快时钟同步:只需在快时钟域打两拍即可。其RTL如下: 打拍同步的原理:大家在初学FPGA时,经常听过FPGA中对信号打拍可以有效得避免亚稳态,而且一般要打两拍,其数学本质是如果打一拍发生错误得概率是1/1000,那么打 阅读全文
摘要:
一. FIFO介绍 基本概念 FIFO(First In, First Out)是一种常用的数据结构,用于存储和处理数据。它的工作原理与排队的顺序类似,遵循"先进先出"的原则。即,第一个进入FIFO的数据会是第一个被取出的数据。在FPGA设计中,可以使用AM作为FIFO的存储单元,再通过控制逻辑来管 阅读全文
摘要:
一、起因 最近在开发Lattice的一款低功耗FPGA时,遇到了reg初始化复位问题,经过在网上搜寻相关资料整理如下; 二、FPGA中reg的初始化方式 在定义时初始化,例如: reg r_test = 1'b1; 在复位语句中,对reg进行赋值,例如: reg r_test; always@(po 阅读全文
摘要:
一、开发工具: ICEcube2,界面非常原始,只有PLL IP核添加功能,其他IP核貌似只能使用primitive替换。 不支持时序分析、在线仿真等功能。 二、原语使用 全局布线资源 在 iCE40 FPGA 设备中,有 8 个高驱动缓冲器,称为全局缓冲器(Global Buffers,GBUFx 阅读全文
摘要:
一、为什么需要复位? 在FPGA上电时,需要对reg、fifo等器件进行复位,以确保系统处于已知的状态,同时可以通过复位清除系统的错误异常状态。 二、复位的方式 从是否与时钟同步与否可以分为异步复位和同步复位。 点击查看代码 ` // 同步复位方式: always@(posedge sys_clk) 阅读全文
摘要:
一、时序约束的目的 由于实际信号在FPGA内部期间传输时,由于触发器等逻辑期间并非理想期间,因此不可避免地存在传输延时,这种延迟在高速工作频率、高逻辑级数时会造成后级触发器地建立时间和保持时间不满足,造成时序违例。(这也是为什么需要把FPGA设计不能以高级编程语言思想看的原因,设计时,需要做到“心中 阅读全文
摘要:
历史修改信息 版本 更改描述 更改人 批准人 修订日期/生效日期 A01 发布首版 ldy 一、目的 作为我司verilog开发过程中的输入文件,用于统一FPGA开发人员的代码风格。从而在满足功能和性能目标的前提下,能够规范代码和优化电路,增强代码的整洁度、可读性、可修改性、可维护性、可重用性、可移 阅读全文