chisel相比verilog优势之一:复用特性

2023-11-08

0 绪论

世界由于人这个最大的无厘头变量,还是比技术本身复杂难懂很多。各种技术的兴起与发展总是有其背后的理由的。这篇文章是这个系列的第三篇文章,主要来说明Chisel比Verilog在某些方面具有优势的理由。

换句话说。为什么要用Chisel? 它相比于Verilog好在哪儿?

在我看来,Chisel相对于Verilog来讲,最大的优势特性有两个:

  • Chisel的代码复用
  • Chisel的设计参数化

分两次讲。这次主要讲第一个原因:Chisel的代码复用。对于数字电路来讲,设计模块主要就是设计两个东西:端口与逻辑。

在这里插入图片描述

这篇文章的思路也是从这两个方面展开。如何在高效利用端口的复用提升效率与如何高效的复用逻辑提升效率。

一、端口的复用

在端口方面,verilog模块在端口的定义与连接上异常繁琐且易出错。此处介绍在chisel中如何快速的处理该问题。chisel主要通过端口的嵌套、端口的继承、端口的重载三个方面实现高效的端口代码复用。

1.1 端口嵌套:实现模块化端口连接

Chisel可以通过模块化的端口大幅减少端口的定义与连接工作量。比如下列案例,Module A与Module B与Module C。

在这里插入图片描述

此处可以定义以下端口。

在这里插入图片描述

模块A的端口可以利用PORT B与PORT C组合生成,只需要使用Flipped()函数反向,组合起来即可。

在这里插入图片描述

则三个module连接直接使用<>连接会节省大量工作量。

在这里插入图片描述

当PORT B与PORT C足够复杂时,该方法能够节省大量工作量。

总结:模块化的端口、灵活用Flipped() 、<>端口连接联合使用可大幅提升端口连接效率。

1.2 端口继承:快速扩展端口

例如,给PORT_CC加一个输入端口c2.

在这里插入图片描述

实现的verilog如下:

在这里插入图片描述

总结:直接使用extends继承端口可以快速扩展出新的端口。

1.3 端口重载:方便对端口数据进行改写

如图,再添加一个端口PORT_CD, 把c1的位宽改造为8位。

在这里插入图片描述

生成的verilog如下:

在这里插入图片描述

可以看到c1已经变为了8bit.

二、逻辑的复用

2.1 逻辑的继承:子模块直接继承母模块的逻辑

如下代码,Module C实现一个加法,Helloworld继承了ModuleC。虽然在Helloworld没有实现加法行,但最后的逻辑中包含了加法。

在这里插入图片描述
在这里插入图片描述

总结:模块内实现的逻辑是会被继承下来的。一方面可以复用代码。另一方面可能造成不希望被继承的逻辑被继承。

2.2 逻辑的重载:可以修改部分逻辑

例如在Helloworld模块中重写c2输出逻辑,在子模块的逻辑将会覆盖母模块。

在这里插入图片描述

实际上生产的verilog代码如下,变成了减法器。加法不再存在。

在这里插入图片描述

2.3 函数的继承:显式的继承功能而不是继承逻辑

如下图所示,如果需要显式的继承逻辑功能,需要在Module C中定义一个函数而不是直接把加法实现在Module_C中。

在这里插入图片描述

此时在HelloWorld中直接调用def的add函数即可实现需要的加法功能。

2.4 函数的重载:重行改写函数

如下图所示,直接在helloworld里将add重载为减法(手动狗头)

在这里插入图片描述
最终生成的verilog如下:

在这里插入图片描述

3 总结

Chisel在实现模块内部逻辑时和verilog实现并无太大差异。但Chisel相比于verilog在可复用参数化方面具有较大优势。本文主要介绍chisel在可复用方面的性质。

总结起来,端口可以利用嵌套、继承、重载实现最大限度的复用。逻辑也使用函数形式或者纯逻辑的继承与重载实现代码复用。

个人认为逻辑复用似乎在实际工作中用途有限,但端口的复用机制可大幅减少端口声明与模块连接工作量。

终于写的差不多了。下一讲写另一个方面的优势:参数化。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

chisel相比verilog优势之一:复用特性 的相关文章

  • 《SystemVerilog验证测试平台编写指南》学习笔记——连接设计和测试平台(三)

    一 SystemVerilog断言 1 立即断言 2 定制断言行为 3 并发断言 4 断言的进一步探讨 二 四端口的ATM路由器 1 使用端口的ATM路由器 2 使用端口的ATM顶层网单 3 使用接口简化连接 4 ATM接口 5 使用接口的
  • 赛灵思FPGA编程入门指南

    中英双语字幕精校版 赛灵思FPGA编程入门之新手指南第1集 什么是FPGA 现场可编程门阵列 FPGA概念 什么是FPGA 现场可编程门阵列 FPGA概念 本系列视频旨在为FPGA新人逐步讲解教程和基本概念 提供FPGA编程入门指导 帮助您
  • D类功率放大器

    深度剖析D类功率放大 http DXdlgf 我们知道 功率放大器一般分为甲类 乙类 甲乙类 丙类 丁类 即D类 和戊类等多种工作方式 为了提高功率和效率 一般的方法是降低三极管的静态工作点及由甲类到乙类 甚至到丙类 甲类 乙类 甲乙类的工
  • AMS磁编码器:AS5048与AS5047区别,伺服电机闭环系统位置反馈

    本文只简介 AMS的磁编码器 其他厂商磁编IC见另一篇 https blog csdn net Mark md article details 100181701 新增补了一篇 详细介绍了GMR磁编码器原理 同类对比优劣 安装方式 设计注意
  • verilog 中的 log2

    对数的作用 log2是指2的对数 对于二进制的计算机系统来说非常有用 比如 10bits的地址线 可寻址的地址空间为2 10 那么反过来对于1024深的地址空间 需要多少bits的地址线 需要用log2 depth 来计算 如何求对数 sy
  • CMOS芯片制造全工艺流程(后端基础第一篇)

    芯片制造全工艺流程详情 我们每天运行程序的芯片是这样造出来的 放大后的芯片机构 无与伦比的美 在如此微观世界 人类科技之巅 芯片一般是指集成电路的载体 也是集成电路经过设计 制造 封装 测试后的结果 通常是一个可以立即使用的独立的整体 如果
  • FPGA数字IC的Verilog刷题解析基础版03——奇偶校验(奇偶检测)

    1 题目 用verilog实现对输入的32位数据进行奇偶校验 根据sel输出校验结果 sel 1输出奇校验 sel 0输出偶校验 timescale 1ns 1nsmodule odd sel input 31 0 bus input se
  • 《每日一题》NO.41:FPGA内部资源有哪些?

    芯司机 每日一题 会每天更新一道IC面试笔试题 其中有些题目已经被很多企业参考采用了哦 聪明的你快来挑战一下吧 今天是第41题 FPGA设计工程师也是一个比较热门的职位 FPGA中都包括哪些资源呢 今天的题就是这样啦 开始解题吧 公布答案
  • 了解一款新的单片机

    MCU价格依然高居不下 各个国产MCU厂商的竞争也是如火如荼 然而好多厂商都是追求硬件甚至软件兼容STM32 但是兼容性好的芯片用的人也多 最终供不应求 还是会导致价格上涨 与其这样 不如干脆选一款相对冷门的单片机 用的人没那么多 价格也就
  • 【如何快速学会verilog开发】

    什么是verilog编程 首先verilog是一门编程语言 verilog的主要应用场景是数字前端开发 也即是通常所说的RTL开发 verilog作为一种编程语言 是数字前段开发的必备工具 同时区别于面对对象语言 如C 等 函数式语言 py
  • SGMII协议解析

    什么是SGMII 先说什么是GMII MII MII是ethernet协议里面MAC层和PHY层之间的接口标准 MII是4bits的数据位宽 支持10 100M的数据传输 GMII前面G表示Gigabit 代表支持1000M的传输速率 需要
  • 兆易创新携手合肥产投进军12英寸晶圆存储器

    2018年12月29日北京兆易创新科技股份有限公司董事会发布公告 北京兆易创新科技股份有限公司与合肥市产业投资控股 集团 有限公司于2017年10月26日签署了 关于存储器研发项目之合作协议 约定双方合作开展12英寸晶圆存储器研发项目 经沟
  • 小米推出物联网软件平台Xiaomi Vela;苹果11月11日再开发布会,自研处理器Mac有望推出;华为:计划在上海建芯片厂...

    EA周报 2020年11月06日 每个星期7分钟 元宝带你喝一杯IT人的浓缩咖啡 了解天下事 掌握IT核心技术 周报看点 1 小米推出物联网软件平台Xiaomi Vela 可打通 IoT 应用 2 证监会回应蚂蚁集团暂缓上市 避免蚂蚁仓促上
  • 带你三分钟了解算力

    导读 数字经济时代 算力是新生产力 是支撑数字经济发展的坚实基础 加快发展算力 是我国打造数字经济新优势 构建 双循环 新发展格局 提升国家整体竞争力的重要保障 一 何为算力 算力是设备通过处理数据 实现特定结果输出的计算能力 常用FLOP
  • 66W真的比60W充电更快吗?基于Charge pump Charger的快充方案分析

    智能手机发展至今 充电功率和电池续航一直是人们最为关注的问题之一 从早期的5V 1A和5V 2A的低瓦数快充 到后来的高压大电流和低压小电流两极分化 不同手机厂商都制定了自己的充电协议 如OPPO的VOOC vivo的Flash Charg
  • 《每日一题》NO.38:谈谈芯片的IO排布形式,与封装之间的关系?

    芯司机 每日一题 会每天更新一道IC面试笔试题 其中有些题目已经被很多企业参考采用了哦 聪明的你快来挑战一下吧 多多刷题 巩固技术知识 也为求职笔面试加加分 大家快来做题吧 今天是第38题 本题来谈谈芯片的IO排布形式 与封装之间的关系 今
  • MCDF实验——Lab0

    MCDF实验 一 MCDF功能描述 二 设计结构 三 接口描述 1 系统信号接口 2 通道从端接口 3 整形器接口 4 控制寄存器接口 四 接口时序 1 通道从端接口时序 2 整形器接口时序 3 控制寄存器接口时序 五 寄存器描述 1 地址
  • 计算机基础:一颗芯片是怎样诞生的?

    一颗芯片是怎样诞生的 芯片属于半导体 半导体是介于导体和绝缘体之间的一类物质 元素周期表中硅 锗 硒 硼的单质都属于半导体 这些单质通过掺杂其他元素生成的一些化合物 也属于半导体的范畴 这些化合物在常温下可激发载流子的能力大增 导电能力大大
  • 凿子3.功能模块Mux4

    我正在按照文档学习 Chisel在 Github 上 https github com ucb bar chisel3 wiki Short 20Users 20Guide 20to 20Chisel 到目前为止 一切都完美无缺 但我还是卡
  • Chisel 中的矩阵运算

    Chisel是否支持加法 乘法 转置等矩阵运算 如果没有 实施它们的最佳方法是什么 向量怎么样 Chisel 不支持矩阵运算 它是一种用于编写实现此类操作的硬件生成器的 DSL 有关专用数学硬件生成器的示例 请参阅 Hwacha 硬件矢量单

随机推荐