十二 头像

十二

1875 声望
他还没有填写个人简介
关注了
1
粉丝数
1592
IP 属地浙江
最新动态
  • 发布了文章 ·
    LUT RAM,Xilinx VS Altera

    ✎ 编 者 按 最近一些设计里需要极致的利用LUTRAM,借此总结下在Xilinx、Altera中LUT RAM的不同表现,一个“LUT”究竟能干哪些事儿。

    摘要图
  • 发布了文章 ·
    一文了解FPGA里TCAM的实现

    ✎ 编 者 按 TCAM(Ternary content-addressable memory)在FPGA里并没有专门的资源,其在网络应用上是一个比较常见的资源。关于如何在FPGA中实现TCAM功能有不少的论文,在翻阅借鉴之后,本文就TCAM在FPGA上的最优化实现进行探讨。

    摘要图
  • 发布了文章 ·
    手把手创建自己的寄存器配置模版

    编 者 按 无论是FPGA还是ASIC,系统设计中总会存在配置寄存器总线的使用,我们会将各种功能、调试寄存器挂载在寄存器总线上使用。在SpinalHDL中,BusIf那套总线模型库写的还是相当不错的,能够同时生成对应的代码和文档(在公司里也做过一些修改,能够直接生成整个系统的寄存器文档而不仅仅是单个模块的寄存器文档)。今天...

    摘要图
  • 发布了文章 ·
    反思一下FSM

    最近遇到一个关于状态机的问题,具体的业务就不讲了。关于FSM怎么写这种初级问题在这里也不讲了。这里我们只关注下在真实的应用场景里,从监控的角度来看,该如何去看待FSM。    

    摘要图
  • 发布了文章 ·
    数据中心逻辑搬砖要会的——几个好用的Python库

    ✎ 编 者 按作为一个在数据中心搬砖的逻辑开发,日常不是仅仅简单的写写RTL就可以完事儿的。在数据中心,你可能连板卡都看不到,日常常打交道的,也就是PCIe。作为逻辑版本的生产者,出现问题往往需要自己有详细的定位手段和方式(没有谁比设计者更清楚逻辑的功能。专门的软件人员来做当然没问题,但增加沟通成本),那么一...

    摘要图
  • 发布了文章 ·
    逼死强迫症—优化Stream/Flow代码生成

    在SpinalHDL里在顶层一键优化代码中Stream/Flow代码生成的payload,fragment。

    摘要图
  • 发布了文章 ·
    Verilog黑盒模块名动态生成

    最近微信交流群里有小伙伴在讨论后端做memory时memory使用的大小不同例化时也需要使用不同的memory名称,这种情形往往采用BlackBox的形式来实现,来汇总下群里的结论,通过采用setblackname的形式来动态指定Blackbox模块名

    摘要图
  • 发布了文章 ·
    位域一键提取/封装

    聊一聊SpinalHDL 1.9.4版本中的PackedBundle、PackedWordBundle的使用

    摘要图
  • 发布了文章 ·
    pipeline高端玩法(十二)—优先级

    无论是SystemVerilog还是SpinalHDL,都有Last valid assignment wins的语法特征。如在SpinalHDL-Doc中所描述:

    摘要图
  • 发布了文章 ·
    pipeline高端玩法(十一)—spawnIt

    spawn的调用,最终会把触发条件cond存储至internals.request.spawns中去。

    摘要图
  • 发布了文章 ·
    pipeline高端玩法(十)—throwIt

    ✎ 编 者 按 字如其名,来看下Pipeline中throwIt的用法,是怎么个丢弃方式API在Stage中,关于throwIt提供了下面的API: 函数中的动作出现了两个变量的使用:internal.request.throwsinternals.request.throwRoot那么去到Pipeline里面看都哪里使用到了它。在看之前,先再来回顾下在SpinalHDL中pipeline的编程模型:在Pipel...

    摘要图
  • 发布了文章 ·
    pipeline高端玩法—haltIt(九)

    ✎ 编 者 按 来看下Pipeline中HaltIt的用法HaltIt看名字,就基本能猜到这个函数的大体功能是流水线暂停。 在Stage中,流水线暂停提供了这么几个API: {代码...} 三个API最终所实现的都是往internals.request.halts中添加cond条件。那么就看下request.halts在Pipeline构建时所起的作用。首先,在进行 connectionsWithoutSi...

    摘要图
  • 发布了文章 ·
    pipeline高端玩法(八)—FlushNext

    调用flushNext,最终会将flushNext的需求暂存到internals.request.flushNext中。

    摘要图
  • 发布了文章 ·
    pipeline高端玩法(七)—flush

    可以看出,调用flush函数,会牵涉到internals.request中的fulsh以及flushRoot两个元素:

    摘要图
  • 发布了文章 ·
    pipeline高端玩法(六)—resulting&overloaded

    今天来看下SpinalHDL Pipeline组件里的resulting及overloaded的使用

    摘要图
  • 发布了文章 ·
    pipeline高端玩法(五)——Terminal

    看完了前面的系列,对于Stageable、StageableKey是如何起作用的应该有一定的了解。今天再来看下Stage中关于terminal的作用

    摘要图
  • 发布了文章 ·
    pipeline高端玩法(四)—Stage里的隐式转换

    在pipeline的实现中,有五大要素:pipeline、Connection、Stage、StageableKey、Stageable。我们来看下面的代码:

    摘要图
  • 发布了文章 ·
    pipeline高端玩法(三)——一个pipeline是如何建立起来的

    ✎ 编 者 按 续接上文,这一次我们来详细了解下一个简单的pipeline是如何构建起来的最简单的流水线书接上文,一个最简单的流水线例子,这里对data_in打两拍做输出:我们逐行分析pipeline里每一行代码都干了什么。Stage分析在第八行我们声明了一个Stageable变量,如前文所述,Stageable变量并不会立即产生电路对象。代码第...

    摘要图
  • 发布了文章 ·
    pipeline高端玩法(二)——成员一览

    对于Stageabel,我们可以传入任何SpinalHDL下面定义的隶属于Data的类型,不同于我们在电路里生命一个电路对象:

    摘要图
  • 发布了文章 ·
    pipeline高端玩法(一)——系统架构

    如果你曾看过VexRSICV的设计,对于从事逻辑设计的你会惊讶从未想过逻辑设计还能这么来做。针对VexRSICV所衍生出的pipeline Lib,该系列会对pipeline进行一次梳理。诚如之前一篇博客曾讲,这是“勇者的游戏”。

    摘要图
认证与成就
获得 96 次点赞
2021年10月17日 加入
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息