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

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

3天内不再提示

浅谈条件语句的可综合性

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

扫码添加小助手

加入工程师交流群

条件语句的可综合性

HDL语言的条件语句与算法语言的条件语句,最大的差异在于:

1.不管条件:当前输入条件没有对应的描述,则该条件为不管条件(Don’tCare)。对应不管条件的信号称为不管信号

2.不选条件:多个条件分支中,未获得当前输入条件指向的分析,称为不选条件(Don’tSelect)。对应的信号称为不选信号。

不管不选发生时,HDL的综合器,将尽量维持原值,并且得到额外的生成结构。若无法用生成结构维持原值,则直接报错。根据行为语句的开节点ON/闭节点CN描述;部分条件PC/全部条件FC;以及条件分支的输出是否具有同名信号(线与WAND)或不同名信号(非线与Not_WAND),综合器将得到不同的处理结果。

开节点全部条件全部分支非线与描述

此时,全条件描述导致没有不管条件和不管信号。但全部分支非线与(即每一个条件分支语句输出不同名信号),将导致不选信号。对于不选条件不选信号,EDA将维持原值。生成结构为锁存器。

50a9776e-b2a3-11eb-bf61-12bb97331649.png

条件译码逻辑:

pIYBAGCbLLqAMuUNAAATUZNF6dE149.png

RTL视图:(QuartusII)

50d462da-b2a3-11eb-bf61-12bb97331649.png

这里的译码逻辑为:

50dddacc-b2a3-11eb-bf61-12bb97331649.png

一般性的代码模型分析:

左侧为代码块,全条件描述不存在不管条件,全部分支非线与存在不选条件和不选信号,EDA需要为这些不选信号生成锁存器,用于维持原值。右侧为其代码模型:

50ec746a-b2a3-11eb-bf61-12bb97331649.png

结论:开节点全部条件全部输出非线与的HDL描述,将得到的结构

闭节点全部条件全部分支非线与描述

综合分析:

1.闭节点描述将导致生成寄存器

2.全部条件描述,使得此时不存在不管条件

3.全部分支输出非线与,将导致不选条件/不选信号。这些不选信号需要维持原值。

4.由于此时已经输出末端已经得到有记忆的寄存器,因此综合器此时将使用这些生成寄存器维持原值(不选信号)

例如:

5110e124-b2a3-11eb-bf61-12bb97331649.png

RTL视图(QuartusII):

51306292-b2a3-11eb-bf61-12bb97331649.png

这里译码逻辑为:

51703444-b2a3-11eb-bf61-12bb97331649.png

关于使用寄存器维持原值(不选信号/不管信号):

寄存器维持原值需要遵循两个互相矛盾的综合原则:

1.优化原则:寄存器使用其使能端维持原值,将导致时钟信号的路由产生逻辑,或者说时钟信号被加工,最终导致时钟偏斜参数的恶化,影响系统的最高速度。因此,综合器将尽量避免寄存器使用使能端。

2.原创原则:综合器根据代码模型分析,和实际的物理实现,必然需要对已经的描述的代码进行加工和修改,最典型的例子就是生成结构(生成锁存器,生成寄存器)。但过多的生成结构,将导致最终实现的电路可能与设计者的愿望相悖。因此,综合器将尽量避免生成结构。

除了使用使能端维持寄存器原值,另一个产生生成结构的方法则是多路器闭环:

51a6e638-b2a3-11eb-bf61-12bb97331649.png

一般性的代码模型分析:

51c4ee76-b2a3-11eb-bf61-12bb97331649.png

结论:闭节点全部条件全部分支输出非线与描述,将得到的结构。注意此时综合器在寄存器维持原值时,可能产生时钟优化原则和原创原则的选择。

5.3开节点全部条件全部分支线与描述

综合分析:

1.全部条件避免了不管条件

2.全部分支线与(所以分支输出同名信号),综合器为了避免短路,将生产多路器。

注意此时没有生成锁存器。

51e163f8-b2a3-11eb-bf61-12bb97331649.png

RTL视图:

5217cff6-b2a3-11eb-bf61-12bb97331649.png

一般性代码模型分析:

5237d670-b2a3-11eb-bf61-12bb97331649.png

结论:开节点全部条件全部输出线与描述,将得到<多路器输出>结构。

注意这里没有锁存器,虽然有不选信号,但这些不选信号被多路器屏蔽。

编辑:jq

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

    关注

    31

    文章

    5589

    浏览量

    129073
  • HDL
    HDL
    +关注

    关注

    8

    文章

    331

    浏览量

    48815
  • 锁存器
    +关注

    关注

    8

    文章

    952

    浏览量

    43847
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73151

原文标题:FPGA学习:条件语句的可综合性

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

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

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

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

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

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

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

    详解TIA Portal SCL编程语言中的IF语句

    IF 语句是编程中最基本和最重要的控制结构之一,它的主要作用是根据条件决定程序的执行路径,IF 语句是编程中实现逻辑判断和决策的基础。
    的头像 发表于 05-24 15:01 1447次阅读
    详解TIA Portal SCL编程语言中的IF<b class='flag-5'>语句</b>

    比斯特电池组综合性能测试机:关键功能模块剖析

    在电池技术飞速发展的现在,确保电池组的质量与安全是重中之重。比斯特电池组综合性能测试机作为一款专为电池组打造的高性能测试设备,在其中扮演着不可或缺的角色。它通过一系列精心设计的关键功能模块,多方位、精确地对电池组进行测试。下面我们就来深入了解这些关键功能模块及其具体作用。
    的头像 发表于 04-24 10:45 432次阅读
    比斯特电池组<b class='flag-5'>综合性</b>能测试机:关键功能模块剖析

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

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

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

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

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

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

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

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

    比斯特BT-100V20C100F 电池组综合性能测试机:助力锂电池生产效率与质量双提升

    在竞争激烈的锂电池市场中,企业既要追求产品的高质量,又要保证高效的生产效率,而比斯特BT-100V20C100F 电池组综合性能测试机的出现,完美地契合了这两方面的需求,成为了助力企业实现生产效率与质量双提升的关键所在。
    的头像 发表于 03-06 09:57 635次阅读
    比斯特BT-100V20C100F 电池组<b class='flag-5'>综合性</b>能测试机:助力锂电池生产效率与质量双提升

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

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

    浅谈DFT设计的工作原理

    在芯片设计的世界里,有一种被称为"火眼金睛"的技术,它就是DFT(Design for Testability,设计)。今天,就让我们一起揭开这项技术的神秘面纱,看看它是如何成为芯片质量的守护神的。
    的头像 发表于 03-01 09:49 1548次阅读
    <b class='flag-5'>浅谈</b>DFT<b class='flag-5'>可</b>测<b class='flag-5'>性</b>设计的工作原理

    行业首批增程器综合性能认证结果公布

    近日,中国汽车工程研究院股份有限公司(中国汽研)与中国质量认证中心有限公司联合发布了行业首批增程器综合性能认证结果。这一举措在增程式电动汽车领域引起广泛关注,为消费者购车提供了重要参考依据。 随着
    的头像 发表于 02-07 17:42 1085次阅读