找回密码
 注册
关于网站域名变更的通知
查看: 447|回复: 3
打印 上一主题 下一主题

循环语句的可综合性

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-8-10 09:31 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

说明

0

0000_0000


  }, x! L4 {; o1 f5 y

1

0000_0001


7 O3 u2 y! ]$ `

2

0000_0010


/ Z+ }- l: V) T" e$ l

3

0000_0011

% ^* l( I1 Y3 X) ]! q

4

0000_0100


  F2 ~2 c! `  b% `4 N/ g0 G$ M

5

0000_0101

0 @4 _: R* }( x- o+ N1 i( k

6

0000_0110


2 ^, H; h9 d; L

7

0000_0111


8 m3 o" z3 I0 D! `; _2 W7 n

……

……


2 k2 \) d9 {; g- S0 ], |

255

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

说明

0

0

0


. A. B0 c4 @- x/ P5 Y# e

0

1

1


7 G7 S) Z$ G4 n3 d: Z" t8 d

1

0

1


, Z# \( [  u! D: l7 Z3 ?

1

1

0

+ p" v$ e* |- M

其SOP为:

代入序列中,得到:

……

根据数学模型得到的代码模型为:

该用户从未签到

2#
发表于 2021-8-10 10:35 | 只看该作者
HDL的循环变量i是以常量进入循环体。算法语言则是以变量进入循环体。
  I: {  W# ~1 ^- L" u7 C4 ~! w

该用户从未签到

3#
发表于 2021-8-10 10:58 | 只看该作者

在HDL的循环语句中,在指定的循环过程中,其代码块(循环体)输出同名信号,则构成顺序-循环(SAS-LOOP),其代码块(循环体)输出不同名信号,则构成并发-循环(CAS-LOOP)。

包括循环语句(含循环体)组成的代码块,EDA称为循环框架(Loop Frame)。


- b% H1 L. E. e7 W: I# j

该用户从未签到

4#
发表于 2021-8-10 11:22 | 只看该作者
循环语句的可综合性
+ a) q1 w) T" J/ u/ J+ K8 K
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-9 06:25 , Processed in 0.156250 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表