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

    文章

    5588

    浏览量

    129035
  • AMBA
    +关注

    关注

    0

    文章

    70

    浏览量

    15911
  • 数字逻辑电路

    关注

    0

    文章

    106

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

    贴片晶振种常见封装介绍

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

    常见的负压产生方式介绍

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

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

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

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

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

    如何在CentOS系统配置防火墙

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

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

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

    不同设备电源滤波器接线方式的差异

    本文阐述了电源滤波器在不同设备的重要性,并针对家用电器、工业设备、医疗设备以及通信设备分别介绍了其电源滤波器的接线方式差异。在不同设备,电源滤波器的接线
    的头像 发表于 03-28 17:16 755次阅读
    不同设备<b class='flag-5'>中</b>电源滤波器接线<b class='flag-5'>方式</b>的差异

    激光扫描成像系统同轴光路和非同轴光路有什么不同

    在激光扫描成像系统,分为同轴光路和非同轴光路。这种成像方式有什么不同?各有什么优缺点呢?松盛光电来给大家介绍分享,来了解下吧。
    的头像 发表于 02-11 11:32 1942次阅读
    激光扫描成像系统<b class='flag-5'>中</b>同轴光路和非同轴光路有什么不同

    电力系统中性点运行方式介绍

    在电力系统,中性点运行方式个至关重要的概念,它主要包括中性点不接地、中性点经消弧线圈接地和中性点直接接地这三种基本方式,每种方式都有其
    的头像 发表于 02-05 16:21 3132次阅读

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

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

    控技术哈萨克斯坦阿克托5S店盛大开业

    近日,控技术哈萨克斯坦阿克托5S店迎来盛大开业,这也是控技术在中亚地区的首家5S店。控技术将通过结合线下 PlantMate 5S店的优质服务和线上 PlantMart 商城的
    的头像 发表于 01-08 11:23 975次阅读

    屏蔽双绞线的绞合方式分类

    对线芯在同个绞合单元中进行绞合。这种绞合方式的屏蔽性能相对较差,因为各线对之间的电磁干扰可能无法得到有效抵消。 反向扭绞:对线芯在相邻的
    的头像 发表于 01-08 10:34 1002次阅读

    电子成像的耦合介绍

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

    芯片制造过程种刻蚀方法

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