0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简述HDL中循环语句的可综合性

电子工程师 来源:FPGA设计论坛 作者:FPGA设计论坛 2021-05-12 09:27 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

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

5ca8a4e0-b2a3-11eb-bf61-12bb97331649.png

在这里,HDL循环语句与算法语言的循环语句的差异:

1.HDL的循环变量i是以常量进入循环体。算法语言则是以变量进入循环体。

2.HDL的循环体并不被循环执行,而是被重复描述(多次重复综合),从而实现建模的效率。算法语言的循环体则一定是被循环执行。

循环语句可综合性的“数学归纳法”

数学归纳法常用于证明数学序列,它的要点是:

1.首先证明序列的基数成立

2.假设序列为N时成立

3.证明序列的N+1成立

HDL的循环语句是否可综合,可以借用这个方法:

1.首先将循环语句的循环次数修改为一个很小的基数。由于在很小的基数时,其电路一定可以用结构化方法直接描述(不使用循环语句)

2.将基数加1,仍然可以是结构化描述,并加以验证

3.将基数修改为LPM参数可定制,使用循环语句描述,并加以验证

4.修改LPM定制参数,将其加1,观察其综合结果(验证)

通过以上步骤,可以证明所编写的HDL循环语句是可综合的,并且具有很高的综合效率。

循环语句设计例子:具有64个输入端口的8位异或电路:

5cafbeb0-b2a3-11eb-bf61-12bb97331649.png

使用“数学归纳法”为其使用循环语句建模和验证:

1.将基数(端口数)设定为4,得到:

5cd11a38-b2a3-11eb-bf61-12bb97331649.png

RTL视图(验证过程):

5ce87926-b2a3-11eb-bf61-12bb97331649.png

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

5d04fccc-b2a3-11eb-bf61-12bb97331649.png

RTL视图(验证过程):

5d4cd948-b2a3-11eb-bf61-12bb97331649.png

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

其RTL视图:

5d762dc0-b2a3-11eb-bf61-12bb97331649.png

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

其RTL视图:

5db63e60-b2a3-11eb-bf61-12bb97331649.png

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

5dd86dbe-b2a3-11eb-bf61-12bb97331649.png

这里由于端口数过多,EDA的自动绘图需要中间过程,故首层仅展示如上部分。

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

1.顶层框图

5e07f64c-b2a3-11eb-bf61-12bb97331649.png

2.代码和代码模型分析

5e21c7b6-b2a3-11eb-bf61-12bb97331649.png

其RTL视图:

615056d2-b2a3-11eb-bf61-12bb97331649.png

以上视图中,当rst_n=0时,多路器指向常数0;当rst_n=1时,多路器指向加法器的输出;注意加法器是寄存器的输出q与1相加。

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

6172da40-b2a3-11eb-bf61-12bb97331649.png

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

618b06ba-b2a3-11eb-bf61-12bb97331649.png

3.计数器的数学模型

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

若Q序列表示为:

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

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

()

(, )

(, )

……

(, )

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

(,)

(, )

(, )

……

(, )

式中:

…….

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

其真值表为:

其SOP为:

代入序列中,得到:

……

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

61a7654e-b2a3-11eb-bf61-12bb97331649.png

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • eda
    eda
    +关注

    关注

    72

    文章

    3053

    浏览量

    181517
  • HDL
    HDL
    +关注

    关注

    8

    文章

    331

    浏览量

    48812
  • RTL
    RTL
    +关注

    关注

    1

    文章

    393

    浏览量

    62394
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73150
  • LPM
    LPM
    +关注

    关注

    0

    文章

    13

    浏览量

    10246

原文标题:FPGA学习:循环语句的可综合性

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    BT-100V100C系列电池组综合性能测试仪技术规格与应用解析

    比斯特100V100C系列电池组综合性能测试仪是专为7.2V-100V电池组、半成品和成品设计的精密测试设备。该设备采用模块化设计理念,集成了多项测试功能,为电池制造企业提供完整的质量控制解决方案。
    的头像 发表于 12-03 15:07 637次阅读

    比斯特电池组综合性能测试仪如何为安全与性能保驾护航

    在这个技术密集、竞争白热化的领域,能否通过最严苛的极限性能验证,是区分一流产品与平庸产品的试金石。比斯特电池组综合性能测试仪,以其应对复杂工况的强大能力及大幅缩短验证周期的杰出效率,成为了动力电池攻克技术难关的利器,更是企业打造主要产品竞争力、在全球市场决胜未来的战略基
    的头像 发表于 11-27 15:34 225次阅读

    PCBA 加工如何提高

    PCBA 直接影响产品可靠与良率,指元器件引脚或焊盘快速形成优质焊点的能力。若差,易出现虚焊、设备故障等问题。以下从全流程拆解
    的头像 发表于 11-06 14:40 172次阅读
    PCBA 加工<b class='flag-5'>中</b>如何提高<b class='flag-5'>可</b>焊<b class='flag-5'>性</b>?

    人工智能行业如何使用for循环语句进行循环

    : 支持range()函数生成数字序列 结合else语句使用 Java的for循环: 传统结构:for(初始化; 条件; 增量) 增强for循环
    的头像 发表于 09-10 12:55 394次阅读

    基础篇3:掌握Python的条件语句循环

    在Python编程语言中,条件语句循环是构成复杂逻辑和数据处理的基石。本篇基础教程将帮助您深入了解Python的条件语句循环结构,让您
    发表于 07-03 16:13

    合肥综合性国家科学中心能源研究院与宏微科技达成合作

    为深化产学研协同创新,推动科技创新和产业升级,近日,合肥综合性国家科学中心能源研究院与江苏宏微科技股份有限公司在智慧电力中心隆重举行“功率器件可靠评测方法和寿命预测联合实验室”签约揭牌仪式。江苏宏
    的头像 发表于 06-14 14:22 820次阅读

    深入理解C语言:C语言循环控制

    在C语言编程循环结构是至关重要的,它可以让程序重复执行特定的代码块,从而提高编程效率。然而,为了避免程序进入无限循环,C语言提供了多种循环控制
    的头像 发表于 04-29 18:49 1735次阅读
    深入理解C语言:C语言<b class='flag-5'>循环</b>控制

    比斯特BT-100V20C100F电池组综合性能测试机的测试流程

    比斯特BT-100V20C100F电池组综合性能测试机是一款先进的电池测试设备,旨在多方位评估电池组的性能和质量。该设备广泛应用于新能源汽车、储能系统和消费电子等领域,确保电池组在各种工况下的安全
    的头像 发表于 04-24 09:38 515次阅读
    比斯特BT-100V20C100F电池组<b class='flag-5'>综合性</b>能测试机的测试流程

    如何综合性测试一款电源芯片?——以ASP3605芯片为例

    引言 在现代电子系统,电源芯片是不可或缺的核心组件之一。其性能的优劣直接关系到整个电子设备的稳定性和可靠。因此,对电源芯片进行综合性的测试至关重要。本文以国科安芯生产的ASP3605芯片为例
    的头像 发表于 04-07 09:26 925次阅读

    NVIDIA Isaac 是英伟达推出的综合性机器人开发平台

    NVIDIA Isaac 是英伟达推出的综合性机器人开发平台,旨在通过 GPU 加速、物理仿真和生成式 AI 技术,加速自主移动机器人(AMR)、机械臂及人形机器人的开发与部署。以下从核心组件、技术
    的头像 发表于 04-02 18:03 1941次阅读

    FPGA Verilog HDL语法之编译预处理

    语句)。Verilog HDL编译系统通常先对这些特殊的命令进行“预处理”,然后将预处理的结果和源程序一起在进行通常的编译处理。
    的头像 发表于 03-27 13:30 1088次阅读
    FPGA Verilog <b class='flag-5'>HDL</b>语法之编译预处理

    比斯特电池组综合性能测试机:基于先进技术的性能优势展现

    在锂电池测试设备的领域中,比斯特BT-100V20C100F 电池组综合性能测试机凭借其基于先进技术构建的强大性能优势,脱颖而出,成为了行业内备受瞩目的焦点。
    的头像 发表于 03-07 09:49 514次阅读
    比斯特电池组<b class='flag-5'>综合性</b>能测试机:基于先进技术的性能优势展现

    比斯特BT-100V20C100F 电池组综合性能测试机:多领域的锂电池性能检测能手

    锂电池在众多领域都有着多方位且关键的应用,而比斯特BT-100V20C100F 电池组综合性能测试机凭借其出色的通用和专业,成为了各个领域中锂电池性能检测的得力能手。
    的头像 发表于 03-04 16:52 680次阅读
    比斯特BT-100V20C100F 电池组<b class='flag-5'>综合性</b>能测试机:多领域的锂电池性能检测能手

    技术干货驿站 ▏深入理解C语言:嵌套循环循环控制的底层原理

    大家好!在上一节,我们学习了C语言中的基本循环语句,如for、while和do...while循环。今天,我们将进一步探讨嵌套循环
    的头像 发表于 02-21 18:26 1041次阅读
    技术干货驿站  ▏深入理解C语言:嵌套<b class='flag-5'>循环</b>与<b class='flag-5'>循环</b>控制的底层原理

    可靠温度循环试验至少需要几个循环

    暴露于预设的高低温交替的试验环境中所进行的可靠试验。热循环试验适用于揭示评估由剪切应力所引起的“蠕变-应力释放”疲劳失效机理和可靠,在焊点的失效分析和评价方面应
    的头像 发表于 01-23 15:26 988次阅读
    可靠<b class='flag-5'>性</b>温度<b class='flag-5'>循环</b>试验至少需要几个<b class='flag-5'>循环</b>?