数字IC入门
文章平均质量分 84
呜呼啦呼_l
这个作者很懒,什么都没留下…
展开
-
LFSR线性反馈移位寄存器及Verilog实现
LFSR线性反馈移位寄存器,通常由移位寄存器和异或门组成,主要用于产生伪随机序列等。线性反馈的含义是各个寄存器的输出通过一个反馈函数连接到第一级触发器的输入;LFSR中的寄存器的个数被称为LFSR的级数。原创 2024-05-21 14:45:00 · 891 阅读 · 0 评论 -
数字IC除法器结构
除法器是通过加法器/减法器和移位寄存器来实现的原创 2024-05-21 09:30:00 · 217 阅读 · 0 评论 -
为什么状态机最好要采用独热码
二进制编码:也称连续编码,属于压缩编码方式,可以使用较少的触发器对应更多的状态;格雷码:属于压缩编码方式,由于其编码特性,相邻两个格雷码之间只有1bit不同,相邻状态切换时,只有一个触发器的输出会翻转,可以尽量避免多bit信号之间的数据歪斜。独热码:使用N个触发器表示N个状态,每一时刻只有一个触发器的输出有效。原创 2024-05-16 09:30:00 · 237 阅读 · 0 评论 -
固定优先级仲裁器及RR轮询Verilog实现
即在每次仲裁之后更新优先级,如最优先级mask初始为4'b1111,最低位优先级最高,则在输入请求为4'b1101的第一次仲裁后,输出仲裁结果为4'b0001,mask要变为4'b1110,优先级变为bit1的优先级最高,然后是bit2、bit3,即最低位请求已经被响应过了,接下来希望其他请求被响应,轮询着被仲裁。在代码中我可以发现,我们没有采取在仲裁结果为1000时将优先级更新为1的情况,而是当mask为0时采用固定优先级更新,这时候和将mask重置为1的效果是一样的,当然也可以通过修改代码实现功能。原创 2024-05-14 16:44:49 · 967 阅读 · 0 评论 -
Wallace树乘法器及Verilog实现
Wallace树乘法器就是将多个部分积进行分组,每三个一组,最后如果剩下的部分积个数不够三个的不做处理,然后将各组的部分积进行相加得到和以及进位信息,直到最终只剩下两行部分积,相加后得到最终结果。以下面的例子进行说明:,然后按照三个三个,如图中相同颜色的为一组,但是最后黄色的两个由于不够则不进行运算,然后对一组内的三行部分积进行运算,得到的和留在本位,得到的进位填充到前一列的最后一行,详见下图2图1图2在上图中,我们以红色部分的进行举例,三行的。原创 2024-05-11 10:00:00 · 296 阅读 · 0 评论 -
基于Radix-4的Booth乘法器
无符号数的最高位1被当作符号位进行运算了,这与Booth乘法器的原理不符合,接下来最高位的1将作为Bi-1参与Cofe的计算,那么就需要额外的两bit数,因此在高位需要扩展两个0,这是需要的最多的额外bit的情况。如果乘数是7,那么扩展低位后变为1110,这时候变为如下的情况,只需要1bit即可,但是扩展两位并不影响运算。因此每次计算时,只需要从最低位置开始,按照基系数Coef计算出相邻三个bit的和,然后根据和为-2、-1、0、1、2来得到乘法结果并移位,之后将所有得到的乘法结果相加即可。原创 2024-05-10 09:30:00 · 857 阅读 · 0 评论 -
数字IC乘法器结构
我们可以发现,整个乘法过程需要进行多次两个数据以及进位的相加,这样的结构很适合利用加法器来实现原创 2024-05-09 09:30:00 · 1992 阅读 · 0 评论 -
竞争与冒险
在输入没有变化的情况下,组合逻辑电路的输出也可能发生转变,这种非预期的瞬态变化成为“毛刺”。毛刺是由电路的结构、**延迟**、以及可能导致毛刺产生的输入信号引起的。竞争是门电路两个输入信号同时向相反的逻辑电平跳变(一个从1变为0,另一个从0变为1)的现象。冒险就是可能产生毛刺输出的电路。原创 2024-04-24 11:41:05 · 744 阅读 · 0 评论 -
为何有时简单双口RAM是真双口RAM资源的一半
当配置的RAM深度不超过512(≤512)并且位宽超过54(>36+18)的情况下,简单双口RAM的资源是真双口RAM资源的一半。原创 2024-04-24 09:30:00 · 1407 阅读 · 0 评论 -
Xinlinx FPGA内的存储器BRAM全解
Xilinx 7系列fpga中的块RAM存储高达36 Kb的数据,可以配置为两个独立的18 Kb BRAM或一个36 Kb RAM。每个36Kb块RAM也可以配置成深度×宽度为64K × 1(当与相邻的36KB块RAM级联时)、32K × 1、16K × 2、8K × 4、4K × 9、2K × 18、1K × 36或512 × 72的简单双端口模式。每个18Kb块RAM可以配置成深度×宽度为16K × 1、8K × 2、4K × 4、2K × 9、1K × 18或512 × 36的简单双端口模式。原创 2024-04-23 17:29:29 · 2086 阅读 · 1 评论 -
Vivado中的加法器电路结构
加法器在SLICE中的体现/SLICE中进位链的作用原创 2024-04-23 10:00:00 · 831 阅读 · 0 评论 -
一文学会时序约束
- 主时钟约束命令/生成时钟约束命令- IO输入输出延迟约束命令及效果- 最大最小延迟命令及作用- 多周期路径怎么约束- 什么情况设置伪路径- 时钟组设置的三个选项原创 2024-04-18 11:18:39 · 490 阅读 · 0 评论 -
数字IC/FPGA——时序分析
- 时序分析的本质是什么- 建立时间要求和保持时间要求是如何产生的- 时序路径共有几种- 如何确立建立时间要求及slack- 如何确立保持时间要求及slack- 建立时间和保持时间为何可以为负原创 2024-04-18 10:00:29 · 1078 阅读 · 0 评论 -
建立时间/保持时间为负是什么情况
建立时间/保持时间为负是由于CELL内部数据路径延迟和时钟路径延迟的相对关系原创 2024-04-15 21:59:51 · 704 阅读 · 2 评论 -
数字IC/FPGA——锁存器/触发器/寄存器
- 什么是触发器和锁存器- 门电路和触发器的区别- 什么是电平钟控触发器- 电平钟控触发器触发器和锁存器的区别- 触发器的分类方式:逻辑功能、触发方式、电路结构、存储数据原理、构成触发器的基本器件- 寄存器- 利用移位寄存器实现串并转换或并串转换原创 2024-04-12 17:48:09 · 1648 阅读 · 0 评论 -
数字IC/FPGA——复位篇
本文主要介绍以下几点:- 复位的作用及什么时候需要复位- 复位的分类- 全局复位、局部复位的目的- 如何选择全局复位和局部复位- 同步复位、异步复位及异步复位同步释放的原理、优缺点原创 2024-04-10 17:26:50 · 1183 阅读 · 1 评论 -
数字IC/FPGA(时钟简介)
本文主要介绍了-什么是时钟- 什么是外部时钟和内部时钟- 时钟偏斜skew、时钟延迟delay和时钟抖动jitter的定义、三者的区别- 时钟抖动、时钟偏斜、时钟延迟会引起或不会引起什么情况- 布线方式的影响,正偏差和负偏差的好处和坏处- 什么是同步电路- 什么是异步电路- 时钟域和时钟树- FPGA的时钟资源BUFG/BUFH/BUFR/BUFIO/BUMR/MMCM/PLL原创 2024-04-09 11:54:47 · 1298 阅读 · 0 评论 -
AHB总线介绍
AHB(Advanced High Performance Bus)高级高性能总线,如同USB(Universal Serial Bus)一样,也是一种总线接口。AHB主要用于(如CPU、DMA和DSP等)之间的连接,作为SoC的片上系统总线,它包括以下特性:支持突发传输;支持分段传输;支持多个主控制器;可配置32位~128位总线宽度;支持、半字和字的传输。AHB 系统由和基础结构(Infrastructure)3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。原创 2023-11-22 16:41:19 · 419 阅读 · 1 评论 -
FPGA实现异步FIFO
FPGA实现异步FIFO原创 2023-10-31 17:41:59 · 210 阅读 · 1 评论 -
数字IC设计入门(四)—— 异步FIFO
FPGA设计一个读写时钟不同的异步FIFO。原创 2022-11-12 16:06:08 · 511 阅读 · 0 评论 -
深度为32、数据位宽为32bit的同步FIFO(可通过修改parameter参数改成任意深度位宽)
同步FIFO的写数据操作、读数据操作以及FIFO满和FIFO空的状态指示信号,并通过仿真原创 2023-10-31 17:26:59 · 374 阅读 · 5 评论 -
数字IC设计入门(二)——门控时钟
时钟门控(Clock-Gating)一直以来都是降低微处理器功耗的重要手段,主要针对寄存器翻转带来的动态功耗,在某一时段不需要使用时钟时,通过使能信号将时钟关闭,从而降低其所带来的功耗。原创 2023-10-26 19:48:00 · 231 阅读 · 0 评论 -
Modelsim的使用以及设计、激励文件testbench的说明
Modelsim的使用以及设计、激励文件testbench的说明原创 2022-11-01 17:19:11 · 5494 阅读 · 5 评论 -
Verilog基础入门
Verilog基础入门原创 2022-10-25 10:47:31 · 31393 阅读 · 7 评论 -
数字IC设计入门(一)——Veriog中不同的语句对应不同的电路结构
自打接触数字电路和Verilog以来,就经常看到说Verilog是硬件描述语言,不是编程语言,在写Verilog的过程中,要做到心中有电路,可是在利用FPGA进行开发的过程中,却没能真正理解这句话的意思,依然没有考虑代码背后所对应的电路,大多数时候这样做也并没有不好的影响,直到后来有一次遇到严重的时许违例才对其中的道理略知一二。看似不大的差异实际对应的电路会是怎样的结果?我们可以发现,主要差距体现在触发器和与门之间的部分,一个采用了与非门,另一个采用了比较器。然后联想起自己在做的时候采用的方法是。原创 2023-10-24 12:01:53 · 135 阅读 · 1 评论