- 博客(65)
- 收藏
- 关注
原创 数字ic后端设计从入门到精通6(含fusion compiler, tcl教学)repeater详解
中继器优化与信号延迟分析摘要 长导线的RC延迟随长度平方增长(l²)。为解决这一问题,可采用分段插入中继器(如反相器)的方法:将导线分为N段后,总延迟降为l²/N。当N与l成正比时,延迟仅与l线性相关。优化需平衡两个参数:中继器间隔距离(l/N)和尺寸放大倍数W。公式(6.26)-(6.31)表明,最佳间隔由√(RC/RwCw)决定,最优W为√(RCw/RwC)。在优化配置下,单位长度延迟与√(RCRwCw)成正比,能耗主要取决于导线电容和电源电压平方。关键是通过调整中继器密度与尺寸,使导线延迟与中继器累积
2025-06-09 12:17:08
805
原创 noc多核芯片设计:booksim仿真从入门到精通2Router 类型及路由算法修改
BookSim路由器类型及函数功能摘要 路由器类型分为三大类: 基础类型(如IQRouter、EventRouter等)提供不同排队和驱动机制 旁路类型(Bypass系列)通过仲裁机制优化实现快速路径 SMART智能路由系列(如nebb_vct_opt)采用多跳自适应策略 关键函数功能分组: 通道管理(AddOutputChannel/ReceiveFlits等)处理数据收发 路由决策(RouteEvaluate/Update)确定传输路径 资源分配(VCAlloc/SWAlloc)管理虚拟通道和开关仲裁
2025-05-26 23:05:04
893
原创 数字ic后端设计从入门到精通5(含fusion compiler, tcl教学)def详解
DEF文件结构详解:DEF(Design Exchange Format)是描述芯片物理设计结构的标准格式,包含VERSION、DESIGN、DIEAREA等必选部分及TRACKS、VIAS等可选部分。关键元素包括定义芯片边界的DIEAREA、标准单元布局的ROWS、全局布线的TRACKS,以及组件、引脚和网络的定义。BLOCKAGES用于限定禁止布局布线的区域,支持分层、间距等约束。DEF与LEF文件配合使用,是集成电路后端设计流程中的核心数据交换格式,完整描述了从芯片边界到布线细节的物理实现信息。(15
2025-05-26 18:02:19
827
原创 noc多核芯片设计:booksim仿真从入门到精通2拓扑与信道定制修改(含Segmentation fault (core dumped)/Program received signal等问题解决)
本文概述了KNCube网络拓扑构建函数_BuildNet的核心功能,重点分析了节点编号、通道适配和网络构建逻辑。主要内容包括: 函数功能:根据配置初始化多维网状网络,连接节点通道,设置延迟参数,并决定是否启用NoC延迟模型。 节点编号系统: 总节点数_size = _k^_n(_k为每维节点数,_n为维度数) 节点采用行主序编号,通过mod和除法运算可转换为多维坐标 以4×4二维网格为例详细说明了编号与坐标的对应关系 关键函数模块: 路由器的创建与命名(如router_0_1_2) 邻接节点计算(_Left
2025-05-26 01:20:34
1031
原创 数字ic后端设计从入门到精通4(含fusion compiler, tcl教学)CMOS VLSI Design
布局设计规则是芯片物理设计中的关键指导原则,确保设计在特定制造工艺下可被正确制造。这些规则包括最小线宽、间距和层间重叠等参数,通常由代工厂提供。基于微米的设计规则以具体数值表示,但不同工艺之间难以直接迁移。为解决这一问题,学术界提出了可扩展设计规则,如Mead & Conway的Lambda规则,使用基本单位λ(Lambda)表示尺寸,便于在不同工艺间迁移设计。MOSIS平台采用基于Q的通用可扩展设计规则,适合教学和原型设计。晶体管尺寸通常用宽度与长度之比W/L表示,数字电路中常选择最小沟道长度以提
2025-05-12 16:46:59
954
原创 数字ic后端设计从入门到精通3(含fusion compiler, tcl教学)track,xml
可以替换、添加、移除或切换选中的对象。支持按对象类型进行过滤(如仅选择cellnetpin等)。所有操作会实时反映到 GUI 上,比如布局视图、对象浏览器等窗口会同步更新。
2025-05-07 09:32:35
870
原创 超大规模集成电路物理设计:从图分割到时序收敛(原书第2版)介绍
超大规模集成电路物理设计:从图分割到时序收敛(原书第2版)》是由安德·B. 卡恩(Andrew B. Kahng)等人编写的,专注于介绍超大规模集成电路(VLSI)物理设计过程中的基本算法和技术。这本书适合集成电路设计、自动化、计算机专业的高年级本科生、研究生以及工程界的相关人士阅读。
2025-05-06 00:40:12
267
原创 当前用的是 `numpy 2.1.1` - 但是 `torch` / `ultralytics` / 其他库 是在 **numpy 1.x** 编译时打包的(不兼容 numpy 2.x) - 所以程序
动作命令备注降级 numpy最快最安全验证安装成功看 version 是 1.26.4重新跑你的 main.py直接应该不再报错了。
2025-04-28 01:21:45
264
原创 verilog和system verilog常用数据类型以及常量汇总
常量本身并不属于数据类型,而是属于值的范畴。它们是通过特定的数据类型来存储和表示的。换句话说,常量是指其值在定义后不能被改变的实体,而数据类型决定了这些常量(以及变量)可以存储什么样的值及如何解释这些值。,它并不是 Verilog-2001 的标准数据类型,而是 SystemVerilog 引入的一个新特性。都是用于定义常量的关键字,但它们的使用场景和作用范围有所不同。在 Verilog-2001 和 SystemVerilog 中,的特性,而不是 Verilog-2001 的一部分。
2025-04-24 23:28:05
692
原创 nvcc warning : Support for offline compilation for architectures prior to ‘<compute/sm/lto>_75‘ will
使用 C++ 的桌面开发”(Desktop development with C++)。MSBuild 工具 和 Windows SDK。如果两条命令都能返回正确的路径,则说明配置无误。,可以将其路径永久添加到系统的。为了让普通命令提示符也能找到。CUDApath在安装目录。为了避免每次都手动运行。
2025-04-22 23:26:29
1007
原创 从脚本到python:脚本化办公
通过逐行分析,我们可以理解脚本中使用的各种语法元素和功能模块。导入模块: 使用import语句导入所需的模块,如ossysre和gzip。常量定义: 使用大写字母定义常量和。函数定义: 使用def关键字定义函数find_files和main。列表: 使用方括号[]创建和操作列表,例如matches和results。字符串: 使用引号''或""创建字符串,例如和格式化字符串: 使用str.format方法格式化输出字符串,确保对齐和替换空格为下划线。异常处理: 使用try和except。
2025-04-21 20:40:16
916
原创 数字ic后端设计从入门到精通2(含fusion compiler, tcl教学)
Reference:是对库中某种类型单元的定义或模板,它定义了单元的功能、特性等信息。Instance:是基于 reference 创建的具体对象,具有明确的位置、连接等物理属性。在实际操作中,当你查看设计时,命令会显示所有使用的 references(即设计中引用的不同单元),而则允许你在设计的层次结构中导航,聚焦于特定的 instance 上进行更详细的操作或检查。理解这两者之间的关系有助于更好地管理和优化你的设计。Pitch。
2025-04-21 20:23:55
950
原创 noc多核芯片设计:booksim仿真从入门到精通1smart noc
以下是 8x8_mesh_smart(SMART NoC) 和 普通NoC(传统Mesh) 的详细对比,涵盖 关键数据 和 实现差别:延迟与吞吐量:数据包大小:分片与效率:硬件开销:适用性:
2025-04-21 16:54:17
371
原创 数字ic后端设计从入门到精通1(含fusion compiler, tcl教学)
Port(端口):是模块对外的接口,用于定义模块与其他模块或外部环境之间的信号交换点。Pin(引脚):是端口的具体实现,代表了物理或逻辑上的连接点,用于信号的实际传递。关系:端口在高层次设计中定义,经过综合和布局布线后映射为具体的引脚。: 由于该工具既能综合又能布线,所以同时存在上述两种命令在 Synopsys Fusion Compiler 2019(简称 FC2019)中,查看引脚(pin)的宽度、面积等物理参数需要使用相关的查询命令和工具功能。以下是具体的步骤和方法:1. 使用命令。
2025-04-15 17:45:28
1205
原创 报错解决秘笈
1.查看err/Err信息,看自己是否能直接解决或者直接理解。4.找到影响报错的变量,查看对他赋值的上下文,要找到父变量。2.找到报错出现的源文件,grep信息行,找到所在的文件。5.思考为什么没有被赋值,是仲裁原因还是疏漏。3.查看文件打印信息的代码,查看是否输出。
2025-04-14 16:02:03
141
原创 华为数字芯片机考2025合集5已校正
下列选项中()不是 Verilog HDL 的关键字。()A. triB. forC. forceD. edgeVerilog 关键字是语言预定义的保留字,用于语法结构或特定功能。正确答案:D. edge总结:一个16选1的one-hot数据选择器,其地址输入(选择控制输入)端有几个?()A. 1B. 16C. 4D. 2正确答案:B. 16总结:注:这里原题中if块就没有赋值语句A.正确B.错误这段代码是一个 Verilog 代码片段,用于实现一个乘法器的功能。具体代码如下:分析
2025-04-09 18:00:12
1000
1
原创 华为数字芯片机考2025合集4已校正
(a[*3])表示连续 3 次高电平。(a[->3])表示非重叠匹配的 3 次高电平(可以是连续或间断的)。(a[=3])表示重叠匹配的 3 次高电平。题目要求的是 “连续或间断地出现 3 次为高电平”,因此正确答案是C。27. 题目内容ASIC 开发流程中,如下环节的先后顺序是?()解析1. ASIC 开发流程RTL 设计:编写硬件描述代码。综合(Synthesis):将 RTL 转换为门级网表。布局布线(P&R):将门级网表映射到物理芯片。2. 最终答案正确答案。
2025-04-09 14:46:35
1434
1
原创 华为数字芯片机考2025合集1已校正
A.正确B.错误解题步骤理解 generate for 的作用:generate for 是 Verilog 中的一种生成块语法,用于在编译时根据条件重复生成硬件结构(如模块实例化、逻辑代码等)。它的循环变量(即“标尺变量”)必须在生成块中声明,且专门用于控制生成逻辑的迭代。明确循环变量的类型要求:Verilog 标准规定:generate for 的循环变量必须声明为 genvar 类型。例如:genvar i;// 正确声明generatefor (i = 0。
2025-04-09 00:24:34
1045
原创 fatal: unable to access ‘https://github.com/xxx‘: Failed to connect to github.com port 443 after 110
本地DNS服务器可能无法正确解析github.com,您可以尝试修改DNS设置为公共DNS服务器如Google的8.8.8.8和8.8.4.4,或者直接在命令行中ping GitHub的IP地址(可以通过一些在线工具查询到GitHub的当前IP地址)来进行测试。如果是在公司或学校的网络环境中,可能存在防火墙限制,建议尝试使用移动数据或其他网络进行测试。在打开的文件中添加以下内容,这将告诉 SSH 客户端对 github.com 的请求应该发送到 ssh.github.com 并且使用端口 443。
2025-04-08 16:16:34
518
原创 error while launching program: Cannot stop Microblaze. Microblaze is held in reset
确认时钟源是否正常工作,频率是否符合设计要求。使用示波器或逻辑分析仪检查时钟信号是否有抖动或其他异常。
2025-02-06 16:22:55
780
原创 计算机体系结构基础胡伟武第三版课后习题第六章
WDATA [63:0] - 数据信号,共 64 线 -WSTRB [7:0] - 字节使能信号,共 8 线。AWUSER [n-1:0] - 用户定义信号(如果支持),这里假设没有用户信号,所以为 0 线。ARUSER [n-1:0] - 用户定义信号(如果支持),这里假设没有用户信号,所以为 0 线。WUSER [n-1:0] - 用户定义信号(如果支持),这里假设没有用户信号,所以为 0 线。BUSER [n-1:0] - 用户定义信号(如果支持),这里假设没有用户信号,所以为 0 线。
2025-01-24 17:25:01
994
原创 计算机体系结构基础胡伟武第三版课后习题第五章
寄存器重命名 是在指令解码后立即进行的,目的是消除伪依赖,为后续的乱序执行做准备。保留站 在操作数准备完毕后接收指令,作为指令等待执行的临时存放地。重排序(提交) 发生在指令执行完成之后,确保结果能够按照程序的初始顺序正确提交。通过这种方式,乱序执行可以在不影响程序正确性的前提下,最大化利用处理器的执行资源,提高性能。假设 A 处理器有两级 Cache, 一级 Cache 大小为 32KB, 命中率为 95%, 命中延迟为 1 拍;
2025-01-24 16:15:50
879
原创 括转移预测技术、 乱序执行技术、 超标量 (又称为多发射) 技术,这几种技术哪个依赖于芯片制程的进步?
所有这三种技术都从不同程度上受益于芯片制程的进步,但 超标量(多发射)技术 可能最为明显。随着摩尔定律的发展,每一代新的制程节点都能提供更多的晶体管资源,从而使设计师能够在单个核心中集成更多的执行单元,进而支持更高的并发度和性能。随着制程技术的进步,可以在更小的空间内集成更多的功能模块,并且能够更好地处理高速缓存一致性等问题,这对乱序执行非常有利。超标量处理器需要多个独立的执行单元以及相应的调度逻辑,这对晶体管数量有很高的要求。更精细的制程可以容纳更复杂的预测逻辑,同时保持较低的功耗和发热水平。
2025-01-24 11:54:57
374
原创 计算机体系结构基础胡伟武第三版课后习题第四章
场景 1: 丢失更新线程 A 执行 lwt00a0),加载了共享变量的当前值,比如 5。线程 A 执行 addiu $t0, $t0, 1,将值增加到 6。在 线程 A 来不及执行 swt00a0) 之前,线程 B 开始执行。线程 B 也执行 lwt00a0),再次加载共享变量的原始值 5。线程 B 执行 addiu $t0, $t0, 1,将值增加到 6。线程 B 执行 swt00a0),将值 6 存储回共享变量。接着 线程 A 继续执行 swt0。
2025-01-23 16:22:06
853
原创 Tcl教程
通过set命令创建和设置变量,Tcl中的变量没有明确的类型,它们是动态类型的。:使用if、for、foreach、while等命令实现条件判断和迭代。:类似于Python的函数,用proc命令定义,可以接受参数并执行一系列操作。:用于组织代码,避免名称冲突,相当于Python中的模块概念。:Tcl/Tk特别适合图形用户界面(GUI)开发,它本身就是一个事件驱动语言。
2025-01-21 14:52:24
509
原创 Unix Shell Programming (Third Edition)(系列博客代码采用c shell)(四)(chapter6-10)
单引号用于创建一个字符串,其中的所有字符都被视为普通字符,不会进行变量替换或命令替换。
2025-01-17 16:45:11
658
原创 计算机体系结构基础胡伟武第三版课后习题第三章
如果在该程序片段开始执行前数组 a 和 b 均从未被访问过, 且程序片段执行过程中未发生中断, 同时忽略程序代码和局部变量 i 所占地址空间的影响, 请问执行该程序片段的过程中会发生多少次与 TLB 地址翻译相关的异常?该指令会将 CSR. PRMD 的 PPLV 和 PIE 域分别回填至 CSR. CRMD 的 PLV 和 IE 域, 从而使得 CPU 的权限等级和全局中断响应状态恢复到异常发生时的状态, 同时该指令还会将 CSR. ERA 中的值作为目标地址跳转过去。X86 的IRET指令有类似效果。
2025-01-17 11:18:42
642
原创 计算机体系结构基础胡伟武第三版课后习题第二章
使用寄存器的优势在于, 寄存器的访问速度快, 便于编译器的调度优化, 并可以充分利用局部性原理, 大量的操作可以在寄存器中完成。此外, 寄存器-寄存器型的另一个优势是寄存器之间的相关性容易判断, 容易实现流水线、 多发射和乱序执行等方法。访存总位数:指令码 * 指令数+内存地址操作数宽度 * 内存使用次数+寄存器操作数宽度 * 寄存器使用次数+数据宽度 * 内存使用次数。(2)指令总位数:指令码 * 指令数+内存地址操作数宽度 * 内存使用次数+寄存器操作数宽度 * 寄存器使用次数。
2025-01-16 16:09:52
748
原创 Unix Shell Programming (Third Edition)(系列博客代码采用c shell)(三)(chapter3-5)
定义:登录Shell是用户登录系统时启动的第一个Shell实例。特点执行特定的初始化脚本(如 .login 或 .cshrc),设置环境变量和其他配置。可能需要验证用户身份(如通过密码)。定义:命令文件是一系列Shell命令的集合,保存在一个文件中,可以像普通命令一样执行。用途:自动化任务、简化复杂操作、提高效率。定义:变量是存储数据的容器,可以在脚本中引用和修改。特点:可以存储字符串、数字等不同类型的数据。变量名区分大小写。
2025-01-16 14:36:15
1201
原创 Unix Shell Programming (Third Edition)(系列博客代码采用c shell)(二)(chapter1-2)
定义:CLI 是用户通过文本输入命令与计算机交互的一种方式。特点高效性:直接执行命令,快速完成任务。灵活性:支持复杂的命令组合和脚本编写。可定制性:可以根据个人需求配置环境。示例:启动终端并执行命令在大多数Linux发行版或macOS系统中,可以通过以下步骤启动终端:Ubuntu/Linux:点击左上角的“应用程序”菜单,搜索并选择“终端”。macOS:打开“应用程序” > “实用工具” > “终端”。启动终端后,您可以开始输入命令。例如,列出当前目录中的文件:Csh。
2025-01-15 16:14:46
902
原创 Unix Shell Programming (Third Edition)(系列博客代码采用c shell)(一)
什么是C Shell (csh)?C Shell 是一种命令行解释器,它提供了一种交互式用户界面给操作系统,特别是Unix和类Unix系统。它由Bill Joy在伯克利大学开发,首次出现在1978年的BSD Unix版本中。Shell家族指的是那些用于Unix、Linux以及类Unix操作系统中的命令行解释器。这些Shell不仅提供了用户与操作系统之间的交互界面,还支持脚本编程,允许自动化任务的执行。
2025-01-15 10:53:34
958
原创 计算机体系结构基础胡伟武第三版课后习题第一章
模块化设计:通过将复杂的计算机系统划分为多个层次,每个层次负责特定的功能,可以简化系统的设计和实现。这种模块化设计使得各个部分可以独立开发、测试和维护,提高了系统的可扩展性和可维护性。抽象层次:每一层都为上一层提供了一定程度的抽象,隐藏了下一层的复杂细节。例如,操作系统为应用程序提供了统一的接口,而不需要应用程序开发者了解硬件的具体细节。这种抽象有助于提高软件的可移植性和易用性。分层优化:不同的层次可以根据其功能特性进行专门的优化。例如,硬件层可以通过改进芯片制造工艺来提高性能和能效;
2025-01-14 16:13:12
1023
原创 ai芯片设计(一)
它包含三个门控机制(遗忘门f, 输入门i, 输出门o),其中“o smaller i”可能指的是在某些情况下,输出门(o)的激活水平可能会小于输入门(i),但这并不是一个固定的规则,而是取决于具体的应用场景和训练结果。卷积神经网络(CNN)就是一种典型的例子,它利用局部感受野的概念,使得每个节点只与输入数据的一部分相连,从而大大减少了需要训练的权重数目。例如,在一个图像识别任务中,如果图像是28x28像素的灰度图像,那么输入层就会有784个节点(28*28=784),每个节点对应图像中的一个像素值。
2025-01-14 11:33:10
708
原创 计算机体系结构知识(二)-gdb和args
‘\0’) 是更安全和完整的方式,因为它既检查 args 是否为 NULL,也检查 args 指向的字符串是否为空。在你的 cmd_si 函数中,args 是一个指向字符的指针 (char *),用于传递用户输入的额外参数。在你的 cmd_si 函数中,args 是一个指向字符串的指针,该字符串包含用户输入的额外参数。例如,如果 args 是 “5”,则 atoi(args) 返回 5。*args:检查 args 指向的字符串是否为空。如果 *args 是 \0,说明 args 指向的字符串是空的。
2024-11-07 17:32:18
928
2
原创 计算机体系结构知识(一)
寄存器是计算机体系结构中的关键组件,它们提供了快速访问和临时存储数据的能力。如果没有寄存器,计算机仍然可以工作,但其性能和效率会受到严重影响。
2024-11-07 10:27:18
1084
原创 AXI知识大全(八股)
AXI,全称为Advanced eXtensible Interface,是由ARM公司提出的AMBA (Advanced Microcontroller Bus Architecture) 3.0协议中最重要的部分。它是一种面向高性能、高带宽、低延迟的片内总线协议,广泛应用于高性能嵌入式系统和SoC (System on Chip) 设计中。官方文档:https://documentation-service.arm.com/static/63ff0ebd56ea36189d4e7ee7?
2024-07-19 10:33:54
1583
原创 小知识点学习方法
1.先找一篇相对权威的详细资料,比如官方文档或详细教程,阅读资料,有不会的名词,以及不明白的关系直接搜索,理清层级结构2.根据自己的用途汇集应用的点,比如用作什么工程,面试,笔试等,根据这些点去搜集资料,如工程,面经,笔试题等,总结整理笔记3.做一个应用它的项目
2024-07-16 16:00:14
176
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人