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

    文章

    5619

    浏览量

    130395
  • AMBA
    +关注

    关注

    0

    文章

    70

    浏览量

    16113
  • 数字逻辑电路

    关注

    0

    文章

    106

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    BLDC无位置传感器控制方式介绍

    BLDC根据转子的位置进行换向控制,而转子位置要靠位置传感器获取,那么这期就为大家介绍BLDC的无位置传感器控制方式
    的头像 发表于 12-30 07:55 1.3w次阅读
    BLDC无位置传感器控制<b class='flag-5'>方式</b><b class='flag-5'>介绍</b>

    机器视觉系统光照方式及应用领域

    机器视觉技术的应用,光照方式起着至关重要的作用。不同的光照方案可以显著提高图像质量,优化缺陷检测过程,从而提升自动化检测系统的性能。常见的光照方式包括同轴光、高角度光、低角度光和背光,本文将探讨
    的头像 发表于 12-26 17:22 694次阅读
    机器视觉系统<b class='flag-5'>中</b>光照<b class='flag-5'>方式</b>及应用领域

    能否详细介绍下MOSFET在电机控制的作用是什么?

    能否详细介绍下MOSFET在电机控制的作用?
    发表于 12-22 13:11

    DDR200TDDR的使用与时序介绍

    和app_wdf_end为高电平,而且在写地址和写数据的对应,并不定存在时序完全相同的情况,写地址和写数据可能存在超前或滞后个周期,因此在进行突发写时,应对地址传输完毕,但数
    发表于 10-28 07:24

    干式变压器的接线方式是什么

    在电力系统,干式变压器作为种重要的电力设备,广泛应用于各种场合,如CNC数控机床、注塑机、出口机械设备、印刷设备、自动化设备等,所以其接线结构方式对于设备的安全运行至关重要,下面将详细介绍
    的头像 发表于 07-28 14:45 1335次阅读

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

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

    贴片晶振种常见封装介绍

    贴片晶体振荡器作为关键的时钟频率元件,其性能直接关系到系统运行的稳定性。今天,凯擎小妹带大家聊聊贴片晶振种常见封装——金属面封装与陶瓷面封装。
    的头像 发表于 07-04 11:29 1490次阅读
    贴片晶振<b class='flag-5'>中</b><b class='flag-5'>两</b>种常见封装<b class='flag-5'>介绍</b>

    常见的负压产生方式介绍

    在实际的设计,我们时常会遇到需要负压供电的场合。工程师朋友们般用哪种方式来产生负压呢?
    的头像 发表于 06-30 09:36 1781次阅读
    常见的负压产生<b class='flag-5'>方式</b><b class='flag-5'>介绍</b>

    种驱动方式下永磁直线开关磁链电机的研究

    及波动系数,计算不同方式下电机铜耗,铁耗以及永磁铁涡流损耗。仿真表明:在同速度下,相导通方波方式下的推力小于正弦波驱动方式下的力,同时总
    发表于 06-09 16:18

    FA模型的ServiceAbility的切换介绍

    的ServiceExtensionAbility为系统API,只有系统应用才可以创建。因此,FA模型的ServiceAbility的切换,对于系统应用和三方应用策略有所不同。下面分别介绍种场景。 系统
    发表于 06-05 07:24

    微公司在TechInsights 2025半导体供应商奖项调查荣获项第

    热烈祝贺微公司再获殊荣,在TechInsights 2025半导体供应商奖项调查荣获项第,技术硬实力与服务软实力获双重肯定。
    的头像 发表于 05-19 14:48 1418次阅读

    开关电源拓扑结构介绍

    、绪论开关电源电路拓扑是指功率器件和电磁元件连接在电路方式,而磁性元件设计、闭环补偿电路以及所有其他电路元件的设计都依赖于拓扑。 拓扑可分为:开关型和非开关型大类。其中开关型
    发表于 05-12 16:04

    如何在CentOS系统配置防火墙

    都会觉得无从下手。担心!这篇文章将用通俗易懂的方式,带你了解 CentOS 的防火墙配置,并通过个实际案例,手把手教你如何正确设置防火墙规则。
    的头像 发表于 05-08 11:52 1258次阅读
    如何在CentOS系统<b class='flag-5'>中</b>配置防火墙

    三相自耦变压器的连接方式

    三相自耦变压器是种自耦变压器,是电力系统重要的电压调节设备,其连接方式至关重要,下面小编来详细的介绍下三相自耦变压器的连接方式
    的头像 发表于 05-06 15:29 2105次阅读

    KaihongOS操作系统FA模型与Stage模型介绍

    FA模型与Stage模型介绍 KaihongOS操作系统,FA模型(Feature Ability)和Stage模型是种不同的应用模型,它们提供了不同的应用开发方式和特性。 FA
    发表于 04-24 07:27