当前位置:文档之家› 集成电路计算机辅助设计——时序电路集成电路计算机辅助设计——描述_国防科大

集成电路计算机辅助设计——时序电路集成电路计算机辅助设计——描述_国防科大

26
26
国防科技大学计算机学院
常见时序电路
移位器 计数器
27
国防科技大学计算机学院
27
例3 4位串行移位寄存器建模
4位串行移位寄存器原理图如下:
28
国防科技大学计算机学院
28
4位串行移位寄存器的两种描述
…… ……
并发执行产 生4组寄存器

……
只对变量d寄存 只产生一组寄存器╳
……
29
29
国防科技大学位
20
国防科技大学计算机学院
20
同步复位
always的敏感表中只有时钟沿信号:
always@(posedge clk); always@(negedge clk);
可以设计出100%的同步时序电路,有利于时序 分析,其综合结果的频率往往较高; 有利于基于周期机制的仿真器进行仿真 可有效避免因复位电路毛刺造成的亚稳态和错误 ,增强了电路的稳定性。 但使用同步复位常会增加逻辑资源。 同步复位仅在时钟的有效沿生效, 复位信号长度大于时钟周期才能保证可靠复位。
37
国防科技大学计算机学院
37
奇数分频
例8:对源时钟做3分频,要求3分频时钟占空 比为50% ..\verilog_example\clk_3div.v ..\verilog_example\clk_3div_tb.v
38
国防科技大学计算机学院
38
线性反馈移位寄存器——LFSR建模
线性反馈移位寄存器(LFSR) ——是一种时序移位寄存器,利用组合反馈逻辑生成 相应的伪随机二进制数列。 在数字电路设计中被广泛使用。典型应用如计数器 、伪随机数产生器、数据压缩、数据加解密、数据 完整性检查等。相同的功能使用LFSR实现,面积和 速度上都有明显优势。 —— n位LFSR是由n个触发器构成的寄存器链和某些节 点反馈回路组成。反馈回路逻辑选择XOR或XNOR, 可互换。选择合适的反馈节点,一般可实现长度 <=2n-1的伪随机序列。
国防科技大学计算机学院
5
如何描述时序逻辑电路?
定义存储单元
VerilogHDL通过定义寄存器变量为存储单元建模,对于 该寄存器变量赋值只能使用过程赋值(always)语句。
考虑存储单元的复位方式、置位条件 时钟控制方式
always语句的事件控制列表中posedge(正沿)或negedge (负沿)、电平触发
41
国防科技大学计算机学院
8位LFSR一对多原理图
对于一对多结构,如果hi=1,则第i+1级 的输入由xn和第i级输出xi异或形成,否则 第i+1级的输入为xi
42
国防科技大学计算机学院
42
n位多对一的LFSR
43
国防科技大学计算机学院
43
8位LFSR多对1原理图
对于多对一结构,第0级的输入由xn和hi=1的 节点的输出xi异或形成,而第i+1级的输入为xi
…… always @( posedge clk or negedge Reset
or posedge Set)//带异步复位、异步置位的寄存器 if (~Reset) Q <= 1’b0; else if (Set) Q <= 1’b1; else Q <= D;
17
国防科技大学计算机学院
17
慎用Latch
FlipFlop(边沿)
data
clk
tsu
th
9
国防科技大学计算机学院
9
两种基本存储单元的描述
10
国防科技大学计算机学院
10
Latch的时序
gate d q
11
国防科技大学计算机学院
11
D_Flip-flop的时序
clk d q
12
国防科技大学计算机学院
12
带复位端latch的描述
…… always @(En or D or Reset) if (~Reset) {Q, Q_bar} = 2’b01; 注意:组合逻 else if ( En ) {Q,Q_bar} = { D, ~D};辑通路描述 中,若分支描 …… 述结构中的描 述不满时,易 出现不必要的 D Q Latch,导致综 Latch Q_Bar 合结果错 En 误!!! Reset
33
国防科技大学计算机学院
33
例5 带使能端的同步置位递减计数器
module counter4(clk,load,enable,d,q); input clk,enable,load; input[3:0] d; output[3:0] q; reg[3:0] q; always@(posedge clk) if(!load|(~|q)) q<=d; else if(enable) q<=q-1; endmodule
将所有“=”换成“<=”即 可
y1,y2取值不稳 定,造成前后模 拟不一致
25
25
国防科技大学计算机学院
例2 将组合逻辑与时序逻辑分开描述
…… reg [16:0] A, B , C, E; reg [17:0] F; always @(posedge clk ) begin C = A + B; if ( C = = 16’hFF ) E = A – B; else E= C; F = E *2; end ……. 只对F产生寄存 …… reg [16:0] A, B , C, E; reg [17:0] F; always (A or B) 组合、时序逻 begin 辑分开描述 C = A + B; if ( C = = 16’hFF ) E = A – B; else E= C; end always @(posedge clk) F = E <<1; …….
22
国防科技大学计算机学院
22
异步复位、同步释放复位方式
// reset release circuit
reg reset_reg; always @ (posedge clk) rst_reg <= rst; always @ (posedge clk or negedge reset_reg) if (!rst_) begin …… end else
39
国防科技大学计算机学院
39
LFSR的分类
内异或结构(One-to-Many) 外异或结构( Many-to-One)
40
国防科技大学计算机学院
40
n位一对多的LFSR
hi=0表示触发器Di直接接收Di-1 的输出
LSFR的位长n和二 进制特征向量Taps (hn-1, hn-2,…,h1)
41
34
国防科技大学计算机学院
34
例6 同步十进制加法计数器
时钟输入,每来10个时钟有效沿输出一个脉冲。 ..\verilog_example\sync_counter_10.v ..\counter_10_wave.bmp
35
国防科技大学计算机学院
35
时钟分频器
偶数分频
只需实现一个时钟同步计数器,然后在相应的bit位抽 头即可
……
23
国防科技大学计算机学院
23
可综合时序逻辑编码要点
在描述组合逻辑的always块中使用阻塞赋值“=” ,则往往综合成组合逻辑电路; 在描述时序逻辑的always块中使用非阻塞赋值 “<=”,则综合成时序逻辑电路; 尽量将组合逻辑时序逻辑分开描述 在同一always块中建立时序和组合逻辑电路时 ,用非阻塞赋值。
15
国防科技大学计算机学院
15
同步复位、置位D触发器
always @(posedge clk)//带同步复位、同 //步置位的寄存器 if (~Reset) Q <= 1’b0; else if (Set) Q <= 1’b1; else Q <= D;
16
国防科技大学计算机学院
16
异步复位、置位D触发器
4
国防科技大学计算机学院
4
时序逻辑电路的分类
同步时序电路 所有存储单元状态变化都由同一时钟信号控制,比 较容易满足建立时间和保持时间的要求。 同步时序电路可以很好地避免毛刺 有利于器件移植 有利于静态时序分析(STA)和验证 异步时序电路 不存在全局时钟,各触发器翻转的时间不定,设计 复杂性增加,数据传输效率较低 电路的核心由组合逻辑实现,比如异步FIFO/RAM的 读写信号 最大的问题是容易产生毛刺,影响电路可靠性、稳 定性 同步设计原则 同步时序电路可以获得比异步时序电路更高的工作 5 可靠性和工作速度。
分类:
同步计数器 异步计数器
32
国防科技大学计算机学院
32
同步计数器的实现方法
最简单、直观的通用方式:用“+”或“-”常数1 算术操作;最终硬件由加法计数器或减法计数 器、寄存器实现; 使用LFSR。同样的功能,使用LFSR能得到速度 快、面积小很多的硬件实现。特别对大计数量 、位宽长的计数器而言。
同步时序设计中要慎用latch,尽量使用触发 器。 通过综合工具的综合报告可发现无意生成的 latch
18
国防科技大学计算机学院
18
组合电路与时序电路的描述对比
19
国防科技大学计算机学院
19
时序逻辑电路的复位操作
复位电路的重要性
仿真时使电路进入预知的初始状态 使真实电路状态进入初始态,可保证电路从错误状 态中恢复、可靠工作。
用阻塞赋值实现4位串行移位寄存器
Clk In
a
b
c
d
30
国防科技大学计算机学院
30
基本的移位寄存器
例4 实现一个8位带加载、复位和左、右移位 功能的移位寄存器。 ..\verilog_example\shift_reg.v
相关主题