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

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

3天内不再提示

三分钟教你快速处理没有使用的端口信号

Spinal FPGA 来源:Spinal FPGA 2023-03-06 14:11 次阅读

编 者 按

用DataAnalyzer快速处理没有使用到的端口信号

避不开的场景 如果熟悉SpinalHDL设计,那么都应该清楚在SpinalHDL设计里,如果输出端口没有给明确赋值的话,那么在生成RTL代码时会报错提示我们没有为端口赋值。想想如果你在设计一个AXI4的测试逻辑,但你并不需要使用里面的全部信号(要知道AXI4总线配置里面的哪个信号使用哪个不使用可使一大堆参数),如果想要做的模块在任何场景下都能直接连接使用的话,最早对于我没有使用的信号我是这么来处理的:

if(axi4Port.useRegion)axi4Port.clearAll()
if(axi4Port.useLock) axi4Port.lock.clear()
……
是不是写起来很啰嗦?~ 还有一个场景就是在FPGA里面在制作PR版本时对于动态区和静态区之间的接口信号为了方便后续Impl版本的时序收敛,对于没有使用到的信号以及赋常值的信号都建议添加约束:

对于输入没有使用到的信号,内部定义一个寄存器来锁存信号,并把这个寄存器的属性设置为nopurne

对于暑促好信号,则建议将输出信号必须为reg类型,并将该输出信号配置为preserve属性。

对于这种使用不到的信号,一个个的follow这些原则不免有点儿太过于“体力活”~ 而在SpinalHDL里,我们可以通过DataAnalyzer来快速地实现这些没有使用到的端口信号。 》DataAnalyzer

考虑下面这个简单的模块:

5c4c2854-bbd5-11ed-bfe3-dac502259ad0.png

在这个模块里,对于输入的data1接口我们并没有用,而对于输出out2端口,我们也并没有输出赋值。

现在,如果我们想要实现针对PR那种场景的需求,我们可以通过DataAnalyzer来写一个通用的处理代码:

5c741c42-bbd5-11ed-bfe3-dac502259ad0.png

这里我们为模块添加一个PrePopTask。对于io里面的每个信号,都例化一个DataAnalyzer,对于接口为输入信号(port.isInput),并且其没有任何扇出信号(analysier.getFanOut.isEmpty),则将其赋值给一个寄存器,并对该寄存器添加“nopurne”属性。而如果接口信号为输出信号(port.isOutput),并且没有任何的信号给他赋值(analysier.getFanIn.isEmpty),则将其设置为寄存器,赋值为0并添加“preserve”属性。最终生成的代码:

5c9f333c-bbd5-11ed-bfe3-dac502259ad0.png

完全符合我们的需求~

结语

能省功夫就省功夫,在Boss的许可下,选择尽可能高效的工具,这周工作里修改一个Verilog代码,在SpinalHDL里面五分钟能实现的需求Verilog里改了小半天,极大打击工作热情~

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

    关注

    1631

    文章

    21807

    浏览量

    606760
  • 寄存器
    +关注

    关注

    31

    文章

    5377

    浏览量

    121403
  • 信号
    +关注

    关注

    11

    文章

    2811

    浏览量

    77195
  • 总线
    +关注

    关注

    10

    文章

    2909

    浏览量

    88499
  • 端口
    +关注

    关注

    4

    文章

    992

    浏览量

    32268

原文标题:三分钟教你快速处理没有使用的端口信号

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

收藏 人收藏

    评论

    相关推荐

    免费三分钟

    免费三分钟回拨电话,,绿色的,对号码有次数限制.有三分钟通话时长,,反其道而行不就又是三分钟,请各位灵活运用(见例)假如我的电话是1301309****,而我要打的电话是1386551****.把
    发表于 03-02 17:27

    职场启示: 三分钟碎片化

    也无法写好。 明白这一点,你就会意识到,有些工作的确需要大块的时间,但如果不是提前做够铺垫,这些大块的时间并不会有效率。 所以我自己的习惯是“五分钟方案法”。也就是说: 一份完整的方案=5分钟构思
    发表于 08-07 14:06

    让程序运行三分钟,停一分钟,循环下去,直到设置停止循环的位置

    本帖最后由 我想看看太阳 于 2022-6-9 11:52 编辑 让这个程序运行三分钟,停一分钟,循环下去,直到设置停止循环的位置,需要添加什么模块才能实现呢
    发表于 06-08 15:03

    三分钟让你明白电池为什么会鼓包

    三分钟让你明白电
    发表于 11-12 08:18 7.1w次阅读

    Inout双向端口信号处理方法

    Inout端口信号做输入时,观察例子中的输出Data_out_t就应该是高阻态的,Inout在具体实现上一般用态门来实现。态门的第个状态就是高阻''Z''。当Inout
    发表于 11-11 10:24 3918次阅读

    三分钟能做什么?三分钟能让我的iPhone6s重启N次!

    苹果系统是以稳定著称,不过这位网友发来求助,称自己的iPhone6s三分钟时间重启了N次。并且拍了视频,系统为IOS10.2.1。
    发表于 02-25 10:18 2597次阅读

    小米扫地机器人台湾开售 三分钟售罄

    首批小米扫地机器人于4月6日如约在台湾地区开售,售价8895台币(约合1915元人民币),开售三分钟,5000台扫地机器人在小米台湾官网即告售罄。
    发表于 04-07 10:45 1251次阅读

    三分钟快速回顾!11月无人机大事件

    三分钟快速回顾一下! 日本计划减少对中国无人机依赖 11月2日消息,日本为保护国家敏感信息数据安全,正计划在政府采购无人机时,排除与中企相关的产品,具体排除部分主要围绕信息技术、供应链、网络安全和知识产权等方面。与此同
    的头像 发表于 11-23 18:05 2460次阅读

    三分钟概述8类常用元器件资料下载

    电子发烧友网为你提供三分钟概述8类常用元器件资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
    发表于 03-28 08:40 6次下载
    <b class='flag-5'>三分钟</b>概述8类常用元器件资料下载

    Brocade帮助Netzlink实现三分钟云服务供应

    电子发烧友网站提供《Brocade帮助Netzlink实现三分钟云服务供应.pdf》资料免费下载
    发表于 08-29 10:12 0次下载
    Brocade帮助Netzlink实现<b class='flag-5'>三分钟</b>云服务供应

    快乐解说MCU:三分钟,带你了解低功耗MCU

    快乐解说MCU:三分钟,带你了解低功耗MCU
    的头像 发表于 09-18 10:56 1446次阅读

    三分钟实现MQTT协议网关串口连接菱FX3UPLC上传腾讯云

    三分钟实现MQTT协议网关串口连接菱FX3UPLC上传腾讯云
    的头像 发表于 10-23 16:23 1115次阅读
    <b class='flag-5'>三分钟</b>实现MQTT协议网关串口连接<b class='flag-5'>三</b>菱FX3UPLC上传腾讯云

    三分钟看懂雪崩光电二极管

    三分钟看懂雪崩光电二极管
    的头像 发表于 11-23 09:09 2130次阅读
    <b class='flag-5'>三分钟</b>看懂雪崩光电二极管

    三分钟了解飞创直线电机运动模组特点、选型及应用-FCL系列

    三分钟了解飞创直线电机运动模组特点、选型及应用-FCL系列
    的头像 发表于 02-05 16:28 690次阅读
    <b class='flag-5'>三分钟</b>了解飞创直线电机运动模组特点、选型及应用-FCL系列

    Node-RED初学者教程-三分钟学习

    通过这短短三分钟的教程,你已经掌握了Node-RED的基本操作。你可以利用Node-RED的强大功能来创建更复杂的数据流和自动化任务,无论是物联网应用、API集成还是数据处理。Node-RED简化了编程过程,让开发更直观、更高效。继续探索Node-RED,你会发现更多强大
    的头像 发表于 06-27 17:09 3368次阅读
    Node-RED初学者教程-<b class='flag-5'>三分钟</b>学习