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

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

3天内不再提示

SpinalHDL中的一别两宽式设计方式介绍

冬至配饺子 ? 来源:Spinal FPGA ? 作者:玉骐 ? 2022-08-09 14:45 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在SpinalHDL里,其lib库处处可见Stream的身影,而在常用的逻辑设计里,尤其接口的处理中,握手信号的处理也是老生常谈的话题。而在接受设计里,SpinalHDL中的“一别两宽”式设计方式,着实让我赞同。

》》Stream

Stream本质上是一个带数据的握手协议:

pYYBAGLyAeeAQudEAABsdJZDejI825.png

在数字逻辑电路里,无论是普通的模块接口之间,还是标准的AMBA、Avalon等总线,都处处可见Stream的身影:

pYYBAGLyAgCACDW5AABltE0LoO4450.png

》》握手之殇,纠缠不清

无论是新手还是老手,对于Stream这种握手形式的逻辑处理还是挺烦的。Stream这种握手形式的逻辑仅仅是添加一级寄存器还是颇显得繁琐的,需要小心翼翼的处理。更遑论当设计里还牵涉到数据的处理。这种在处理功能逻辑的同时又要考虑握手信号的处理时在设计逻辑电路时还是显得颇头大的,毕竟“一心二用”还是颇有不便……

仔细想想,在接口信号处理时,功能性的设计往往是组合逻辑颇多,而为了更好的满足时序约束,往往需要添加寄存器来优化时序,单独处理或许并不显得复杂,但当把两者混在一块儿便极易“按起葫芦浮起瓢”,导致设计功能性错误了。倘若纠缠不清令人头大,那一别两宽呢?把功能逻辑和为了优化时序的pipeline分开岂不是设计极其简单。

》》Stream pipeline

Stream的pipeline处理在SpinalHDL里提供了很好的封装:

pYYBAGLyAiKATTnJAACkV2_B_dY034.png

Stream接口的pipeline里有三种类型:

m2sPipe: 为两个Stream接口之间的valid,payload之间添加一级寄存器。

s2mPipe:为两个Stream接口之间的ready路径添加一级寄存器。

s2mPipe().m2sPipe():在两个Stream接口之间的valid,payload、ready之间均添加一级寄存器。

上面的三种接口pipeline方式能够很好的满足接口中的时序优化。SpinalHDL里也提供了相应简单的连接符(箭头指向谁谁就是目的端)。关于这里面的源代码分析可参见文章《打个拍,握个手可以么》。

》》功能处理

有了前面Stream接口的pipeline方式,在Stream接口信号中的处理功能性逻辑时,我们便可以采用组合逻辑的方式进行处理。举个简单的例子,在逻辑设计里对输入的Stream信号中的payload如果大于0x80加1输出,小于0x80减1输出。那么这里便可以仅以组合逻辑的形式进行处理:

pYYBAGLyAj6ABHgvAAB4mVS2_oE958.png

在上面的逻辑处理里,整个设计均采用组合逻辑的形式进行处理。

》》合二为一

有了上面的那些,那么合二为一便很容易了。功能处理采用组合逻辑,时序处理采用pipeline。“一别两宽”之后,合二为一便好了:



》》写在最后

就个人使用来讲,在SpinalHDL的设计里,这种方式极大的简化了电路设计的复杂度。理解了Stream的使用,那么对于SpinalHDL中lib的大多数功能也能够有一个很好的了解与使用。


审核编辑:刘清

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

    关注

    31

    文章

    5439

    浏览量

    124932
  • AMBA
    +关注

    关注

    0

    文章

    70

    浏览量

    15499
  • 数字逻辑电路

    关注

    0

    文章

    106

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    振弦式应变计种数据传输方式介绍

    着数据采集的效率与可靠性。下面给大家介绍振弦式应变计种数据传输方式、有线传输:稳定可靠的传统方案有线传输是振弦式应变计最传统的数据传输方式
    的头像 发表于 07-15 13:38 ?111次阅读
    振弦式应变计<b class='flag-5'>两</b>种数据传输<b class='flag-5'>方式</b><b class='flag-5'>介绍</b>

    几种常见的开关电源工作原理

    、开关式稳压电源的基本工作原理 开关式稳压电源接控制方式分为调宽式和调频式种,在实际的应用,调宽式
    发表于 04-08 14:07

    是否可以用个独立的电源系统对ads8332分供模拟电源和数字电源,地与地之间互不相连?

    ads8332有数字地和模拟地之分。是否可以用个独立的电源系统对ads8332分供模拟电源和数字电源,地与地之间互不相连。 但是产品手册上说AGND和DGND之间的电势差必须小于0.3V
    发表于 01-14 06:56

    电子成像的耦合介绍

    本文介绍了直接耦合、间接耦合、反射耦合和光学耦合这几种电子成像的耦合方式,并介绍了它们各自的适用场景以及优缺点。 在电子成像的闪烁体耦合学习过程
    的头像 发表于 12-17 14:25 ?931次阅读

    芯片制造过程种刻蚀方法

    本文简单介绍了芯片制造过程种刻蚀方法 ? 刻蚀(Etch)是芯片制造过程相当重要的步骤。 刻蚀主要分为干刻蚀和湿法刻蚀。 ①干法刻蚀 利用等离子体将不要的材料去除。 ②湿法刻蚀
    的头像 发表于 12-06 11:13 ?1747次阅读
    芯片制造过程<b class='flag-5'>中</b>的<b class='flag-5'>两</b>种刻蚀方法

    常见人体姿态评估显示方式方式

    人体姿态评估中有种常见的显示方式,分别是火柴人效果与BodyPix效果。其中火柴人效果本质就是基于关键点的深度学习模型推理以后的显示效果;Bodypix本质就就是语义分割模型
    的头像 发表于 11-11 11:21 ?713次阅读
    常见人体姿态评估显示<b class='flag-5'>方式</b>的<b class='flag-5'>两</b>种<b class='flag-5'>方式</b>

    用TAS5630分路桥接、四路单端和四路桥接,只要有种模式起工作,输出端有很尖锐的高频噪声,为什么?

    我用TAS5630分路桥接、四路单端和四路桥接,当每个模式单独工作时都正常,但只要有种模式起工作,输出端有很尖锐的高频噪声,求高手指点
    发表于 10-30 07:36

    半导体外延生长方式介绍

    本文简单介绍了几种半导体外延生长方式
    的头像 发表于 10-18 14:21 ?1762次阅读
    半导体外延生长<b class='flag-5'>方式</b><b class='flag-5'>介绍</b>

    TLV320AIC3104分接了MIC,LINE,XLR共3路音频输入,能独立关断或者开启3路输入信号任意路吗?

    TLV320AIC3104分接了MIC,LINE,XLR共3路音频输入,能通过配置基础寄存器来实现独立关断或者开启3路的任意路输入信号吗?
    发表于 10-09 09:46

    什么是电流保护的接线方式?有哪种接线方式?

    方式。下面将对这种接线方式进行介绍、完全星形接线方式 完全星形接线
    的头像 发表于 10-06 17:37 ?5472次阅读
    什么是电流保护的接线<b class='flag-5'>方式</b>?有哪<b class='flag-5'>两</b>种接线<b class='flag-5'>方式</b>?

    Linux应用层控制外设的种不同的方式

    众所周知,linux下切皆文件,那么应用层如何控制硬件层,同样是通过 文件I/O的方式来实现的,那么应用层控制硬件层通常有方式
    的头像 发表于 10-05 19:03 ?1402次阅读
    Linux应用层控制外设的<b class='flag-5'>两</b>种不同的<b class='flag-5'>方式</b>

    用三块OPA847分放大10倍,当三块起供电时只有第级输出有信号,后面级什么信号也没,为什么?

    我用三块OPA847分放大10倍,问题就是当我三块起供电时只有第级输出有信号,后面级什么信号也没了。但是每块单独供电测试又都是正常
    发表于 09-02 07:33

    电阻在电路的基本连接方式

    电阻在电路的基本连接方式主要包括串联、并联以及混联三种。 、电阻的串联 1. 定义与原理 电阻的串联是指将个或个以上的电阻依次首尾相
    的头像 发表于 08-20 10:49 ?7263次阅读

    示波器种衰减方式的区别是什么

    示波器是种用于测量和观察电信号波形的仪器,广泛应用于电子工程、通信技术、电力系统等领域。在示波器的使用过程,衰减是个非常重要的概念,它直接影响到测量结果的准确性和可靠性。示波器的衰减方式
    的头像 发表于 08-09 14:41 ?1085次阅读

    接地保护分为哪方式

    接地保护是电气工程中非常重要的种安全措施,其目的是确保电气设备和系统在发生故障时能够安全地将电流导向地面,从而保护人身安全和设备安全。接地保护主要分为方式:工作接地和保护接地。以下是对这
    的头像 发表于 08-05 10:24 ?2460次阅读