寄存器,锁存器,触发器,存储器的区别



转自:http://blog.sina.com.cn/s/blog_56cbe89d01000bk4.html

           http://czhjchina.blog.163.com/blog/static/20027904720126611912858/

触发器:flipflop

锁存器:latch
寄存器:register
 
 触发器:包括锁存器和寄存器。
 锁存器:电平触发的存储单元,在有效电平时间里可以多次改变数据。
         优点是占触发器资源少,缺点是容易产生毛刺。
         在FPGA中用的很少,因为FPGA中触发器的资源非常丰富。
 寄存器:边沿触发的存储单元,在上升或下降沿数据变化,一个周期里只能变化一次。
 
去毛刺可以用格雷码计数器代替二进制码计数器,或者用D触发器同步的方法。
很好的EPLD学习网站: http://www.pld.com.cn/advance.htm
                    http://www.pld.com.cn/hdl/vhdl_example.htm
 ps:吴飞观点,触发器就是两个锁存器,触发器和寄存器差不多。
 
总结:其实不要管它是锁存器、寄存器还是触发器,只要按照datasheet,用VHDL语言真实反应出真值表的情况就可以了。因为发现有些datasheet中器件的叫法也不太规范,有混淆的嫌疑。


寄存器与存储器的区别

      现代的计算机主要包括三级存储,寄存器、内存储器和外存储器,存储数据的速率也依次递减。(外存储器不在本次讨论之中,姑且略过不讲)我们不妨将寄存器和 内存储器都抽象成一个大的数组,其中的每个元素都有一个字节(8位)大小,CPU寻址的时候就是以该元素为最小单位完成的。如前一个元素的地址是 0x1FFFFFF0的话,那么下一个元素的地址就是0x1FFFFFF1。我们可以理解为硬件构成上寄存器和内存储器也都是由一个8位大小的元器件线性 排列组成的,地址对应着上面讲到的数组中元素的地址。到这里也许你能明白我的意思了,抛开存储速率不谈,对面向软件开发的人来说寄存器和内存储器结构可以 看作是相同的,那它们有什么不同呢?

      当然是存储速率不同了!先别骂街……速率只是表面现象,寄存器与内存本质的区别还是物理结构的不同,寄存器是有DFF(D触发器)构成的,它起的只是暂时存储数据的作用;内存储器有MOS门和TTL门两种构成,有ROM和RAM两种。ROM是由厂家固定地制造的,又分为掩膜ROM,PROM,EPROM,EEROM。有用门电路组成的ROM(由厂家写入信息)和用二极管或熔断丝构成的可由用户写入信息的PROM等.....RAM可分为DRAM和SRAM两种。前者是由电容构成的必须及时刷新,SRAM由MOS门构成不必刷新...... 从在计算机内部的放置位置上说,寄存器是在主板上离CPU最近并且速度最快。内存在计算机主机内,当时在计算机设计时,速度一直提不高,后来把内存放在计算机内速度才得以质的飞跃达到100M以上。内存速度快,容量小,价格高。外存可以取出,如光盘,磁盘价格便宜,但速度慢,用于存放大量数据。。它们之间的具体区别跳过不讲,我只想让你知道二者之间在寻址原理上都是相同的!



你可能感兴趣的:(stm32开发)