注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
捍卫真理的个人空间 https://home.eeworld.com.cn/space-uid-370731.html [收藏] [复制] [分享] [RSS]
日志

Verilog HDL---复杂数字系统的构成

已有 1364 次阅读2011-11-10 14:14 |个人分类:FPGA|

1.运算部件和数据流动的控制逻辑

1)数字逻辑电路的种类

1)组合逻辑;

2)时序逻辑;

同步有限状态机是同步时序逻辑的基础。所谓同步有限状态机是电路状态的变化只能在同一时钟跳变沿时刻发生的逻辑电路。而状态是否发生变化还要看输入条件。如输入条件满足,当时钟跳变沿到来时刻,则进入下一状态;否则即使时钟不断跳变,电路系统仍停留在原来的状态。利用同步有限状态机可以设计出极其复杂灵活的数字逻辑电路系统,产生各种有严格时序和条件要求的控制信号波形,有序地控制计算逻辑中数据的流动。

2)数字逻辑电路的构成

1)组合逻辑:由与、非、或门组成的网络。(多路器、数据同路开关、加法器、乘法器等)

2)时序逻辑:由多个触发器和多个组合逻辑块组成的网络。(计数器、复杂的数据流动控制逻辑、运算控制逻辑、指令分析和操作控制逻辑)

同步时序逻辑是设计复杂的数字逻辑系统的核心。时序逻辑借助状态寄存器记住它目前的所处的状态。在不同的状态下,即使所有的输入都是相同,其输出也不一定相同。

2.数据在寄存器中的暂时保存

保留稳定的值

3.数据流动的的控制

在计算电路中设有许多寄存器组,它们是用来暂存运算的中间数据。对寄存组之间数据进行精确的控制,在算法的实现过程中有着极其重要的作用。这种控制是由同步状态机实现的。

如果能设计出一个状态即,在这个状态机的控制下生成一系列的开关信号,严格按时钟的来开启或关闭数据通道,就能用硬件来构成复杂的计算逻辑。如果硬件的规模可以达到几十到几千万门,就可以设计出并行度很高的高速计算逻辑。

4.Verilog HDL 设计中启用同步时序逻辑

同步时序逻辑是指表示状态的寄存器组的值只可能在唯一确定的触发条件发生时刻改变,只能由时钟正跳沿或负跳沿触发的状态机就是一例。

同步时序逻辑比异步时序逻辑具有更可靠、更简单的逻辑关系。

1)全局时钟网络布线时尽量使各分支的时钟一致。

2)采用平衡树结构,在每一级加入缓冲器。使到达每个触发器时钟端的时钟同步。

5.数据接口的同步方法

介绍3种不同情况下的数据接口的简单同步方法:

1)前级(如另外一个芯片、PCB布线、驱动接口原件)输出的延时是随机的,或者有可能变动,如何在后级完成数据的同步?

对于随机到达的数据,需要建立同步机制。可以采用使数据通过RAM或者FIFO的缓存再读取的方法,达到数据同步的目的。将前级芯片提供的时钟作为基本时钟,将数据写入RAM或者FIFO,然后使用后级的基本时钟产生读信号,将数据读出来即可。这种做法的关键是必须要有堆栈满和空的指示信号来管理数据的写入和读取,以防止数据的丢失。在FPGA中一般都提供参数化宏模块,如FIFO、双扣RAM,并有许多配置可供选择,可以用来作为数据同步只用。

2)数据有固定的帧格式,数据的起始位置如何确定?

通信系统中,数据往往是按照帧组织的。由于系统对时钟要求很高,常常设计专门时钟板来产生高精度的时钟。数据帧是有起始位置的,在数据正确接收之前,必须先完成数据的同步,即确定数据的“头”是从什么地方开始的。数据的同步采用的就是这种方法,即用同步头表示数据信号的起始,或者使用双口RAMFIFO来缓存数据再传送到下一级。找到数据头的方法有两种:一,增加一条表示数据起始位置的信号线;二,对于异步系统,则常常在数据中插入一段有特殊码型的同步吗(同步头),接收端通过相关运算检测到同步头。

3)级联的两个模块的基本时钟是异步时钟预的,如何把前级的输出的数据准确的传送到下一级模块中?

如果输入数据的节拍和本级芯片的处理时钟同频,可以直接用本级芯片的主时钟对输入数据寄存器采样,完成输入的同步;如果输入数据和本级芯片的处理时钟是异步的,特别当两个时钟频率不是由同一石英晶体分频产生的,则起码对输入数据做两次以上采样,其作用只是防止了数据状态不稳定的传播,使后级电路处理的数据都是有效电平。但是这种做法并不能保证两级寄存器采样后的数据是完全正确的电平,这种方式处理一般都会读入一定数量的错误数据。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章