数字电路设计
文章平均质量分 92
dxz44444
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
建立时间和保持时间
参考链接:3.3 Verilog 建立时间和保持时间 | 菜鸟教程关键词: 建立时间, 保持时间 对于数字系统而言,建立时间(setup time)和保持时间(hold time)是数字电路时序的基础。数字电路系统的稳定性,基本取决于时序是否满足建立时间和保持时间。所以,这里用一整节的篇幅,来详细的说明建立时间和保持时间的概念。 基本概念 建立时间就是时钟触发事件来临之前,数据需要保持稳定的最小时间,以便数据能够被时钟正确的采样。 保持时间就是时钟触发事件来临之后,数据需要保持稳定的最小时间,以便数....原创 2022-04-10 23:12:41 · 2349 阅读 · 1 评论 -
Vivado基于Rom IP核查找表生成cos、sin波形的方法
一、MATLAB生成sin,cos的数据文件构造256点的正余弦表,分别得到 cos和sin的查找表matlab代码: 求sinfid = fopen('sin.txt','a' );str1 = 'MEMORY_INITIALIZATION_RADIX=10;';str2 = 'MEMORY_INITIALIZATION_VECTOR=';fprintf(fid,'\t%s\n \t%s\n', str1,str2);for k=1:256;y(k) =sin(2*pi*k/256原创 2020-12-02 20:51:59 · 3621 阅读 · 0 评论 -
verilog仿真数据不delay打一拍分析
在IC设计verilog仿真过程中很多人可能会遇到,数据不delay现象。例如:出现:这是由于采样的时钟tx_gen_symbol_clk 和数据信号subframe_start之间存在竞争关系导致的。我们的设计意图是时钟tx_gen_symbol_clk应该采到subframe_start信号的后沿有人可能会说在代码中加入延迟#1来解决,实际上不推荐这样做,还会存在两个#1的信号同样还会存在竞争。要搞清楚产生这种问题的原因首先要了解仿真器对于时序仿真的模型。第4原创 2020-11-18 19:44:48 · 5047 阅读 · 0 评论 -
格雷码异步FIFO
格雷码设计异步FIFO,读快写慢,读时钟会出现漏采样的情况,漏采的数据留在FIFO中,导致满信号间断分布。源文件: module dual_clk_fifo #(parameter DATESIZE = 8, parameter ADDRSIZE = 4, parameter ALMOST_GAP = 3)(input [DATESIZE-1:0] wdata,input winc, wclk, wrst_n,input rinc, rclk, rrst_n...原创 2020-07-29 23:25:28 · 595 阅读 · 0 评论 -
cmos管宽长比,OC, OD门和线与逻辑,传输门,竞争冒险,三态门
一、OD门介绍OC(Open Collector)门,又称集电极开路,OD(Open Drain)漏极开路,通过名称就可以判断,OC门是针对三极管来说的,而OD门是针对MOS管而言的。管子的栅极和输入连接,源极接公共端,漏极悬空(开路)什么也没有接,因此使用时需要接一个适当阻值的电阻到电源,才能使这个管子正常工作,这个电阻就叫上拉电阻。线与逻辑:即两个输出端(包括两个以上)直接互连就可以实现“AND”的逻辑功能。通常CMOS门电路都有反相器作为输出缓冲电路,如上图所示,如果将两个CMOS原创 2020-07-24 16:17:20 · 12086 阅读 · 0 评论 -
跨时钟域设计(结绳法,脉冲展宽法)
一、结绳法(一)https://www.cnblogs.com/lyc-seu/p/12441366.html#%E6%96%B9%E6%B3%95%E4%BA%94%EF%BC%9Admux%E5%90%8C%E6%AD%A5%E5%99%A8参考链接:https://blog.youkuaiyun.com/qq_15026001/article/details/100022905?ops_request_misc=%257B%2522request%255Fid%2522%253A%252215954952原创 2020-07-24 15:48:18 · 5161 阅读 · 0 评论 -
低功耗设计方法(2)——————系统与架构级低功耗设计
1.系统与架构级低功耗设计 系统与架构层次的低功耗设计,可以节省70%以上的功耗。这个层次上的设计往往是由系统和架构设计人员进行的,这些人员往往是有着丰富经验的设计人员。他们制定了低功耗设计方案,由下一级的设计人员(比如做前端设计、做Flow的人员)进行具体实现。下面就来介绍一下在系统架构方面,可以从哪些方面进行低功耗设计,由于我只是只菜鸟,因此这些内容只是我在前人的经验中进行总结学习的笔记,仅供参考。 (1)多电压设计技术(Multi-VDD)①多电压设计技术介绍从前面的功耗方程中..原创 2020-07-22 11:17:21 · 3216 阅读 · 0 评论 -
低功耗设计方法(1)——————功耗构成和类型
1.功耗的构成——按类型分 低功耗按照类型分类呢,其构成主要有动态功耗、静态功耗、浪涌功耗这三种。1)动态功耗 动态功耗包括:开关功耗或者称为翻转功耗、短路功耗或者称为内部功耗。①开关功耗 在数字CMOS电路中,对负载电容进行充放电时消耗的功耗,比如对于下面的CMOS非门中当Vin = 0时,上面的PMOS导通,下面的NMOS截止;VDD对负载电容Cload进行充电,充电完成后,Vout的电平为高电平。当Vin = 1时,上面的PMOS截止,下面的NMOS导通,负载电容原创 2020-07-22 10:30:31 · 3569 阅读 · 0 评论 -
加法器的实现(半加器,全加器,行波进位加法器,超前进位加法器,流水线加法器)
一、半加器和全加器二、行波进位加法器三、超前进位加法器(Carry-Lookahead Adder,CLA)https://www.jianshu.com/p/6ce9cad8b467原创 2020-07-21 16:02:12 · 2232 阅读 · 0 评论 -
乘法器的verilog实现
https://www.cnblogs.com/shengansong/archive/2011/05/23/2054401.html一、对两个二进制数进行相乘运算,运用列式求法我们可以得知,乘法最终就是由加法和移位运算构成的,由此可以用高速度的加法和移位实现乘法操作,具体代码如下:module multi_4bits_pipelining(mul_a, mul_b, clk, rst_n, mul_out); input [3:0] mul_a, mul_b; i.原创 2020-07-08 19:41:02 · 1601 阅读 · 0 评论 -
IBUF,OBUF,IOBUF原语解析(inout实现,综合出电路结构)
用两种方法 实现inout,综合出来的电路结构一样,所以inout作输入时直接assign就行了。:module inout_def(input clk,input z2,inout dinout2,input z3,inout dinout3,output reg led_r2,output reg led_r3 ); reg dout2 = 0;wire din2;assign dinout2 = z2?1'bz:dout2;assign din2 = di原创 2020-07-08 11:12:07 · 27585 阅读 · 0 评论 -
除法器的verilog实现
除法器在FPGA里怎么实现呢?当然不是让用“/”和“%”实现。在Verilog HDL语言中虽然有除的运算指令,但是除运算符中的除数必须是2的幂,因此无法实现除数为任意整数的除法,很大程度上限制了它的使用领域。并且多数综合工具对于除运算指令不能综合出令人满意的结果,有些甚至不能给予综合。即使可以综合,也需要比较多的资源。对于这种情况,一般使用相应的算法来实现除法,分为两类,基于减法操作和基于乘法操作的算法。1.1 实现算法基于减法的除法器的算法:对于32的无符号除法,被除数a除以...原创 2020-07-06 17:22:36 · 21896 阅读 · 0 评论 -
数字集成电路 -- 各种计数器简介(环形计数器,扭环形计数器,线性反馈移位寄存器,行波计数器)
目录数字集成电路 -- 各种计数器简介 1. 环形计数器 2. 扭环形计数器 3. 线性反馈移位寄存器 4. 行波计数器 1. 环形计数器https://wenku.baidu.com/view/73ec140bba1aa8114431d945.htmlN个寄存器构成的环形计数器,状态数:N2. 扭环形计数器https://wenku.baidu.com/view/73ec140bba1aa8114431d945.htmlN个寄存器构成..原创 2020-07-02 16:38:37 · 19468 阅读 · 0 评论 -
线性反馈移位寄存器(LFSR) ______FPGA产生基于LFSR的伪随机数
FPGA产生基于LFSR的伪随机数1.概念 通过一定的算法对事先选定的随机种子(seed)做一定的运算可以得到一组人工生成的周期序列,在这组序列中以相同的概率选取其中一个数字,该数字称作伪随机数,由于所选数字并不具有完全的随机性,但是从实用的角度而言,其随机程度已足够了。这里的“伪”的含义是,由于该随机数是按照一定算法模拟产生的,其结果是确定的,是可见的,因此并不是真正的随机数。伪随机数的选择是从随机种子开始的,所以为了保证每次得到的伪随机数都足够地“随机”,随机种子的选择就显得非常重要,如果随机原创 2020-07-01 19:52:29 · 2036 阅读 · 0 评论 -
循环冗余校验(CRC,模2运算)
模2运算是一种二进制算法,CRC校验技术中的核心部分,因此,我们在分析CRC算法之前,必须掌握模2运算的规则。与四则运算相同,模2运算也包括模2加、模2减、模2乘、模2除四种二进制运算。而且,模2运算也使用与四则运算相同的运算符,即“+”表示模2加,“-”表示模2减,“×”或“·”表示模2乘,“÷”或“/”表示模2除。与四则运算不同的是模2运算不考虑进位和借位,即模2加法是不带进位的二进制加法运算,模2减法是不带借位的二进制减法运算。这样,两个二进制位相运算时,这两个位的值就能确定运算结果,...原创 2020-07-01 15:59:05 · 6806 阅读 · 1 评论 -
FIFO最小深度计算
FIFO最小深度计算背景当异步FIFO读写端口的throught-put(吞吐量)不同时,会遇到数据丢失的问题,需要考虑FIFO中的深度问题,即为满足读写流畅不卡顿(数据不丢失)时,FIFO的deepth的最小值。FIFO主要是用于数据的缓存,用在读慢写快的场景下。异步FIFO读写不同频,选用的FIFO要能够在极端的情况下仍然能够保证数据的不溢出。因此,考虑的前提一般都是读慢写快的情景(写时钟大于读时钟),但需要注意的是,这里的写操作是突发传输,而不能使连续操作。倘若写快读慢的场景下,写数据流是连续原创 2020-06-22 10:13:40 · 1123 阅读 · 1 评论 -
verilog中异或(^)理解与应用(格雷码,奇偶判断,奇分频)
异或运算:首先异或表示当两个数的二进制表示,进行异或运算时,当前位的两个二进制表示不同则为1相同则为0.该方法被广泛推广用来统计一个数的1的位数!参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。即: 0^0 = 0, 1^0 = 1, 0^1 = 1, 1^1 = 0按位异或的3个特点:(1) 0^0=0,0^1=1 0异或任何数=任何数(2) 1^0=1,1^1=0 1异或任何数-任何数取反(3) 任何数异或自己=把自己置0一、异或^的运用:...原创 2020-06-18 14:50:24 · 31227 阅读 · 0 评论 -
理解时序逻辑电路和组合逻辑电路
一、组合逻辑电路缺点1)纯组合逻辑电路的缺点在哪?纯组合电路容易产生毛刺,时序逻辑电路对于组合逻辑的毛刺具有容忍度,从而改善电路的时序特性2)纯组合逻辑电路完成不了什么功能?纯组合逻辑只能由当前输入决定当前输出,而不能实现带反馈的逻辑(纯组合电路,奇数个反相器串联闭环振荡器)。带反馈的逻辑,必须要通过寄存器把输出暂存起来,再由时钟沿去控制数据的反馈更新,这样电路才有意义。二、同步时序逻辑电路 1)组合逻辑电路: 在组合逻辑中当各路信号的路径...原创 2020-06-17 17:19:06 · 3997 阅读 · 0 评论 -
处理多个时钟
跨时钟域信号的传输可以归为两类,分别是:1)控制信号的传输2)数据信号的传输1.控制信号的传输 在设计中,如果将一个异步信号直接送给若干个并行工作的触发器,就会大大增加亚稳态事件发生的概率,因为有可能有多个触发器进入亚稳态。为了避免形成这种情况下的亚稳态,我们常常使用同步触发器的输出信号来取代异步信号。为了减少亚稳态的影响,设计者最常用的方法是使用级同步器,即将两个或多个触发器串联起来组成多的同步电路。 如果同步器的第一级触发器产生亚稳态输出,那么这个亚稳态会在同...原创 2020-06-16 20:21:49 · 349 阅读 · 0 评论 -
clock skew和clock jitter,时钟短路径问题
Clock skew 和Clock jitter 是影响时钟信号稳定性的主要因素skew通常是时钟相位上的不确定,而jitter是指时钟频率上的不确定(uncertainty)。造成skew和jitter的原因很多。 1)由于时钟源到达不同寄存器所经历路径的驱动和负载的不同,时钟边沿的位置有所差异,因此就带来了skew。 skew=Tclk1-Tclk2 2)而由于晶振本身稳定性,电源以及...原创 2020-06-16 15:19:18 · 2838 阅读 · 0 评论
分享