- 博客(42)
- 收藏
- 关注
原创 紫光芯片中包含的硬件资源
通用技术原语)是针对本公司器件特征开发的一系列通用模。相关、 IO 相关、时钟相关、配置相关、块的名称,是芯片中的基本单元,代表。相关、其他九个类别,具体分类见下表。本章节对本文描述的 GTP。原语按功能分为了触发器、锁存器、实际拥有的硬件逻辑单元,如。
2025-02-17 16:16:36
117
原创 故障积累—管脚没接
由于某些信号在内部是有接连线的,但是实际没有使用,所以在管脚约束中不分配管脚,同时有的管脚是虽然连线了,但是实际信号没有使用,这样就会导致这些信号在内部跑版本的时候被忽略,反而芯片会自动给那些实际有连线的信号分配管脚,这样可能导致这个信号连接对对岸芯片有问题。我遇到的是正好一个信号被随便连到了连接到了给对端的CPU复位(实际这个复位内部没用,就是定义了一下管脚)的管脚,把对端复位住了。
2025-01-10 10:11:22
91
原创 FPGA随记——时钟时序一些基本知识
将写指针同步到读时钟域再和读指针比较进行FIFO空状态判断时,因为在同步写指针时需要时间,而在这个同步的时间内有可能还会写入新的数据,因此同步后的写指针一定是小于或者等于当前实际的写指针,所以此时如果FIFO为空”,则实际的写指针可能仍然大于读指针,FIFO并不是真的“空。所以判断出来的空”信号,是一个保守的“空”信号。快时钟域中需要同步的信号是脉冲信号,它触发原时钟域的反转电路,每当翻转电路收到脉冲时,电路翻转一次慢时钟域的同步器对翻转后的信号进行采样,和边沿检测,重新在本时钟域恢复出脉冲信号。
2025-01-09 10:48:16
861
原创 时钟抖动及相噪仪和示波器测量
抖动(Jitter)又称时间抖动,是实际测量到的信号在时域上与理想信号的偏差。在绝大多数文献和规范中,时间抖动(jitter)被定义为高速串行信号边沿到来时刻与理想时刻的偏差,所不同的是某些规范中将这种偏差中缓慢变化的成分称为时间游走(wander),而将变化较快的成分定义为时间抖动(jitter)。在理想情况下,一个频率固定的完美的脉冲信号(以1MHz为例)的持续时间应该恰好是1us,每500ns有一个跳变沿。如图1所示,信号周期的长度总会有一定变化,从而导致下一个沿的到来时间不确定。
2025-01-03 15:46:48
243
原创 FPGA随记——过约束
1. 过约束的类型时序过约束 时钟约束过严:例如,对时钟信号的频率要求过高,或者对时钟的抖动、偏移等时序参数设置了过于严格的限制。这可能使得设计在实际的FPGA资源和布线情况下无法满足这些要求,导致时序分析不通过。比如,要求一个复杂逻辑电路在极短的时钟周期内完成所有运算和数据传输,而FPGA的布线延迟和逻辑延迟无法满足这样的要求。 路径延迟约束过严:对某些关键路径(如数据通路、控制信号通路等)的延迟要求过于苛刻。这可能导致在布局布线过程中,FPGA的综合和布局布线工具难以找到满足要求的布线方案。
2025-01-02 16:58:41
529
原创 FPGA随记---时序约束(也不是很懂 请大家发消息和我交流)
我们首先说一下时序约束,我理解的时序分析在一个信号在FPGA管脚接进来的时候认为这个时刻是0,经过在内部的传输延时导致到达一个reg的 D脚和CLK管脚,对于这个reg要满足建立和保持,才能继续工作。那么如果你约了违路径,这个软件不去给你计算了,需要你自己算一算,可以约束最大延时和最小延时。在FPGA(现场可编程门阵列)设计中,过约束是指对设计中的某些元素(如信号、模块等)施加的约束条件过多或过于严格,超出了实际实现的需要,从而可能导致设计实现困难、无法满足所有约束条件或者出现其他意外问题的情况。
2024-12-28 16:22:50
1026
原创 FPGA随记——VIVADO中ASYNC_REG指令
ASYNC_REG本质上是一个“优化向”的属性,它的作用是告诉综合工具vivado----被其标记的寄存器可以接收异步信号,且这些寄存器都是一个同步链上的同步寄存器,所以需要将其放置的尽可能靠近----也就是同一个SLICE/CLB,这样可以减少时延、有效提高MTBF。跨时钟域设计(CDC)是个老生常谈的问题,其场景很多很杂,其中一个比较为人熟知的就是单bit信号从慢时钟到快时钟所采用的两级寄存器处理的场景,俗称“打两拍”,打两拍可以有效的减少亚稳态的发生的概率。
2024-09-20 11:21:54
731
原创 FPGA随记-二进制转格雷码
在FIFO的设计中,在写请求中,写地址在写时钟作用下递增,在产生FIFO满信号时,需要将写地址和读地址进行比较,由于两个地址分别与其各自的时钟同步,但是彼此之间又是异步的关系,所以在使用二进制计数器实现地址的时候,就会出现现取样值错误的问题。在现代数字通信中,格雷码在错误纠正中扮演着重要的角色。反射二进制码(RBC),也称为反射二进制(RB)或格雷码(Gray code),得名于Frank Gray,是二进制数制的一种排列方式,使得连续两个值之间仅有一个比特(二进制位)不同。//右移一位并按位异或。
2024-09-19 21:13:13
1037
原创 FPGA随记——状态机
三段式:有三个always block,一个时序逻辑采用同步时序的方式描述状态转移,一个采用组合逻辑的方式判断状态转移条件、描述状态转移规律,第三个模块使用同步时序的方式描述每个状态的输出。代码容易维护,时序逻辑的输出解决了两段式组合逻辑的毛刺问题,但是从资源消耗的角度上看,三段式的资源消耗多一些,且输出比另外两种会延时一个时钟周期。编码原则,binary和gray-code适用于触发器资源较少,组合电路资源丰富的情况(CPLD),对于FPGA,适用one-hot code。对于大规模设计,HDL更好;
2024-09-11 11:39:46
2357
原创 FPGA随记——小说 可综合和不可综合
当然,工具会对必要的地方做一些优化,比如你写一个电路assing a=b&~b,这样工具就吧a恒接为0了,而不会去给你找一个与门来搭这个电路。2、有限的延迟值:如果 # 后面跟的是一个有限的整数值,这通常表示一个固定的延迟,这样的用法在某些综合工具中可能被视为可综合的。1、任意延迟:如果 # 后面跟的不是一个整数值,或者是一个表达式,这通常被视为不可综合的,因为它不能直接映射到硬件。任意延迟:如果 # 后面跟的不是一个整数值,或者是一个表达式,这通常被视为不可综合的,因为它不能直接映射到硬件。
2024-09-06 11:18:02
2197
原创 FPGA随记——移位寄存器
数电知识——移位寄存器:移位寄存器——数电第六章学习-优快云博客移位寄存器在FPGA中:FPGA原理与结构(5)——移位寄存器(Shift Registers)-优快云博客
2024-09-05 11:21:31
570
原创 FPGA随记——8B/10B编码
由于光模块光模块只能发送亮或者不亮,也就是0或者1这两种状态这种单极性码,那么这会存在一个问题,如果传输中出现较长的连0或者连1(例如111111100000000),那么接收端将没有办法正确的采样识别信号,另外还会由于单极性码含有直流分量,这种直流成分会随数据中1和0的随机变化也呈现随机性,这会引起接收端的基线漂移导致接收端误判。LVDS信号一样会存在这个问题,随着线路上的信号频率越来越高,如果线路上的0和1数量不均衡(直流不平衡)那么线路上的基电压会出现偏移,一样会导致解码错误。基电压偏移是啥意思?
2024-09-02 22:51:03
970
原创 FPGA随记---inout端口的处理
为了进一步考虑,当一个模块的inout端口作为输出时,那么另一个模块的inout端口必须作为输入;反之,当一个模块的inout口用作输入时,那么另一个模块的inout口一定是输出口。那么,连接到inout口的另一个模块是什么情况呢?显然,另一个模块也应该是一个inout端口,一个inout端口不能独立存在。解决这个问题的方法是将DataIn声明为reg类型,将reg类型变量复制到always进程块中,需要添加一个控制信号,由always敏感表监控,保证inout端口的输出不能直接贯通到Datain处。
2024-09-02 15:07:41
2014
原创 FPGA培训-第六次培训
CPHY 三电平编码方式。APHY 一般用于汽车上。MIPI接口 DPHY 双电平接口模式。VGA接口 行场同步信息是单独传输的。HDMI接口 HDMI也可以走以太网。SDI 转呀演播室应用比较多。AV(CVBS)接口。约束向导---实现下面。边沿同步会用在输出上面。S-Video 接口。
2024-09-01 11:51:18
655
原创 FPGA培训——Block Design的应用
由于VIVADO图形化的编程方式中大量应用,所以我们大部分时候都需要对IP进行图形化的封装,前面两节课实验,我们已经完成了简单IP的封装。本实验利用前面图形化IP设计基于图形化的FPGA设计方案,实现"RGB转HDMI显示输出"这节课的内容。
2024-08-26 15:22:09
3081
原创 FPGA 随记---XADC IP (持续更新中)
参考这篇博文: 博文链接 https://blog.youkuaiyun.com/weichen001122/article/details/105405017。
2024-08-20 15:54:39
220
原创 FPGA随记——赛灵思手册总结(持续补充中)
UG949 -UltraFAST 设计方法指南(适用于 Vivado Design Suite) 赛灵思® UltraFast™ 设计方法是用于为当今器件优化设计进程的一套最佳实践。这些设计的规模与复杂性需要执行特定的步骤与设计任务,从而确保设计每一个阶段的成功开展。依照这些步骤,并遵循最佳实践,将帮助您以最快的速度和最高的效率实现期望的设计目标。UG471-7 Series FPGAs SelectIO Resources 描述 7 系列 FPGA 中可用的 SelectIO资源。
2024-08-19 14:59:55
507
原创 FPGA随记——Clocking Wizard(时钟向导)IP
MMCM(Mixed-Mode Clock Manager)和 PLL(Phase-Locked Loop)作为频率合成器,它们不仅可以广泛应用于频率范围的调节,还可用作外部或内部时钟的抖动滤波器,以及桌面时钟的控制器。锁相环在工作的过程中,当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相 位差值,即输出电压与输入电压的相位被锁住,这就是锁相环名称的由来。主要用于为内存接口生成所需的时钟信号,但也具有与器件逻辑的连接,因此如果需要额外的功能,它们可以用作额外的时钟资源。
2024-08-19 11:40:04
1400
原创 FPGA随记——按键消抖
软件消抖的原理主要为按键按下或松开后,由处理器延时 5ms 至 20ms,然后。一般可以进行硬件消除抖动和软件消除抖动,我们不管硬件消除抖动;再对按键状态进行采样并判断。
2024-08-16 10:33:39
138
原创 【无标题】FPGA随记-FPGA时序优化
第二个是消除代码中的优先级。数据的时延一般就是组合逻辑的时延和布线时延两部分,布线时延一般控制不了,所以只用关注组合逻辑的时延,一般时序差的路径上都会有很复杂的多级组合逻辑,插寄存器的时候插到这些组合逻辑的中间就可以。32BIT的比较器,进位链有点长,可以分段比较,分成4个8BIT的数据段去比,或者你分成两段,先比高16,插寄存器,再比低16,时序很好,如果想深入些,就自己手写一个比较器,不要调库。如果时序差的不多,在1NS以内,可以通过修改综合,布局布线选项来搞定,如果差的多,就得动代码。
2024-08-14 12:00:07
709
原创 FPGA随记——赛灵思OOC功能
方式的 模块除外,它们独立于顶层设计而单独综合。通常,在整个设计周期中,顶层设计会被多次修改并综合。模块会被视为黑盒子,并且 不会参与到顶层的综合中来。OOC 模块只会在综合顶层之前被综合一次,这样在顶层的设计迭代过程中,模块的黑盒子才会被打开,这时其网表才是 可见的,并参与到全局设计的实现过程中来。模块就不必跟随顶层模块, 而一次次的产生相同结果的多余综合了。流程减少了设计的周期,并消除了设计迭代,使您可 以保存和重用综合结果。)综合方式,将顶层之下的所有逻辑模块都进行综合,但是设置为。
2024-08-02 11:22:24
312
原创 故障积累-cpu操作逻辑的寄存器读写
1.由于外部硬件走线不一致等问题,所以在信号到达逻辑引脚的时候时序可能较差,为了优化时序,在localbus所有信号线都接入逻辑的时候都需要在localbus_clk信号下布局到IOB寄存器,便于后续时序的保证;always ( posedge locbus_clk) //不要用always (*)//不推荐方式,这里把写使能当作时钟使用,本身信号质量就难以保证,时序也会容易有问题。//推荐读的方式,还是不要使用组合逻辑,感觉还是使用时序逻辑好点。
2024-08-01 11:53:25
407
1
原创 通信IC设计——随记
循环结构中 for while forever repeat结构只有for语句才具备可综合性,其余几种都是测试验证的;当一个wire类型没有被驱动时,它的缺省值为Z;tri类型的三态线网是属于不可综合的,只能在仿真测试或功能模型中应用。if else 和case语句一样,在描述的时候要给出所有分支,否则就会生成锁存latch电路;always没有敏感事件列表的语句,则无条件执行;for循环是一个完全展开并行的结构,不是串行结构;
2024-08-01 11:23:55
163
原创 FPGA--公益培训第一讲随记
I/O serdes :分为Iserdes和Oserdes,是在每个IO进来的时候都需要进行一个串并转化器,便于后续的处理,如果是差分信号进来就只有master端的相关器件;MGT:Multi-gigabittransceiver 一般是指的各种是serdes的,是时钟和数据混合编码的,有8b/10b编码等;Fpga结构中一般CLB和BRAM都是相邻挨着的关系,且成一定比例。因为数据的处理流程需要存储数据,为什么呢?FIFO LOGIC:它一般是挨着IO管脚放置的,为什么呢?测试测量和仿真:示波器。
2024-08-01 10:02:50
250
原创 FPGA随记——组合逻辑电路
描述方式二 :基于always语句的行为描述方法,也一种组合逻辑描述方式。描述方式三:按照门级电路方式的搭建,属于结构体描述方式。描述方式一:基于数据流描述,标准的组合逻辑描述方法。这个不学,感觉做芯片才需要。
2024-07-31 17:37:24
242
原创 TCL五元组
PORT:每个port会占用一个FPGA的外部管脚,成为package pin ,每个package pin都在IObank中。CELL:可以是实例化后的模块,也可以是LUT,DSP48E等资源,它们有相应的PIN。PIN:CELL的输入/输出且为wire型的接口为PIN.
2024-07-30 11:54:15
115
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人