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

循环语句的可综合性

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

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

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

8 u: k! @# m" }0 _& [

在这里,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,得到:

- [, k3 k  `; \

RTL视图(验证过程):

9 U8 t5 C9 b# Y1 }8 u' N

2.将基数加1,这里将端口数修改为8,得到:

RTL视图(验证过程):


) Q9 l, Z, @2 @

修改为端口数可定制的LPM模型

其RTL视图:


# r$ N2 J+ l* b" Z: \( _

现在将LPM的基数+1(修改端口指数PortNum_Power为4)

# u8 c& x, L- U4 K

其RTL视图:

1 z3 `/ _2 ^+ S- U9 _: z* {% M+ a3 o

以上就是循环语句构成二叉树异或门的过程,为了得到最终结果(64端口),将端口指数PortNum_Power=6,得到:

" R" R% o: j+ m% Q. V5 o

这里由于端口数过多,EDA的自动绘图需要中间过程,故首层仅展示如上部分。
! K) C/ Z# }  o/ Y; Y7 Q( o

循环语句可综合性的设计例子二:同步计数器的结构化设计

1.顶层框图


% y  L* \$ a3 I1 Y

. {" V* N  O% Z1 I7 P

2.代码和代码模型分析


- U% a* C! P' z% q

其RTL视图:

以上视图中,当rst_n=0时,多路器指向常数0;当rst_n=1时,多路器指向加法器的输出;注意加法器是寄存器的输出q与1相加。2 U% s6 P# O2 W* l1 s1 O3 w8 w: j

根据代码模型和RTL视图,可以得到等效节点模型:

若将复位信号的条件语句描述屏蔽,则得到RTL视图更接近节点等效:

* \& Q) C# H# w: @3 p0 a

3.计数器的数学模型

在RTL视图中,计数器有限自动机的加法器执行q+1(的描述),其真实的电路是得到优化和简化的一个数学模型:

若Q序列表示为:

在时钟离散时刻,Q的变化为:

时钟节拍

1 `8 r6 d! z3 U7 M

说明

0

0000_0000

& F/ X- V* ~1 o, B% Y& _; P+ S9 F

1

0000_0001


" P& ?2 _( @5 S! k. a

2

0000_0010

3 c7 r" f  N/ N) @" H2 j

3

0000_0011


* h+ O* w3 h! _2 q* o

4

0000_0100

# j. |' o2 J$ m( [) S' E

5

0000_0101

- t2 q% c! d  f; Q& u+ B. u

6

0000_0110


+ F9 d% C# R% m0 _- ~( `: e5 T

7

0000_0111


) i1 t9 w7 y7 e" ^) s

……

……

8 d% Z  v( d/ T

255

1111_1111


5 E% Y8 A/ z8 {3 F8 L4 K9 n

观察表格,能够发现Q的每一个比特位翻转的规律:

()

(, )

(, )

……

(, )

将触发翻转的条件(前级全部为1)采用级联以减少面积:

(,)

(, )

(, )

……

(, )

式中:

…….

注意位翻转的一般表达式: (, )

其真值表为:

+ ]- m' ^; n7 g) ?

, E, h/ y6 c3 F

/ L- \, D0 S* _+ |2 {2 z$ ]

说明

0

0

0

0 [/ U( P- ~" h5 T' E) Y

0

1

1


. R6 H* l5 ]3 ~, p9 @2 i8 x

1

0

1

: X6 s/ H# r, v3 {

1

1

0

9 U- D/ l1 I& R* U

其SOP为:

代入序列中,得到:

……

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

该用户从未签到

2#
发表于 2021-8-10 10:35 | 只看该作者
HDL的循环变量i是以常量进入循环体。算法语言则是以变量进入循环体。
! ]* u+ c6 }; g# v: A

该用户从未签到

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

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

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

: O0 Y$ u3 X# I8 u. X

该用户从未签到

4#
发表于 2021-8-10 11:22 | 只看该作者
循环语句的可综合性
$ T4 t1 T6 N+ m7 b# W
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-1 20:48 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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