精华内容
下载资源
问答
  • 内存和寄存器就是为了解决存储器读写速度慢而产生多级存储机制,从20世纪50年代开始,磁芯存储器曾一度成为主存主要存储介质,但从20世纪70年代开始,逐步被半导体存储器所取代,目前计算机都是用半导体存储器...

    1、存储器在CPU外,baidu一般指硬盘,U盘等可以在切断电源后保存资料的设备,zhi容量一般dao比较大,缺点是读写速度都很慢,普通的机械硬盘读写速度一般是50MB/S左右。

    内存和寄存器就是为了解决存储器读写速度慢而产生的多级存储机制,从20世纪50年代开始,磁芯存储器曾一度成为主存的主要存储介质,但从20世纪70年代开始,逐步被半导体存储器所取代,目前的计算机都是用半导体存储器。现在的DDR2内存的读写速度一般为6~8GB/S,跟机器性能也有关系。
    2、寄存器(又称缓存)一般是指由基本的RS触发器结构衍生出来的D触发,就是一些与非门构成的结构,一般整合在CPU内,其读写速度跟CPU的运行速度基本匹配,但因为性能优越,所以造价昂贵,一般好的CPU也就只有几MB的2级缓存,1级缓存更小。使用寄存器可以缩短至零长度、节省存储空间,提高指令的执行速度。

    3、不同的寄存器有不同的作用,如:通用寄存器(GR)用以存放操作数、操作数的地址或中间结果;指令寄存器(IR)用以存放当前正在执行的指令,以便在指令执行的过程中,控制完成一条指令的全部功能。
    CPU计算时,先预先把要用的数据从硬盘读到内存,然后再把即将要用的数据读到寄存器。最理想的情况就是CPU所有的数据都能从寄存器里读到,这样读写速度就快,如果寄存器里没有要用的数据,就要从内存甚至硬盘里面读,那样读写数据占的时间就比CPU运算的时间还多的多。

    所以评价一款CPU的性能除了频率,缓存也是很重要的指标。

    CPU的组成:

    CPU的根本任务就是执行指令,对计算机来说最终都是一串由“0”和“1”组成的序列。CPU从逻辑上可以划分成3个模块,分别是控制单元、运算单元和存储单元,这三部分由CPU内部总线连接起来。

    1、控制单元

    控制单元是整个CPU的指挥控制中心,由指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)和操作控制器OC(Operation Controller)等,对协调整个电脑有序工作极为重要。

    它根据用户预先编好的程序,依次从存储器中取出各条指令,放在指令寄存器IR中,通过指令译码(分析)确定应该进行什么操作,然后通过操作控制器OC,按确定的时序,向相应的部件发出微操作控制信号。

    操作控制器OC中主要包括节拍脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路和启停电路等控制逻辑。

    2、运算单元

    是运算器的核心。可以执行算术运算(包括加减乘数等基本运算及其附加运算)和逻辑运算(包括移位、逻辑测试或两个值比较)。相对控制单元而言,运算器接受控制单元的命令而进行动作,即运算单元所进行的全部操作都是由控制单元发出的控制信号来指挥的,所以它是执行部件。

    3、存储单元

    包括CPU片内缓存和寄存器组,是CPU中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU访问寄存器所用的时间要比访问内存的时间短。

    采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度。

    但因为受到芯片面积和集成度所限,寄存器组的容量不可能很大。寄存器组可分为专用寄存器和通用寄存器。专用寄存器的作用是固定的,分别寄存相应的数据。

    而通用寄存器用途广泛并可由程序员规定其用途,通用寄存器的数目因微处理器而异。这个是我们以后要介绍这个重点,这里先提一下。

     

    展开全文
  • 图1建立时间保持时间关系图 建立时间(setup time)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;保持时间(hold time)是指...

    1数字电路设计中的几个基本概念:

    1.1  建立时间和保持时间:

     
     
    图1建立时间和保持时间关系图

    建立时间(setup time)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;保持时间(hold time)是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间, 如果保持时间不够,数据同样不能被打入触发器。 数据稳定传输必须满足建立和保持时间的要求,当然在一些情况下,建立时间和保持时间的值可以为零。PLD/FPGA开发软件可以自动计算两个相关输入的建立和保持时间


    注:

    在考虑建立保持时间时,应该考虑时钟树向后偏斜的情况,在考虑建立时间时应该考虑时钟树向前偏斜的情况。在进行后仿真时,最大延迟用来检查建立时间,最小延时用来检查保持时间。

    建立时间的约束和时钟周期有关,当系统在高频时钟下无法工作时,降低时钟频率就可以使系统完成工作。保持时间是一个和时钟周期无关的参数,如果设计不合理,使得布局布线工具无法布出高质量的时钟树,那么无论如何调整时钟频率也无法达到要求,只有对所设计系统作较大改动才有可能正常工作,导致设计效率大大降低。因此合理的设计系统的时序是提高设计质量的关键。在可编程器件中,时钟树的偏斜几乎可以不考虑,因此保持时间通常都是满足的。

     

    1.2 FPGA中的竞争和冒险现象
    信号在 FPGA 器件内部通过连线和逻辑单元时,都有一定的延时。 延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。信号的高低电平转换也需要一定的过渡时间。由于存在这两方面因素,多路信号的电平值发生变化时, 在信号变化的瞬间, 组合逻辑的输出有先后顺序,并不是同时变化,往往会出现一些不正确的尖峰信号,这些尖峰信号称为"毛刺"。如果一个组合逻辑电路中有"毛刺"出现, 就说明该电路存在"冒险"。 (与分立元件不同, 由于PLD 内部不存在寄生电容电感,这些毛刺将被完整的保留并向下一级传递,因此毛刺现象在PLDFPGA设计中尤为突出)图 2是一个逻辑冒险的例子,从图 3的仿真波形可以看出,"ABCD"四个输入信号经过布线延时以后, 高低电平变换不是同时发生的, 这导致输出信号"OUT"出现了毛刺。 (我们无法保证所有连线的长度一致,所以即使四个输入信号在输入端同时变化,但经过PLD内部的走线,到达或门的时间也是不一样的,毛刺必然产生)。可以概括的讲,只要输入信号同时变化, (经过内部走线) 组合逻辑必将产生毛刺。 将它们的输出直接连接到时钟输入端、清零或置位端口的设计方法是错误的, 这可能会导致严重的后果。 所以我们必须检查设计中所有时钟、清零和置位等对毛刺敏感的输入端口,确保输入不会含有任何毛刺

     

    2 存在逻辑冒险的电路示例

     

    3电路的仿真波形

    冒险往往会影响到逻辑电路的稳定性。时钟端口、清零和置位端口对毛刺信号十分敏感,任何一点毛刺都可能会使系统出错,因此判断逻辑电路中是否存在冒险以及如何避免冒险是设计人员必须要考虑的问题。

    如何处理毛刺

    我们可以通过改变设计,破坏毛刺产生的条件,来减少毛刺的发生。例如,在数字电路设计中,常常采用格雷码计数器取代普通的二进制计数器,这是因为格雷码计数器的输出每次只有一位跳变,消除了竞争冒险的发生条件,避免了毛刺的产生。
    毛刺并不是对所有的输入都有危害,例如 D 触发器的 D输入端,只要毛刺不出现在时钟的上升沿并且满足数据的建立和保持时间,就不会对系统造成危害,我们可以说触发是因为同步电路信号的变化都发生在时钟沿,只要毛刺不出现在时钟的沿口并且不满足数据的建立和保持时间, 就不会对系统造成危害。 (由于毛刺很短, 多为几纳秒, 基本上都不可能满足数据的建立和保持时间)

    去除毛刺的一种常见的方法是利用 D触发器的 D输入端对毛刺信号不敏感的特点,在输出信号的保持时间内,用触发器读取组合逻辑的输出信号,这种方法类似于将异步电路转化为同步电路。 图给出了这种方法的示范电路,图是仿真波形。

     

     4消除毛刺信号方法之二

     

    5 所示电路的仿真波形

    1.3同步复位与异步复位
    1.3.1一个简单的异步复位的例子 

     1 module test
     2 (
     3  input clk,
     4  input rst_n,
     5  input data_in,
     6  output reg out
     7  );
     8  always @ (posedge clkor negedge rst_n)
     9          if(!rst_n) out <= 1'b0;
    10           else out <= data_in;
    11  endmodule 

    我们可以看到FPGA的寄存器都有一个异步的清零端(CLR),在异步复位的设计中这个端口一般就是接低电平有效的复位信号rst_n。即使说你的设计中是高电平复位,那么实际综合后会把你的复位信号反向后接这个CLR端。

     

    1.3.2一个简单的同步复位的例子 

     1 module test
     2 (
     3  input clk,
     4 input rst_n,
     5 input data_in,
     6 output reg out
     7  );
     8 always @ (posedge clk )
     9          if(!rst_n) out <= 1'b0;
    10          else out <= data_in;
    11 endmodule 

       和异步复位相比,同步复位没有用上寄存器的CLR端口,综合出来的实际电路只是把复位信号rst_n作为了输入逻辑的使能信号。那么,这样的同步复位势必会额外增加FPGA内部的资源消耗。 

           那么同步复位和异步复位到底孰优孰劣呢? 

           只能说,各有优缺点。同步复位的好在于它只在时钟信号clk的上升沿触发进行系统是否复位的判断,这降低了亚稳态出现的概率;它的不好上面也说了,在于它需要消耗更多的器件资源,这是我们不希望看到的。FPGA的寄存器有支持异步复位专用的端口,采用异步复位的端口无需额外增加器件资源的消耗,但是异步复位也存在着隐患。异步时钟域的亚稳态问题同样的存在与异步复位信号和系统时钟信号之间。

      

    1.3.3异步复位、同步释放

     1 module test
     2 (
     3 input clk,
     4 input rst_n,
     5 input a,
     6 output reg c
     7  );
     8  
     9 reg b,rst_nr;
    10 always @ (posedge clk)
    11          rst_nr <= rst_n;  
    12             
    13 always @ (posedge clkor negedge rst_nr)
    14          if(!rst_nr) b <= 1'b0;
    15          else b <= a; 
    16             
    17 always @ (posedge clkor negedge rst_nr)
    18          if(!rst_nr) c <= 1'b0;
    19          else c <= b; 
    20             
    21 endmodule 

    如此一来,既解决了同步复位的资源消耗问题,也解决了异步复位的亚稳态问题。其根本思想,也是将异步信号同步化。

     

    1.4锁存器、触发器和寄存器
    1.4.1锁存器

    锁存器(latch---对脉冲电平敏感,在时钟脉冲的电平作用下改变状态

    锁存器是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值,仅当锁存器处于使能状态时,输出才会随着数据输入发生变化。

    锁存器不同于触发器,它不在锁存数据时,输出端的信号随输入信号变化,就像信号通过一个缓冲器一样;一旦锁存信号起锁存作用,则数据被锁住,输入信号不起作用。锁存器也称为透明锁存器,指的是不锁存时输出对于输入是透明的。

    锁存器是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值,当锁存器处于使能状态时,输出才会随着数据输入发生变化。(简单地说,它有两个输入,分别是一个有效信号EN,一个输入数据信号DATA_IN,它有一个输出Q,它的功能就是在EN有效的时候把DATA_IN的值传给Q,也就是锁存的过程)。

    应用场合:数据有效迟后于时钟信号有效。这意味着时钟信号先到,数据信号后到。在某些运算器电路中有时采用锁存器作为数据暂存器。

    缺点:时序分析较困难。

    不要锁存器的原因有二:1、锁存器容易产生毛刺,2、锁存器在ASIC设计中应该说比FF要简单,但是在FPGA的资源中,大部分器件没有锁存器这个东西,所以需要用一个逻辑门和FF来组成锁存器,这样就浪费了资源。

    优点:面积小。锁存器比FF快,所以用在地址锁存是很合适的,不过一定要保证所有的latch信号源的质量,锁存器在CPU设计中很常见,正是由于它的应用使得CPU的速度比外部IO部件逻辑快许多。latch完成同一个功能所需要的门较触发器要少,所以在asic中用的较多。

    1.4.2触发器

    触发器(Flip-Flop,简写为 FF---对脉冲边沿敏感,其状态只在时钟脉冲的上升沿或下降沿的瞬间改变。

    触发器也叫双稳态门,又称双稳态触发器。是一种可以在两种状态下运行的数字逻辑电路。触发器一直保持它们的状态,直到它们收到输入脉冲,又称为触发。当收到输入脉冲时,触发器输出就会根据规则改变状态,然后保持这种状态直到收到另一个触发。

      触发器(flip-flops)电路相互关联,从而为使用内存芯片和微处理器的数字集成电路(IC)形成逻辑门。它们可用来存储一比特的数据。该数据可表示音序器的状态、计数器的价值、在计算机内存的ASCII字符或任何其他的信息。

      有几种不同类型的触发器(flip-flops)电路具有指示器,如T(切换)、S-R(设置/重置)J-K(也可能称为Jack Kilby)和D(延迟)。典型的触发器包括零个、一个或两个输入信号,以及时钟信号和输出信号。一些触发器还包括一个重置当前输出的明确输入信号。第一个电子触发器是在1919年由W.H.EcclesF.W.Jordan发明的。

    T触发器(Toggle Flip-Flopor Trigger Flip-Flop)设有一个输入和输出,当时钟频率由0转为1时,如果TQ不相同时,其输出值会是1。输入端T1的时候,输出端的状态Q发生反转;输入端T0的时候,输出端的状态Q保持不变。把JK触发器的JK输入点连接在一起,即构成一个T触发器。

    应用场合:时钟有效迟后于数据有效。这意味着数据信号先建立,时钟信号后建立。在CP上升沿时刻打入到寄存器。

    1.4.3寄存器

    寄存器(register):用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果,它被广泛的用于各类数字系统和计算机中。其实寄存器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N位寄存器。 工程中的寄存器一般按计算机中字节的位数设计,所以一般有8位寄存器、16位寄存器等。

    对寄存器中的触发器只要求它们具有置1、置0的功能即可,因而无论是用同步RS结构触发器,还是用主从结构或边沿触发结构的触发器,都可以组成寄存器。一般由D触发器组成,有公共输入/输出使能控制端和时钟,一般把使能控制端作为寄存器电路的选择信号,把时钟控制端作为数据输入控制信号。

    寄存器的应用

    a)可以完成数据的并串、串并转换;

    b)可以用做显示数据锁存器:许多设备需要显示计数器的记数值,以8421BCD码记数,以七段显示器显示,如果记数速度较高,人眼则无法辨认迅速变化的显示字符。在计数器和译码器之间加入一个锁存器,控制数据的显示时间是常用的方法。

    c)用作缓冲器;

    d)组成计数器:移位寄存器可以组成移位型计数器,如环形或扭环形计数器。

     

    2 FPGA/CPLD中的一些设计方法
    2.1 FPGA设计中的同步设计

    2.1.1同步电路和异步电路的区别是什么?

    同步:存储电路中所有触发器时钟输入接同一个时钟源,所有触发器的状态的变化与所加的时钟脉冲信号同步。

    异步:电路无统一时钟,触发器的时钟输入与时钟脉冲源相连,状态变化与时钟同步,其他触发器状态变化不同步

    2.1.2单个时钟域设计方法

    a)所有的数据都要通过组合逻辑和延时单元,典型的延时单元是触发器,这些触发器被一个时钟信号所同步;

    b)延时总是由延时单元来控制,而不是由组合逻辑来控制;

    c)组合逻辑所产生的信号不能在没有通过一个同步延时单元的情况下反馈回到同一个组合逻辑;

    d)时钟信号不能被门控,必须直接到达延时单元的时钟输入端,而不是经过任何组合逻辑;

    e)数据信号必须只通向组合逻辑或延时单元的数据输入端。

    2.1.3多个时钟域设计方法

    把通过两个不同时钟作用区域之间的信号作为异步信号处理

    2.2 FPGA设计中的延时电路的产生
    在日常的电路设计中,有时候我们需要对信号进行延时处理来适应对外接口的时序关系,最经常也是最典型的情况是做处理机的接口;因为与处理的接口时序关系是异步的,而一个规范的 FPGA 设计应该是尽可能采用同步设计。那么遇到这种情况该如何处理呢?
    首先在 FPGA 中要产生延时,信号必须经过一定的物理资源。在硬件描述语言中有关键词 Wait for xx ns,需要说明的是该语法是仅仅用于仿真而不能用于综合的,可综合的延时方法有:

    首先说说异步电路的延时实现:异步电路一半是通过加buffer、两级与非门等,但这是不适合同步电路实现延时的。在同步电路中,对于比较大的和特殊要求的延时,一半通过高速时钟产生计数器,通过计数器来控制延时;对于比较小的延时,可以通过触发器打一拍,不过这样只能延迟一个时钟周期。

    注意:当使用多级非门的时候综合器往往会将其优化掉, 因为综合器会认为一个信号非两次还是它自己。

    2.3系统最高速度计算(最快时钟频率)和流水线设计思想

    同步电路的速度是指同步系统时钟的速度,同步时钟愈快,电路处理数据的时间间隔越短,电路在单位时间内处理的数据量就愈大。假设Tco是触发器的输入数据被时钟打入到触发器到数据到达触发器输出端的延时时间;Tdelay是组合逻辑的延时;Tsetup是D触发器的建立时间。假设数据已被时钟打入D触发器,那么数据到达第一个触发器的Q输出端需要的延时时间是Tco,经过组合逻辑的延时时间为Tdelay,然后到达第二个触发器的D端,要希望时钟能在第二个触发器再次被稳定地打入触发器,则时钟的延迟必须大于TcoTdelayTsetup,也就是说最小的时钟周期Tmin =TcoTdelayTsetup,即最快的时钟频率Fmax =1/TminFPGA开发软件也是通过这种方法来计算系统最高运行速度Fmax。因为TcoTsetup是由具体的器件工艺决定的,故设计电路时只能改变组合逻辑的延迟时间Tdelay,所以说缩短触发器间组合逻辑的延时时间是提高同步电路速度的关键所在。由于一般同步电路都大于一级锁存,而要使电路稳定工作,时钟周期必须满足最大延时要求。故只有缩短最长延时路径,才能提高电路的工作频率。可以将较大的组合逻辑分解为较小的N块,通过适当的方法平均分配组合逻辑,然后在中间插入触发器,并和原触发器使用相同的时钟,就可以避免在两个触发器之间出现过大的延时,消除速度瓶颈,这样可以提高电路的工作频率。这就是所谓"流水线"技术的基本设计思想,即原设计速度受限部分用一个时钟周期实现,采用流水线技术插入触发器后,可用N个时钟周期实现,因此系统的工作速度可以加快,吞吐量加大。注意,流水线设计会在原数据通路上加入延时,另外硬件面积也会稍有增加。

    2.4 FPGA中的时钟设计

    无论是用离散逻辑、可编程逻辑,还是用全定制硅器件实现的任何数字设计,为了成功地操作,可靠的时钟是非常关键的。设计不良的时钟在极限的温度、电压或制造工艺的偏差情况下将导致错误的行为,并且调试困难、花销很大。在设计 FPGA时通常采用几种时钟类型。时钟可分为如下四种类型:全局时钟、门控时钟、多级逻辑时钟和波动式时钟。多时钟系统能够包括上述四种时钟类型的任意组合。
    无论采用何种方式,电路中真实的时钟树也无法达到假定的理想时钟, 因此我们必须依据理想时钟, 建立一个实际工作时钟模型来分析电路, 这样才可以使得电路的实际工作效果和预期的一样。 在实际的时钟模型中, 我们要考虑时钟树传播中的偏斜、 跳变和绝对垂直的偏差以及其它一些不确定因素。对于寄存器而言,当时钟工作沿到来时它的数据端应该已经稳定,这样才能保证时钟工作沿采样到数据的正确性, 这段数据的预备时间我们称之为建立时间(setup time)。数据同样应该在时钟工作沿过去后保持一段时间,这段时间称为保持时间(hold time)。因此具体的时钟如图 5 所示。 其中网络延迟是指时钟的传播延时以及因为跳变不垂直等效的偏差, 在此基础上考虑一些不确定因素实际的工作时钟沿如图中所示。 保持时间(hold)和建立时间
    setup)都是相对于实际时钟跳变而言的。因此在确定电路时序时,必须要考虑到这些因素,使得建立时间和保持时间符合要求。

     

     5 工作时钟模型

    为了使电路正常工作,建立时间和保持时间应该分别满足:
    thold +tskew < tclock _Q _ min + tlogic _min

    tclock > tclock _Q _ max + tlogic _ max + tsetup + tskew

    其中tclock_Q_max是时钟沿变化到数据输出端变化的最慢变化情况, tlogic_max是寄存器间组合逻辑的最大可能延迟, tclock_Q_min和tlogic_min表示最快情况。在考虑建立保持时间时,应该考虑时钟树向后偏斜的情况,在考虑建立时间时应该考虑时钟树向前偏斜的情况。在进行后仿真时,最大延迟用来检查建立时间,最小延时用来检查保持时间。

    2.6.1 全局时钟
    对于一个设计项目来说,全局时钟(或同步时钟)是最简单和最可预测的时钟。在
    FPGA 设计中最好的时钟方案是:由专用的全局时钟输入引脚驱动的单个主时钟去钟控
    设计项目中的每一个触发器。只要可能就应尽量在设计项目中采用全局时钟。FPGA 都
    具有专门的全局时钟引脚,它直接连到器件中的每一个寄存器。这种全局时钟提供器件中最短的时钟到输出的延时。
     1 定时波形示出触发器的数据输入 D[1..3]应遵守建立时间和保持时间的约束条件。建立和保持时间的数值在FPGA数据手册中给出,也可用软件的定时分析器计算出来。如果在应用中不能满足建立和保持时间的要求,则必须用时钟同步输入信号

     

     1全局时钟

    2.6.2 门控时钟
    在许多应用中,整个设计项目都采用外部的全局时钟是不可能或不实际的。FPGA 具有乘积项逻辑阵列时钟(即时钟是由逻辑产生的),允许任意函数单独地钟控各个触发器。然而,当你用阵列时钟时,应仔细地分析时钟函数,以避免毛刺。
    通常用阵列时钟构成门控时钟。门控时钟常常同微处理器接口有关,用地址线去控制写脉冲。然而,每当用组合函数钟控触发器时,通常都存在着门控时钟。如果符合下述条件,门控时钟可以象全局时钟一样可靠地工作:

    a)驱动时钟的逻辑必须只包含一个“ 与”门或一个“或”门。如果采用任何附加逻在某些工作状态下,会出现竞争产生的毛刺。

    b)逻辑门的一个输入作为实际的时钟,而该逻辑门的所有其它输入必须当成地址或
    控制线,它们遵守相对于时钟的建立和保持时间的约束。

    2.6.3 多级逻辑时钟
    当产生门控时钟的组合逻辑超过一级(即超过单个的“与”门或“或”门)时,证设计项目的可靠性变得很困难。即使样机或仿真结果没有显示出静态险象,但实际上仍然可能存在着危险。通常,我们不应该用多级组合逻辑去钟控FPGA设计中的触发器。
     7 给出一个含有险象的多级时钟的例子。时钟是由 SEL 引脚控制的多路选择器输出的。多路选择器的输入是时钟(CLK)和该时钟的 2 分频(DIV2)。 由图 7 的定时波形图看出, 在两个时钟均为逻辑 1 的情况下,当 SEL 线的状态改变时,存在静态险象。险象的程度取决于工作的条件。 多级逻辑的险象是可以去除的。 例如, 你可以插入“冗余逻辑”到设计项目中。然而,PLD/FPGA 编译器在逻辑综合时会去掉这些冗余逻辑,使得验证险象是否真正被去除变得困难了。为此,必须应寻求其它方法来实现电路的功能。

     

     7 有静态险象的多级时钟

    2.6.4行波时钟
    另一种流行的时钟电路是采用行波时钟,即一个触发器的输出用作另一个触发器的时钟输入。如果仔细地设计,行波时钟可以象全局时钟一样地可靠工作。然而,行波时钟使得与电路有关的定时计算变得很复杂。行波时钟在行波链上各触发器的时钟之间产生较大的时间偏移,并且会超出最坏情况下的建立时间、保持时间和电路中时钟到输出的延时,使系统的实际速度下降。
    用计数翻转型触发器构成异步计数器时常采用行波时钟,一个触发器的输出钟控下一
    个触发器的输入,参看图 9同步计数器通常是代替异步计数器的更好方案,这是因为两者需要同样多的宏单元而同步计数器有较快的时钟到输出的时间。 图 10 给出具有全局时钟的同步计数器, 它和 图 9功能相同,用了同样多的逻辑单元实现, 却有较快的时钟到输出的时间。几乎所有 FPGA开发软件都提供多种多样的同步计数器。

    展开全文
  • 今天看到一位博主关于以上几者之间的关系,觉得他总结的很精辟。然后重新翻了了一遍数电书。  博主的文中有一段总结“晶体管—门电路—组合逻辑电路(锁存器)—时序逻辑电路(触发器寄存器)”的总结。我觉得很...

      今天看到一位博主关于以上几者之间的关系,觉得他总结的很精辟。然后重新翻了了一遍数电书。

      博主的文中有一段总结“晶体管—门电路—组合逻辑电路(锁存器)—时序逻辑电路(触发器,寄存器)”的总结。我觉得很好总结了数电书的前半部分。

      以前常常混淆寄存器,触发器,锁存器等概念,重新看一遍书后,概念要清晰的多,一下引用《数字电子技术基础》第五版的部分内容。一下简称数电

    1.集体管和门电路是数电中前面着重讲的基础,他是构成数字的电路的基本单元,重要性不言而喻。其中主要分为两大类门电路:CMOS门电路与TTL门电路,对应的就有CMOS器件与TTL器件(芯片),书中着重讲了两种电路的基本单元组成——反相器。分析其工作原理,静态输入特性和输出特性,动态性能。留心的人或者正在参加工作的人可以发现书中的其实就给你很好解释了芯片资料上的一些内容。包括一些常见参数的定义。

    2.组合逻辑电路,核心是与非门。构建了一个场景,抽离出他的逻辑关系,根据逻辑关系简化逻辑函数,最后得到逻辑电路图,这很古老的也是最基础的逻辑电路的设计方式,这项工作目前基本被EDA软件取代。这是以前上数电课比较头疼的位置,后来发现大篇幅讲了的逻辑电路后,引出了SR锁存器,虽然把他归在了触发器一章,但是SR锁存器(latch)的实质还是组合逻辑电路,一句话解释就是只要输入变化,输出就会变化。同时组合逻辑相对时序逻辑电路更容产生竞争—冒险。

    3.时序逻辑电路,与组合逻辑电路相比较引入了时间(CLK)的概念,前提都是有时钟信号(CLK)的作用。

      在SR锁存器的前级引入CLK信号与S和R与非,就形成一个受CLK控制的SR触发器(电平触发);

      将两个SR触发器一前一后构成主从SR触发器;

      将主从SR触发器的输出级交叉介入输入级得到主从JK触发器(脉冲触发,在下降沿或者上升沿触发,有效电平内主触发器的装药可以发生多次翻转);

      将SR触发器的SR端连在一起成为D触发器(电平触发);

      将主从JK触发器两个输入端合并为一个输入构成T触发器;

    这些都是建立在电平触发的SR触发器的基础上的。但为了提高触发器的可靠性(只在时钟边沿改变状态),就有了边沿触发器。也是目前常用的类型,包括有两个电平触发构成的边沿触发器,维持阻塞触发器等。

    总结一下按触发方式划分有:电平触发(主从SR触发器),脉冲触发(主从JK触发器),边沿触发(由两个电平触发构成)

    按功能划分:SR触发器,JK触发器,T触发器,D触发器

    这两者之间是有交差的。目前常用的触发器产品只有JK触发器和D触发器两大类。(由功能上JK触发器覆盖SR和T触发器)

     

    转载于:https://www.cnblogs.com/tangbo2018/p/10393968.html

    展开全文
  • 图解寄存器与内存

    2020-09-24 18:47:26
    现在就用一张图来展示一下它们之间的关系寄存器 寄存器是用于存储二进制数的逻辑部件,一个触发器可以存储1位二进制数据,存储N位二进制 CPU访问寄存器时,只要找到相关的位进行读取就可以了,所以访问速度是...

    寄存器与内存比较

    初学单片机的时候,由于没有看过计算机相关的知识,很难理解寄存器是个什么东西。内存虽在生活中常常被提到,但一和寄存器放一块就显得有点混乱了。现在就用一张图来展示一下它们之间的关系。

    寄存器

    寄存器是用于存储二进制数的逻辑部件,一个触发器可以存储1位二进制数据,存储N位二进制数据的寄存器需要N个触发器组成。由8个触发器构成的8位寄存器的逻辑图如下图所示:

    在时钟CP上升作用下,D0D_0~D7D_7同时存入数据,当使能信号有效时,触发器存储的数据就可以通过三态门进行输出。
    由于寄存器是集成在CPU内部的,所以当CPU访问寄存器时,只要找到相关的位进行读取就可以了,访问速度自然很快。

    内存

    与寄存器不同,内存是独立于CPU之外的。CPU访问内存时,需要经历一系列过程,访问速度自然要比访问寄存器慢很多。例如,CPU要从内存中读取一条指令:首先内核先将代码中的逻辑地址送给内存管理单元(MMU),由MMU将逻辑地址转换成实际的物理地址,并通过地址总线传送到内存,定位出指令的存放位置;接着内存再将指令通过数据总线传送到缓存;最终CPU从缓存中取得指令。
    值得注意的是,缓存是CPU内部的一种存储器,可以存放好几条指令。在实际工作中,CPU往往一次性读取多条指令有序存放在缓存中。当CPU执行完缓存里存放的指令时,内存刚好又送来好几条指令,如此便能保证内存与CPU都维持在工作状态,工作效率就可以得到保证了。

    参考文献
    [1]康华光,电子技术基础 数字部分(第六版).北京:高等教育出版社,2014.1;

    展开全文
  •   FPGA中的时序分析就是分析时钟数据之间的关系。上图中,展示的是时序分析中最基本的模型,寄存器寄存器之间的时序分析模型。 建立时间分析 数据从输入到第一级寄存器到输入到第二级寄存器所需要经过的延时由...
  • 寄存器和时序逻辑什么关系。!!!!! 通过控制逻辑(时钟信号与地址为输入),控制存储器是否接受时钟信号控制,若接受,则存储器,实际就是钟控触发器(在上升沿时,触发器接受输入)。 见下图(指反映写情况
  • 各种锁存器与触发器之间的关系图 能够存储1位二值信号的基本单元电路统称为触发器(Flip-Flop)。 触发器需要具备两个特点:①具有两个能自行保持的稳定状态,01;②在触发信号操作下,根据输入可以置0或置1. ...
  • 我们可以看到在没有指定的情况下寄存器的映射都是随机的,那么问题来了,如何才能指定寄存器映射到IOB中呢?我们依然用异步复位D触发器的例子来给大家演示。
  • N个触发器或者锁存器,就可以组成一个N位(Bit)的寄存器,能够保存N位 数据。比方说,我们用64位Intel服务器,寄存器就是64位。 一个CPU里面会有很多种不同功能的寄存器。我这里给你介绍三种比较特殊
  • 3、任意两个存在直接或间接逻辑连接关系的起点终点之间都可以构成一条延迟路径,对所有延迟路径延迟量进行累加,最大延迟路径决定了系统最高工作时钟频率。 不理想主要表现在时钟抖动上,这时候需要将最大时钟...
  • 存储器读写出错,考虑的因数有哪些,个人...**建立时间(setup time)**是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器; **保持时间(hold ti
  • FPGA速度面积

    千次阅读 2016-10-18 17:03:16
    所谓速度,是指整个工程稳定运行所能够达到最高时钟频率,它不仅FPGA内部各个寄存器的建立时间、保持时间以及FPGA与外部器件接口各种时序要求有关,而且还两个紧邻的寄存器间(有紧密逻辑关系的寄存器...
  • 锁存器缓冲器区别

    2018-09-10 14:47:53
     缓冲器是跟随输入而输出随时输入保持一定关系(等于或相反)。其主要目的是加大负载,一般是一个(RJ/SK。。。)触发器。 缓冲寄存器又称缓冲器,它分输入缓冲器输出缓冲器两种。 前者作用是将外设送来...
  • 在相邻的寄存器之间的数据传输延迟,与时钟偏移应该满足一定的关系,在本节中,我们来详细地讨论其关系。 通过图1来看相邻寄存器之间传输的时候的数据延迟时钟偏移,以及详细的时序关系 图 1 两个相邻触发器...
  • 时钟复位是属于异步的关系 LUT查找表,所以的组合逻辑都是靠它生成,时序逻辑是靠触发器生成 一个LAB(单元)里面有16个LE(根据器件不同应该不同吧) RAM是FPGA里面的硬件资源 自分频的时钟是没法布到全局时钟...
  • 事先规划RTL结构

    2018-07-31 22:38:34
    事先规划RTL结构 ...对于组合逻辑,我们只需描述它输入输出的关系表达式(用if-elsecase语句)不必深究到底用怎样的逻辑门来实现,而对于D触发器,则是一定要做到心中有数,就是哪些变量会生成D触发器...
  • 1.8 C语言与硬件描述语言在算法运算电路设计的关系和作用 思考题 第二章 Verilog HDL设计方法概述 引言 2.1.硬件描述语言HDL 2.2.Verilog HDL的历史 2.2.1.什么是Verilog HDL 2.2.2.Verilog HDL的产生及...
  • Xilinx器件原语

    2015-07-08 22:01:00
    原语,其英文名为primitive,...原语在设计中可以直接例化使用,是最直接的代码输入方式,原语HDL原语的关系,类似于汇编语言C语言的关系。 Xilinx公司的原语按功能分为10类,包括计算组件、I/O端口组件、寄存器...
  • 因此在仿真和程序调试时,关心不再是某些语句执行时单片机寄存器和存储 器内容改变,而是从工程角度直接看程序运行和电路工作过程和结果。 对于这样仿真实验,从某种意义上讲,是弥补了实验和工程应用间...
  • GPIO工作模式 由于GPIO内部结构关系,决定了GPIO可配置成以下几种模式。输入模式 在输入模式时,施密特触发器打开,输出被禁止。可通过输入数据寄存器GPIOx_IDR读取I/O状态。输入模式可以配置为模拟、上拉、下拉...
  • GPIO工作模式 由于GPIO内部结构关系,决定了GPIO可配置成以下几种模式。输入模式 在输入模式时,施密特触发器打开,输出被禁止。可通过输入数据寄存器GPIOx_IDR读取I/O状态。输入模式可以配置为模拟、上拉、下拉...
  • 由于GPIO内部结构关系,决定了GPIO可配置成以下几种模式。 · 输入模式 · 在输入模式时,施密特触发器打开,输出被禁止。可通过输入数据寄存器GPIOx_IDR读取I/O状态。输入模式可以配置为模拟、上拉、下拉以及...
  • 由于GPIO内部结构关系,决定了GPIO可配置成以下几种模式。 输入模式 在输入模式时,施密特触发器打开,输出被禁止。可通过输入数据寄存器GPIOx_IDR读取I/O状态。输入模式可以配置为模拟、上拉、下拉以及浮空模式。...
  • A、计数器和全加器 B、寄存器和比较器 C、全加器和比较器 D、计数器和寄存器 7、异或门F=A B两输入端A、B中,A=0,则输出端F为() A、A B B、B C、 D、0 8、已知4个组合电路输出F1~F4函数式非别为:F1=AB+ C,...
  • (1) 把BX寄存器和DX寄存器内容相加,结果存入DX寄存器中。 (2) 用寄存器BX和S基址变址寻址方式把存储器中个字节与AL寄存器内容相加,并把结果送到AL寄存器中。 (3) 用寄存器BX和偏移量0BF2H寄存器相对...
  • verilog语言PDF教程

    热门讨论 2010-05-28 21:35:41
    6.3.4 边沿触发电平触发混合行为 51 6.4 另一实例 52 6.5 表项汇总 52 第7章 数据流模型化 54 7.1 连续赋值语句 54 7.2 举例 55 7.3 线网说明赋值 55 7.4 时延 55 7.5 线网时延 57 7.6 举例 57 7.6.1 主从触发器...
  • verilog基础教程

    热门讨论 2009-10-25 11:42:19
    6.3.4 边沿触发电平触发混合行为 51 6.4 另一实例 52 6.5 表项汇总 52 第7章 数据流模型化 54 7.1 连续赋值语句 54 7.2 举例 55 7.3 线网说明赋值 55 7.4 时延 55 7.5 线网时延 57 7.6 举例 57 7.6.1 主从触发器...

空空如也

空空如也

1 2
收藏数 31
精华内容 12
关键字:

寄存器和触发器的关系