✎ 编 者 按 最近一些设计里需要极致的利用LUTRAM,借此总结下在Xilinx、Altera中LUT RAM的不同表现,一个“LUT”究竟能干哪些事儿。
✎ 编 者 按 TCAM(Ternary content-addressable memory)在FPGA里并没有专门的资源,其在网络应用上是一个比较常见的资源。关于如何在FPGA中实现TCAM功能有不少的论文,在翻阅借鉴之后,本文就TCAM在FPGA上的最优化实现进行探讨。
编 者 按 无论是FPGA还是ASIC,系统设计中总会存在配置寄存器总线的使用,我们会将各种功能、调试寄存器挂载在寄存器总线上使用。在SpinalHDL中,BusIf那套总线模型库写的还是相当不错的,能够同时生成对应的代码和文档(在公司里也做过一些修改,能够直接生成整个系统的寄存器文档而不仅仅是单个模块的寄存器文档)。今天...
最近遇到一个关于状态机的问题,具体的业务就不讲了。关于FSM怎么写这种初级问题在这里也不讲了。这里我们只关注下在真实的应用场景里,从监控的角度来看,该如何去看待FSM。
✎ 编 者 按作为一个在数据中心搬砖的逻辑开发,日常不是仅仅简单的写写RTL就可以完事儿的。在数据中心,你可能连板卡都看不到,日常常打交道的,也就是PCIe。作为逻辑版本的生产者,出现问题往往需要自己有详细的定位手段和方式(没有谁比设计者更清楚逻辑的功能。专门的软件人员来做当然没问题,但增加沟通成本),那么一...
在SpinalHDL里在顶层一键优化代码中Stream/Flow代码生成的payload,fragment。
最近微信交流群里有小伙伴在讨论后端做memory时memory使用的大小不同例化时也需要使用不同的memory名称,这种情形往往采用BlackBox的形式来实现,来汇总下群里的结论,通过采用setblackname的形式来动态指定Blackbox模块名
聊一聊SpinalHDL 1.9.4版本中的PackedBundle、PackedWordBundle的使用
无论是SystemVerilog还是SpinalHDL,都有Last valid assignment wins的语法特征。如在SpinalHDL-Doc中所描述:
spawn的调用,最终会把触发条件cond存储至internals.request.spawns中去。
✎ 编 者 按 字如其名,来看下Pipeline中throwIt的用法,是怎么个丢弃方式API在Stage中,关于throwIt提供了下面的API: 函数中的动作出现了两个变量的使用:internal.request.throwsinternals.request.throwRoot那么去到Pipeline里面看都哪里使用到了它。在看之前,先再来回顾下在SpinalHDL中pipeline的编程模型:在Pipel...
✎ 编 者 按 来看下Pipeline中HaltIt的用法HaltIt看名字,就基本能猜到这个函数的大体功能是流水线暂停。 在Stage中,流水线暂停提供了这么几个API: {代码...} 三个API最终所实现的都是往internals.request.halts中添加cond条件。那么就看下request.halts在Pipeline构建时所起的作用。首先,在进行 connectionsWithoutSi...
调用flushNext,最终会将flushNext的需求暂存到internals.request.flushNext中。
可以看出,调用flush函数,会牵涉到internals.request中的fulsh以及flushRoot两个元素:
今天来看下SpinalHDL Pipeline组件里的resulting及overloaded的使用
看完了前面的系列,对于Stageable、StageableKey是如何起作用的应该有一定的了解。今天再来看下Stage中关于terminal的作用
在pipeline的实现中,有五大要素:pipeline、Connection、Stage、StageableKey、Stageable。我们来看下面的代码:
✎ 编 者 按 续接上文,这一次我们来详细了解下一个简单的pipeline是如何构建起来的最简单的流水线书接上文,一个最简单的流水线例子,这里对data_in打两拍做输出:我们逐行分析pipeline里每一行代码都干了什么。Stage分析在第八行我们声明了一个Stageable变量,如前文所述,Stageable变量并不会立即产生电路对象。代码第...
对于Stageabel,我们可以传入任何SpinalHDL下面定义的隶属于Data的类型,不同于我们在电路里生命一个电路对象:
如果你曾看过VexRSICV的设计,对于从事逻辑设计的你会惊讶从未想过逻辑设计还能这么来做。针对VexRSICV所衍生出的pipeline Lib,该系列会对pipeline进行一次梳理。诚如之前一篇博客曾讲,这是“勇者的游戏”。