IEEE JSSC更新|Tiny Tapeout:让每个人都能设计定制芯片

简介

由于成本高昂且需要专业技术,设计和制造定制集成电路的传统上仅限于大型公司和机构。然而,名为Tiny Tapeout的创新项目正在改变这一现状,让业余爱好者、学生和小型团队也能设计定制芯片。本文将探讨Tiny Tapeout的工作原理,以及如何使用它来创建自己的专用集成电路(ASIC)。

什么是Tiny Tapeout?

Tiny Tapeout是一个多项目芯片平台,大大降低了定制芯片设计的门槛。可以将数百个小型设计整合到一个芯片上,从而分担制造成本,同时让每个设计者都能收到并测试包含其设计的物理硬件。

Tiny Tapeout的主要功能包括:

  • 使用开源设计工具和工艺设计套件(PDK)
  • 基于云的设计流程,无需安装本地软件
  • 低成本——每项设计通常不到100美元
  • 保证提交的设计能够制造
  • 社区支持和协作学习

每次Tiny Tapeout生产运行(或"穿梭")会将约400个独立设计整合到一个芯片上。制造完成后,这些芯片将被安装到演示板上,以便于测试和连接。)

图1:Tiny Tapeout参与者构成

如图1所示,Tiny Tapeout吸引了来自各行各业的参与者,其中不乏业余爱好者、学生或教育工作者。这使其成为学习和试验定制芯片设计的绝佳平台。

设计流程

为Tiny Tapeout创建设计需要经过以下步骤:

1. 根据提供的模板创建GitHub存储库

2. 使用Verilog HDL或Wokwi可视化编辑器开发设计

3. 记录设计

4. 通过自动测试系统提交设计

5. 如果所有测试都通过,则提交到下一个可用班车

让我们更详细地研究一下这些步骤。

1.创建您的资源库

首先访问[Tiny Tapeout网站](https://tinytapeout.com),点击链接,根据模板创建新的资源库。这将为您设计所需的基本结构和工具。

2.开发您的设计

您有两种主要选择来创建您的设计:

  • Verilog HDL:如果您熟悉硬件描述语言,可以直接用Verilog编写设计。模板库中包含示例和文档,可帮助您快速入门。
  • Wokwi可视化编辑器:对于硬件设计新手,Wokwi提供了一个图形化原理图编辑器,您可以使用逻辑门和其他基本组件绘制电路。Tiny Tapeout网站包含Wokwi使用文。

您的设计将拥有一定数量的输入和输出引脚以及时钟信号。可用引脚的确切数量取决于具体的 Tiny Tapeout 运行,但通常在 8-24 个引脚之间。

3. 设计文档

良好的文档对于他人理解并可能基于您的工作很重要。模板库中包含一个自述文件,您应在其中描述您的设计功能、输入、输出以及任何其他相关细节。

4.自动测试

Tiny Tapeout的主要功能之一是其自动测试系统。当您将更改推送到GitHub库时,将触发一系列检查:

  • GDS生成:此步骤使用OpenLane工具将您的设计转换为用于芯片制造的GDSII格式。还会生成设计的有用可视化。
图2:自动系统生成的Tiny Tapeout设计的3D渲染
  • 验证:此步骤运行您包含的任何测试平台,以验证您的设计功能。
  • 文档:检查您是否包含所需的文档。
  • 预检查:运行设计规则检查,确保您的设计能够正确集成到多项目芯片中。

5. 提交给shuttle

一旦您的设计通过了所有自动检查,您就可以通过网站将其提交给下一个可用的Tiny Tapeout shuttle。穿梭通常每季度运行一次,当您的设计被接受时,您会收到通知。

硬件架构

随着时间的推移,Tiny Tapeout项目不断改进其硬件架构,以提高性能和功能。让我们来看看这一过程是如何发展的:

Tiny Tapeout 1-3:扫描链

最初的Tiny Tapeout运行使用扫描链架构。该架构将所有设计连接成一个长链,数据依次在每个设计中传输。虽然这种方法相对容易实现,但在速度和延迟方面存在局限性。

图3:早期Tiny Tapeout运行中使用的扫描链架构简化图

Tiny Tapeout 4+:多路复用器

从Tiny Tapeout 4开始,架构更新为使用基于多路复用器的方法。这允许在设计和更高的I/O带宽之间进行更快的切换。

图4:Tiny Tapeout 4中引入的多路复用器架构简化图

多路复用器架构具有以下优点:

  • I/O速度提升(最高可达50 MHz)
  • 每个设计可用的引脚更多(最多可达24个I/O引脚)
  • 支持更大规模的设计(最多可达8x2块)

未来发展

Tiny Tapeout仍在不断改进。未来运行计划包括:

  • 支持模拟和混合信号
  • 增加I/O引脚
  • 增加设计区域

测试您的设计

制造完成后,您将收到一块包含您设计的芯片(以及该穿梭器中的所有其他芯片),该芯片安装在小型载板上。该载板插入更大的演示板上,后者提供电源、时钟并方便访问I/O引脚。

图5:Tiny Tapeout演示板

演示板包括:

  • USB-C电源连接
  • 用于内核和I/O电源的稳压器
  • 20 MHz振荡器
  • 用于复位和单步时钟的按钮
  • 用于输入的DIP开关
  • 用于输出的七段LED显示屏
  • 用于所有I/O的接头,包括PMOD扩展端口

最新版本的演示板还包括一个Raspberry Pi RP2040微控制器。这允许对设计进行更高级的控制和测试,包括编写简单的Python脚本与您的芯片进行交互的能力。

图6:用于测试Tiny Tapeout设计的MicroPython脚本示例

示例项目

Tiny Tapeout社区已经制作了各种有趣的项目。以下几个示例可以激发您的设计灵感:

  1. 串行FPGA:一个可动态重新配置的5输入查找表(LUT),展示了类似FPGA的功能。
  2. 可综合的数字温度传感器:这种巧妙的设计以非常规的方式使用标准单元来创建温度敏感电路。
  3. 标准单元展示:包含 PDK 中可用的大部分标准单元的设计,便于测试和特性分析。
  4. FM 发射器:接收音频输入并对其进行调制,以创建 FM 无线电信号。
  5. USB 全速设备:USB 1.1 全速协议的硬件实现。
  6. RISC-V CPU:RV32IMA RISC-V处理器,能够启动Linux。

这些例子展示了Tiny Tapeout带来的广泛可能性,从简单的逻辑电路到复杂的数字系统。

结论

Tiny Tapeout在定制芯片设计平民化方面迈出了重要一步。通过降低技术和资金门槛,为更广泛的受众打开了ASIC设计的大门。无论您是想学习硬件设计的学生、有独特想法的业余爱好者,还是想把前沿技术引入课堂的教育工作者,Tiny Tapeout都能为您提供一条制作真实物理芯片的便捷途径。

该项目仍在不断发展,未来计划提供模拟支持、增加设计规模以及更多I/O选项。随着社区的发展,可供学习的集体知识和可用设计范围也在不断扩大。

要开始自己的Tiny Tapeout设计,请访问[Tiny Tapeout网站](https://tinytapeout.com),获取最新信息、并加入即将到来的班车。祝您设计愉快!

参考资料

  1. M. Venn, "Tiny Tapeout: A shared silicon tape out platform accessible to everyone," in IEEE Solid-State Circuits Magazine, vol. 16, no. 2, pp. 20-29, Spring 2024, doi: 10.1109/MSSC.2024.3381097.

(更多技术文章或申请软件试用,请关注我们的微信公众号:逍遥设计自动化)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/60301.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java:一段代码,无限可能

Java,诞生于1995年,如今已走过近三十载春秋。它历经互联网泡沫的兴衰、移动互联网的浪潮,以及云计算和大数据的洗礼,依然屹立在编程语言的舞台中央,散发着耀眼的光芒。这篇文章将带你回顾Java的辉煌历史,探…

《XGBoost算法的原理推导》12-14决策树复杂度的正则化项 公式解析

本文是将文章《XGBoost算法的原理推导》中的公式单独拿出来做一个详细的解析,便于初学者更好的理解。 我们定义一颗树的复杂度 Ω Ω Ω,它由两部分组成: 叶子结点的数量;叶子结点权重向量的 L 2 L2 L2范数; 公式(…

Linux【基础篇】

-- 原生罪 linux的入门安装学习 什么是操作系统? 用户通过操作系统和计算机硬件联系使用。桥梁~ 什么是Linux? 他是一套开放源代码(在互联网上找到Linux系统的源代码,C语言写出的软件),可以自由 传播&…

大数据技术在智慧医疗中的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 大数据技术在智慧医疗中的应用 大数据技术在智慧医疗中的应用 大数据技术在智慧医疗中的应用 引言 大数据技术概述 定义与原理 发…

Linux(CentOS)安装 MySQL

CentOS版本:CentOS 7 三种安装方式: 一、通过 yum 安装,最简单,一键安装,全程无忧。 二、通过 rpm 包安装,需具备基础概念及常规操作。 三、通过 gz 包安装,需具备配置相关操作。 --------…

CSS如何改变滚动条的颜色样式粗细?

默认滚动条很丑怎么办?如何改版滚动条的粗细,颜色,让它更美观?CSS如何改变滚动条的粗细? 干货来了 /* Webkit内核浏览器的滚动条样式 */ ::-webkit-scrollbar {width: 4px; /* 设置滚动条的宽度 */ }::-webkit-scroll…

YOLOv11(Ultralytics)可视化界面ui设计,基于pyqt5,单文件即插即用,支持文件夹检测及云摄像头检测并保存

本文的可视化界面对于YOLOv11/Ultralytics/YOLOv8的检测、分割、分类、姿势估算(detection, segmentation, obb, classification, and pose estimation)等均可正常显示。本次新增了图片及视频的保存,可以选择传入文件夹进行检测并显示&#x…

用python开发坦克大战重制版

Python 开发坦克大战重制版:全面教程 引言 坦克大战是一款经典的街机游戏,自1985年首次推出以来,便吸引了无数玩家。随着时间的推移,许多游戏开发者开始尝试重制这款经典游戏。本文将指导你如何使用 Python 和 Pygame 库开发一个…

链式结构二叉树

数据结构 结点申请 树🌲行结构 前中后序遍历 二叉树结点个数 二叉树叶子节点个数 第k层结点个数 二叉树深度 二叉树查找值为x的结点 二叉树销毁

【2024软考架构案例题】你知道什么是 RESTful 风格吗?

👉博主介绍: 博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家,51CTO 专家博主 ⛪️ 个人社区&#x…

#渗透测试#SRC漏洞挖掘#深入挖掘CSRF漏洞02

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…

自动驾驶革命:从特斯拉到百度,谁将主宰未来交通?

内容概要 自动驾驶技术正在经历一个前所未有的革命性变化,各大企业纷纷抢占这一充满潜力的新市场。以特斯拉和百度为代表的行业巨头,正利用各自的优势在这一技术的赛道上展开激烈竞争。特斯拉凭借其在电动汽车和自动驾驶领域的前瞻性设计与不断革新的技…

反向代理开发

1 概念 1.1 反向代理概念 反向代理是指以代理服务器来接收客户端的请求,然后将请求转发给内部网络上的服务器,将从服务器上得到的结果返回给客户端,此时代理服务器对外表现为一个反向代理服务器。 对于客户端来说,反向代理就相当于…

简记Vue3(五)—— Pinia

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

C++11语法介绍(1) -- 列表初始化{},左值和右值,右值引用和移动语义,引用折叠,完美转发

目录 1.C11的发展时间线 2.列表初始化 2.1C98传统的{} 2.2C11中的{} 2.3C11中的std::initializer_list 2.3.1vector中initializer list构造的模拟实现 2.3.2以vector为例演示initializer_list版本的构造 3.右值引用和移动语义 3.1左值和右值 3.2左值引用和右值引用 3.3…

C++编程:利用环形缓冲区优化 TCP 发送流程,避免 Short Write 问题

文章目录 1. 什么是 Short Write 问题?2. 如何解决 Short Write 问题?2.1 方法 1:将 Socket 设置为阻塞模式2.2 方法 2:用户态维护发送缓冲区 3. 用户态维护发送缓冲区实现3.1 核心要点3.2 代码实现3.3 测试程序 参考文档 1. 什么…

第十三届交通运输研究(上海)论坛┆智能网联汽车技术现状与研究实践

0.简介 交通运输研究(上海)论坛(简称为TRF)是按照国际会议的组织原则,为综合交通运输领域学者们构建的良好合作交流平台。交通运输研究(上海)论坛已经成功举办了十二届,凝聚了全国百…

中仕公考:大三大四考公备考时间线

大三大四想要考公务员的可以借鉴以下时间线: 大三下学期: 基础看课阶段,刚开始先打好基础很重要,根据课程和教材理解知识点,按照模块学习,对考试科目的题型有深入的认识和掌握。 大四初: 强…

Android Studio 将项目打包成apk文件

第一步:选择Build -> Generate Signed APK 会出现: 我们选择 Create new… 然后选择你要存放密钥的地方 点击ok之后,则选择好了文件,并生成了jks文件了。 点击ok之后, 会出现: 选择release&#xf…

FFmpeg存放压缩后的音视频数据的结构体:AVPacket简介,结构体,函数

如下图的解码流程,AVPacket中的位置 FFmpeg源码中通过AVPacket存储压缩后的音视频数据。它通常由解复用器(demuxers)输出,然后作为输入传递给解码器。 或者从编码器作为输出接收,然后传递给多路复用器(mux…