
数字电路
文章平均质量分 55
luoganttcc
微信:luogantt2
展开
-
介绍一下 VexRiscv
VexRiscv 通过创新的插件架构和 SpinalHDL 的高抽象能力,重新定义了 CPU 设计流程。原创 2025-03-12 12:09:04 · 1009 阅读 · 0 评论 -
介绍一下 SpinalHDL
还有用户可能关心它和Chisel的区别,参考内容里提到SpinalHDL直接生成Verilog,而Chisel需要经过Firrtl转换,生成的代码可读性不如Spinal。需要结构清晰,分点说明核心特性、优势、设计流程、应用场景和与Chisel的对比,避免使用技术术语过多,让读者容易理解。作为 Scala 的库,SpinalHDL 继承了 Scala 强大的函数式编程、类型系统和元编程能力,支持复杂的参数化设计和高层次抽象(如总线封装、流水线自动生成)。:模块例化时自动完成信号连接,减少手动连线的错误。原创 2025-03-12 12:01:57 · 502 阅读 · 0 评论 -
riscv-rust 是一个用 Rust 编写并编译为 WebAssembly 的RISC-V处理器和外围设备模拟器项目
【代码】riscv-rust 是一个用 Rust 编写并编译为 WebAssembly 的RISC-V处理器和外围设备模拟器项目。原创 2025-03-09 12:17:03 · 1218 阅读 · 0 评论 -
Gemmini
用户问的是Gemmini,我需要根据提供的参考内容来回答。首先,Gemmini是伯克利开发的DNN加速器生成器,对吧?参考内容里提到它和传统生成器不同,考虑了全栈和系统级的因素。比如硬件架构、软件支持和SoC集成。硬件部分,Gemmini的架构有scratchpad和accumulator SRAM,还有脉动阵列,支持不同的数据流,比如WS和OS。参考材料里还提到两级层次结构Tile和PE,这样灵活适应不同设计,比如TPU的高频但面积大,或者NVDLA的矢量引擎。原创 2025-03-09 11:57:43 · 913 阅读 · 0 评论 -
xv6-riscv
xv6-riscv 通过简洁的代码(约 2 万行)实现了现代操作系统的核心机制,适合学习操作系统原理。其模块化设计(如 kalloc 管理内存、proc 管理进程)和 RISC-V 架构的清晰性,为理解并发、虚拟化和系统隔离提供了实践基础。原创 2025-03-09 10:39:35 · 904 阅读 · 0 评论 -
香山处理器开发文档
https://docs.xiangshan.cc/zh-cn/latest/tools/xsenv/原创 2025-03-09 10:01:30 · 121 阅读 · 0 评论 -
温榆河”大规模片上互联网络(NoC)
我需要将这些信息组织起来,分点说明。另外,参考内容提到NoC在芯片中的作用,比如数据通信的高效和低延迟,这对SoC设计很重要,特别是RISC-V生态的发展。同时,可能存在的挑战,比如技术复杂性和维护生态的困难,也应该提及,以提供全面回答。这是全球首个开源的,旨在打破ARM的垄断,支持64核互联,并且已经完成开发和验证,可以交付给企业评估。简言之,“温榆河”NoC IP是我国在半导体底层技术领域的重要突破,通过开源共享为全球芯片设计提供新选择,尤其对国内RISC-V生态的完善和高性能芯片研发具有战略意义。原创 2025-03-09 09:09:45 · 314 阅读 · 0 评论 -
RISC-V理事会,80%的最高级别会员被中国企业申请了
编者按:本文来自微信公众号,作者:歪睿老哥,36氪经授权发布。原创 2025-03-09 09:02:23 · 949 阅读 · 0 评论 -
Spike RISC-V ISA 模拟器
Spike凭借其严格的ISA实现和轻量化设计,成为RISC-V生态的基础验证工具,尽管在性能和外设扩展上存在局限,但其在教育和早期芯片开发中的价值不可替代。对于需要完整系统仿真的场景,建议结合QEMU或商业EDA工具链使用。原创 2025-03-09 08:55:27 · 948 阅读 · 0 评论 -
opentitan riscv
SoC设计:代号Earlgrey,采用RISC-V架构的Ibex CPU核心,集成16KB ROM、64KB RAM、512KB Flash,支持PLIC中断控制器,外设包括UART/SPI/GPIO/Timer/USB等。透明性:开源硬件设计(GitHub可见),允许社区审查漏洞,与闭源方案(如Intel PFR、微软Cerberus)形成对比。仿真支持:支持Verilator仿真,需通过DPI接口与外设模型(如UARTdpi)交互,模拟真实硬件行为。原创 2025-03-09 00:08:44 · 343 阅读 · 0 评论 -
设计AI芯片架构的入门 研究生入行数字芯片设计、验证的项目 opentitan
这几年芯片设计行业在国内像坐过山车。时而高亢,时而低潮。最近又因为AI的热潮开始high起来。到底芯片行业的规律是如何?我谈谈自己观点:芯片设计是“劳动密集型”行业。“EDA和工具高度标准化和代工厂的工艺标准化之后,芯片设计就变成了“劳动密集型”工作,这也是美国很长一段时间几乎要放弃芯片设计行业的技术背景。当然美国国内也没有这么多EE工程师供应。要跟制造业一样转移给全球各地。一家之言,大家看看笑笑就可以了。我们国内背景是研究生大量扩招,又什么学硕/专硕、全日/非全,品种很齐。原创 2025-03-08 23:57:56 · 826 阅读 · 0 评论 -
脉动阵列 一共多少时钟周期 2*n- 1
矩阵乘法 A* B。原创 2023-02-10 19:42:16 · 228 阅读 · 0 评论 -
数字电路设计(4)——乘法器 chenille chenille
在数字电路系统中,乘法器是一种不可或缺的运算单元。数字信号处理、卷积运算的本质上是对乘法操作的复用,因此在运用数字电路系统进行信号处理时,往往要用到各种各样的乘法器。不同乘法器的性能、功耗依赖于设计的电路结构。近年来,对于优化乘法器结构设计,提高运算效率的研究层出不穷,乘法器的发展也日趋成熟。本文将介绍几种典型的乘法器结构,包括阵列乘法器改进的booth编码乘法器,以及介绍Wallace tree压缩结构对部分积求和速度的影响。转载 2023-02-06 14:26:12 · 1379 阅读 · 0 评论 -
NVDLA Xilinx FPGA Mapping
本文采用的硬件版本是hw仓库的master分支,v1的spec文件仅提供了full版本,应该没有FPGA能够塞得下。master 分支提供了 small 和 large 两个版本的spec 文件,我们使用 small 的配置,当然这个过程对 large 也是适用的,接下来首先讲一下如何生成rtl。NVDLA的软件栈分为两个部分,一个是Compiler,Compiler在自己的主机上编译是与硬件无关的,而Runtime则需要调用KMD程序调度加速器,只能在板卡上运行。原创 2023-02-01 13:06:38 · 703 阅读 · 0 评论 -
AI处理器技术发展
本文为个人在本科阶段所修课程《计算机系统结构》中提交的期末论文,主要涉及了AI处理器中GPU和DianNao系列芯片的粗浅介绍。AI处理器技术发展及机遇[摘要]以深度学习为代表的人工智能应用已经进入全面落地阶段,AI处理器则作为硬件基石为其提供计算资源支撑。本文基于人工智能领域目前的任务特点和处理器技术当下的具体情况,对AI处理器技术的背景和设计方法进行介绍,并讨论其后续的发展和机遇。转载 2023-01-31 18:47:20 · 1018 阅读 · 1 评论 -
AI芯片:寒武纪ShiDianNao结构分析
而且因为输入数据共享的方式有几种不同的情况,所以就造成了为了共享数据,不同时刻,数据的传递方向是不同的,比如,可能是按列,从右往左传递,也可能是按行,从下往上传递。这种方式有个缺点,一般而言,图像数据存储在RAM中,都是按照一张图的数据集中存储在一起,那么,取同一张图像上的某些像素点作为输入数据时,每个周期的像素地址并未对齐,无法在一个周期中获取该周期需要的所有有效数据,难以满足PE阵列的需求,会降低计算速度。,若在这个领域的算法精度实现巨大突破,那么,就将开启广阔的应用领域,能够真正明显地改变世界。转载 2023-01-31 18:27:47 · 1367 阅读 · 0 评论 -
使用Chisel搭建Systolic Array
最近听到非常多人吹Chisel,为了方便快速做算法实现,就去尝试学了下,发现确实很香,有种相见恨晚的感觉。今天是使用Chisel搭建个脉动阵列(Systolic Array, SA),脉动阵列是神经网络中最基础也是最常用的组件之一。它主要是实现高效的矩阵乘法,而神经网络中到处都是矩阵乘法,从全连接层到卷积层(GEMM),都可以用矩阵乘法表示。UCB的Chipyard中专门集成了个脉动阵列的生成器Gemmini。Gemmini考虑了很多的场景,比较复杂。原创 2023-01-31 16:12:30 · 939 阅读 · 0 评论 -
Versal系列0-AI Engine与Systolic Array
最近在开发VCK190时,发现Xilinx Versal系列的AI engine(AIE),其实和Systolic Array(SA)有着很相似的地方。Xilinx工程师在研发AIE时,应该是有所借鉴SA的。Systolic Array最早是H. T. Kung于1982年在论文《Why systolic architectures?》中提出,但是由于过于过于专用性,在通用处理器当道的年代并没有得到许多的关注。原创 2023-01-31 16:04:44 · 855 阅读 · 0 评论 -
AI芯片:寒武纪NPU设计分析(DianNao)
其实,CPU是为处理各种不同任务设计的,这就造成CPU内部有许多功能逻辑单元,应该说能用到的常用计算功能,比如定浮点的加减乘除/开方/求倒等常规操作,CPU内部都实现了,但是通常同一种功能只会有一套逻辑,最多4套,比如最常用的32位定浮点乘法计算,其他的计算,可能就只有一套,这就造成CPU可以执行各种复杂的计算,但是针对某种类型的计算任务,就不那么高效了。因为成本原因,芯片面积是有限的,在有限的面积上,只能放置有限的资源,而且,大部分时候,很多计算资源的使用率并不高,这也是一种浪费。转载 2023-01-31 16:01:03 · 2047 阅读 · 0 评论 -
verdi_2016/bin/verdi: 433: /home/book/synopsysoftware/verdi_2016/bin/verdi: Syntax error: “(“ unexpe
正确做法是改一下默认bash。原创 2023-01-31 11:15:05 · 181 阅读 · 0 评论 -
谈谈NoC Interconnect在复杂SoC设计中的应用 - 多核/异构系统的最佳互连方法
如今,尤其Logic IC的产业链规则普遍是外购模块IP+NRE的生产模式,这其中PHY/Interconnect类IP厂商的核心产品就是用来将CPU、GPU、AI/NPU、Interface等这些模块串接起来,演进到后来就是Network_on_Chip(片上网络)。因此我们解读很多SoC项目都是从其如何licensed了ARM/Imagination、Synopsys/Cadence/Arteris等等IP House的模块的视角;转载 2023-01-28 11:21:07 · 1563 阅读 · 0 评论 -
ubuntu16.04安装verilator+systemc并运行测试程序
Verilator 能够把可综合的(通常不是行为级)的代码,外加一部分Synthesis,SystemVerilog和一小部分Verilog AMS代码转换成C++或者SystemC代码。Verilator不是一个完整的模拟器(simulator),只是一个编译器(compiler)。原创 2023-01-15 17:14:11 · 664 阅读 · 0 评论 -
Syntacore RISCV 工具链使用(三)测试case的rtl仿真
link原创 2023-01-15 14:24:46 · 105 阅读 · 0 评论 -
fatal error: bfd.h: No such file or directory
redhat 系列: yum install binutils-devel done。ubuntu 系列: sudo apt install binutils-dev。原创 2023-01-14 12:12:39 · 354 阅读 · 0 评论 -
fatal error: libelf.h: No such file or directory 解决方案
解决方案: 少了一个包,先安装一个包。安装完成后,再运行make all, 就成功了。原创 2023-01-14 12:09:48 · 2606 阅读 · 1 评论 -
ubuntu riscv-gnu-toolchain工具链下载安装
【代码】ubuntu riscv-gnu-toolchain工具链下载安装。原创 2023-01-13 14:02:34 · 282 阅读 · 0 评论 -
riscv-gnu-toolchain工具链下载安装(unbuntu)
上述编译会默认生成riscv64-unknown-linux-gnu-gcc版本的交叉编译器,但我们需要riscv64-unknown-elf-gcc。PS:.riscv-binutils与riscv-gdb来自于同一个仓库,且与本地要求的文件夹名称不同,需用命令指定本地名,riscv-gdb同理。进入到riscv-gnu-toolchain的文件目录下,执行。方法二:去到一个不重要的路径新建c程序,使用交叉编译器编译。其他几个riscv-*的模块参照此方法自行修改。比如:riscv-newlib,在/…转载 2023-01-11 13:57:31 · 2609 阅读 · 0 评论 -
Verilator+systemc仿真环境搭建
在Ubuntu上搭建仿真环境的时候遇到了很多问题,想在此记录一下详细的过程,以备不时之需。本文中的操作系统为Ubuntu21.04,下载的verilator版本为v4.210。如果能看见键入的路径,此时已经完成systemc+verilator仿真环境的搭建,能够正常运行官网中给出的。# 若电脑上已经添加了ssh key,则可将https换为git提高下载速度(从https下载可能由于网速太慢下载失败)一、安装verilator,参照官网中的快速安装步骤。二、systemc安装与环境配置。转载 2023-01-11 13:53:13 · 1015 阅读 · 0 评论 -
mcu 项目
riscv-gnu-toolchaincore-v-mcuscr1原创 2023-01-10 22:50:32 · 125 阅读 · 0 评论 -
Cache与页面置换算法FIFO、LRU等
狭义的Cache指的是位于CPU和主存间的快速RAM, 通常它不像系统主存那样使用动态随机存取存储器(Dynamic Random Access Memory,DRAM)技术,而使用昂贵但较快速的静态随机存取存储器(Static Random-Access Memory,SRAM)技术。有种说法是LRU算法适合:较大的文件比如游戏客户端(最近加载的地图文件),而NFU算法适合:较小的文件和零碎的文件,比如系统文件、应用程序文件等,我觉得合理。最不常用页面置换算法,即:置换一段时间内被访问次数最少的页面。原创 2022-12-14 15:48:50 · 553 阅读 · 0 评论 -
Verilog中的FIFO设计
【代码】Verilog中的FIFO设计。原创 2022-12-14 13:41:14 · 163 阅读 · 0 评论 -
Verilog中的FIFO设计-同步FIFO篇
FIFO可根据读写时钟是否为同一时钟域可分为同步FIFO和异步FIFO,本文主要介绍同步FIFO,异步FIFO将在下篇介绍FIFO全称,即先进先出。跨时钟域数据传输将数据发送到芯片外之前进行缓冲,如发送到DRAM或SRAM存储数据以备后用FIFO是异步数据传输时常用的存储器,多bit数据异步传输时,无论是从快时钟域到慢时钟域,还是从慢时钟域到快时钟域,都可以使用FIFO处理。转载 2022-12-14 13:36:54 · 733 阅读 · 0 评论 -
FPGA时钟资源介绍-CMT-MMCM-PLL
CMT是非常重要的时钟资源,如果时钟信号像血液的话,CMT就像是循环系统,MRCC和SRCC将外部时钟引入,但是需要经过处理才能被其他部件所使用。时钟信号在运行过程中,还会发生各种负面的变化,例如jitter(抖动)时钟频率发生变化,偏移(到达不同部件时间不同)和占空比失真(一个周期内部不对称)。从CMT(Clock Management Tile)的名字也可以看出来。一个CMT包括了一个MMCM(Mixed-mode Clock Manager)和一个PLL(Phase-locked loop)。转载 2022-12-13 11:08:14 · 825 阅读 · 0 评论 -
Xinlix原语IBUFDS、OBUFDS的使用和仿真
IBUFDS、和OBUFDS都是差分信号缓冲器,用于不同电平接口之间的缓冲和转换。IBUFDS 用于差分输入,OBUFDS用于差分输出。转载 2022-12-12 14:03:26 · 3270 阅读 · 1 评论 -
vivado仿真的时候报ERROR: [VRFC 10-2063] not found while processing module instance
vivado仿真出错: Please check the Tcl console or log files for more information.选择 Include all design sources for simulation。Vivado 仿真出错:[VRFC 10-2063]转载 2022-12-12 14:00:25 · 1855 阅读 · 0 评论 -
谷歌开源 芯片
link原创 2022-12-07 17:28:32 · 121 阅读 · 0 评论 -
FPGA设计-时序约束
link原创 2022-12-07 13:00:22 · 149 阅读 · 0 评论 -
FPGA设计-时序约束(上篇,理论篇)
最近想要同步优快云和微信公众号的内容,各位看客们可以两边都关注一下,方便获取最新的信息。请扫描下面的的二维码添加关注,谢谢支持。 最近都在做ARM的方面学习工作,感觉有必要记录下来之前FPGA的工作,好记性也不如烂笔头;说起FPGA,断断续续的也用过4,5年了,中间接触过DSP,就是因为没有记录文档资料,目前几乎快忘光了;FPGA方面的心得,将会由以下几个方面进行总结:1. FPGA时序约束以及高速ADC约束实例2. TDC进位延时链设计以及研究3. TDC的精度以及自动校正算法的实现STA(Static转载 2022-12-07 11:26:31 · 300 阅读 · 0 评论 -
verlog 按键 led
verlog 按键 led原创 2022-12-06 16:14:18 · 106 阅读 · 0 评论 -
Verilog中 高位与低位
Verilog中信号定义位宽的一些问题总是被Verilog中信号定义位宽的问题所困扰:可以看到data1和data2最后的赋值结果都是一样的,但是注意到最高位和最低位的顺序不一样 data1 最高位是7,最低位是0 ,data2最高位是0 最低位是7 data1[7:0] data2[0:7]一般的数 二进制下 最左边为最高位,最右边为最低位,如:1001十进制为 9,所以声明信号赋值时习惯写成 wire[3:0] data; assign data = 3’b1001;这样最高位到原创 2022-12-06 15:09:57 · 5497 阅读 · 1 评论