EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在HDL的循环语句中,在指定的循环过程中,其代码块(循环体)输出同名信号,则构成顺序-循环(SAS-LOOP),其代码块(循环体)输出不同名信号,则构成并发-循环(CAS-LOOP)。 包括循环语句(含循环体)组成的代码块,EDA称为循环框架(Loop Frame)。
& J$ P1 y, U* e, u0 @
在这里,HDL循环语句与算法语言的循环语句的差异: 1.HDL的循环变量i是以常量进入循环体。算法语言则是以变量进入循环体。 2.HDL的循环体并不被循环执行,而是被重复描述(多次重复综合),从而实现建模的效率。算法语言的循环体则一定是被循环执行。 循环语句可综合性的“数学归纳法” 数学归纳法常用于证明数学序列,它的要点是: 1.首先证明序列的基数成立 2.假设序列为N时成立 3.证明序列的N+1成立 HDL的循环语句是否可综合,可以借用这个方法: 1.首先将循环语句的循环次数修改为一个很小的基数。由于在很小的基数时,其电路一定可以用结构化方法直接描述(不使用循环语句) 2.将基数加1,仍然可以是结构化描述,并加以验证 3.将基数修改为LPM参数可定制,使用循环语句描述,并加以验证 4.修改LPM定制参数,将其加1,观察其综合结果(验证) 通过以上步骤,可以证明所编写的HDL循环语句是可综合的,并且具有很高的综合效率。 循环语句设计例子:具有64个输入端口的8位异或电路: 使用“数学归纳法”为其使用循环语句建模和验证: 1.将基数(端口数)设定为4,得到: b2 R- }8 F5 e/ ]* M
RTL视图(验证过程):
9 M5 h @- |; T( ?' ~ 2.将基数加1,这里将端口数修改为8,得到: RTL视图(验证过程): & n! _$ c, U" T' Q8 O; I
修改为端口数可定制的LPM模型 其RTL视图: + j0 C0 B- a* q1 E
现在将LPM的基数+1(修改端口指数PortNum_Power为4) , r% N! e; U8 z
其RTL视图:
9 h1 E+ [( r; A2 Z' i! k* s$ ] 以上就是循环语句构成二叉树异或门的过程,为了得到最终结果(64端口),将端口指数PortNum_Power=6,得到: / y/ A$ f4 T1 F% c: L+ @
这里由于端口数过多,EDA的自动绘图需要中间过程,故首层仅展示如上部分。
/ X6 r5 j& P, S$ ]; W+ C* M 循环语句可综合性的设计例子二:同步计数器的结构化设计 1.顶层框图 , z0 a& F8 p& D6 I
/ ^6 `- I: W5 r$ h; d) J
2.代码和代码模型分析
! H$ s( h7 l1 p/ b. o 其RTL视图: 以上视图中,当rst_n=0时,多路器指向常数0;当rst_n=1时,多路器指向加法器的输出;注意加法器是寄存器的输出q与1相加。
+ U, d! B8 {* i5 g; w+ v$ T3 | ` 根据代码模型和RTL视图,可以得到等效节点模型: 若将复位信号的条件语句描述屏蔽,则得到RTL视图更接近节点等效: 1 _3 L! d9 Y+ ]+ P
3.计数器的数学模型 在RTL视图中,计数器有限自动机的加法器执行q+1(的描述),其真实的电路是得到优化和简化的一个数学模型: 若Q序列表示为: 在时钟离散时刻,Q的变化为: |
" n5 i2 T- C; E5 ~% C | | | 0000_0000 |
}, x! L4 {; o1 f5 y
| | 0000_0001 |
7 O3 u2 y! ]$ `
| | 0000_0010 |
/ Z+ }- l: V) T" e$ l
| | 0000_0011 | % ^* l( I1 Y3 X) ]! q
| | 0000_0100 |
F2 ~2 c! ` b% `4 N/ g0 G$ M
| | 0000_0101 | 0 @4 _: R* }( x- o+ N1 i( k
| | 0000_0110 |
2 ^, H; h9 d; L
| | 0000_0111 |
8 m3 o" z3 I0 D! `; _2 W7 n
| | …… |
2 k2 \) d9 {; g- S0 ], |
| | 1111_1111 |
, S9 p4 s. G- U+ { j
|
观察表格,能够发现Q的每一个比特位翻转的规律: () (, ) (, ) …… (, ) 将触发翻转的条件(前级全部为1)采用级联以减少面积: (,) (, ) (, ) …… (, ) 式中: ……. 注意位翻转的一般表达式: (, ) 其真值表为:
' i( v/ k9 b- x' M, u% }
| 6 W0 R: R8 D' {* H
| * I' W# J* f, |. R8 O, N
| | | | |
. A. B0 c4 @- x/ P5 Y# e
| | | |
7 G7 S) Z$ G4 n3 d: Z" t8 d
| | | |
, Z# \( [ u! D: l7 Z3 ?
| | | | + p" v$ e* |- M
|
其SOP为: 代入序列中,得到: …… 根据数学模型得到的代码模型为: |