Digital VLSI Design-lecture 5
Timing Analysis 同步设计 大多数数字设计是同步的,并且使用顺序元件构建。 同步设计消除了竞争现象,并且更适合设计流水线,提高了吞吐量。 假设所有顺序元件都是边沿触发的,并使用D触发器作为寄存器。 那么出发它有三个关键的时序参数 #mjx-9325c56{ display:contents; mjx-assistive-mml { user-select: text !important; clip: auto !important; color: rgba(0,0,0,0); } mjx-container[jax="SVG"] { direction: ltr; } mjx-container[jax="SVG"] > svg { overflow: visible; min-height: 1px; min-width: 1px; } mjx-container[jax="S...
Digital VLSI Design-lecture 4
Lecture 4: Logic Synthesis Part 2 在 lec3 的学习中,我们已经知晓了编译和库。我们已经将设计加载到综合器中,也加载了标准单元库和IP。 接下来我们要讨论综合过程中更核心的部分。 布尔最小化 布尔最小化是综合过程中的一个关键步骤,涉及将逻辑表达式简化为最小形式,以优化电路设计。 展开和绑定和预映射优化 在这个步骤中,工具将执行以下操作 将 RTL 编译为布尔数据结构 将非布尔模块绑定到叶单元 优化布尔逻辑 将设计结果映射到通用的、与技术无关的逻辑门。 这是逻辑综合的核心,自八十年代一直研究的主题。 Two-Level Logic 在展开过程中,主要输入和输出(端口)被定义,顺序元素(触发器、锁存器)被推断。这导致了一组组合逻辑云: 输入端口和寄存器输出是逻辑的输入。 输出端口和寄存器输入是逻辑的输出。 输出可以描述为输入的布尔函数。 布尔最小化的目标是减少输出函数中的文字数量。 许多不同的数据结构都能用来表示布尔函数,如真值表、立方体、二元决策图、方程等。 许多研究是基于SOP或POS表示法进行的,这种表示法更为人知的是“两级逻辑”(...
Digital VLSI Design-lecture 3
Lecture 3: Logic Synthesis Part 1 什么是逻辑综合 综合是将 RTL 转换为特定技术的门级网表的过程,并根据预定义的约束进行优化。 你将从以下内容开始 行为级 RTL 设计 标准单元库 一组设计约束 你结束时得到: 映射到标准单元库的门级网表 (对于 FPGA:查找表、触发器和 RAM 块) (有希望)在速度、面积、功耗等方面也很高效。 形式化地,给你一个有限状态自动机 #mjx-39e18c88{ display:contents; mjx-assistive-mml { user-select: text !important; clip: auto !important; color: rgba(0,0,0,0); } mjx-container[jax="SVG"] { direction: ltr; } mjx-container[jax="SVG"]...
物理机linux下安装 stable-diffusion 踩坑记录
前言 心血来潮,买了一张 3080 20G ,遂安装ubnutu。 以下东西不保证完整,想到啥写啥。 踩坑(过程)统计 * 软件安装类问题 * 显卡驱动安装 * 网络问题 * stable diffusion相关 * 稀奇古怪的问题 软件安装类问题 这部分踩坑如下: 安装慢 很显然是要换源。 sudo vi /etc/apt/sources.list 在里面设置 1234deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiversedeb http://mirrors.aliyun.com/...
ML的HelloWorld:MNIST识别
kaggle地址 数据是很普通的MNIST(28*28) 即一个 28*28 的256灰度图,要求你识别出数字 操作系统:世界上最垃圾的操作系统(我还没说是哪个呢) 简单CNN Acc:0.99 CODE 参考&部分代码 数据准备 首先我们来实现Baseline(Acc=0.99) 读入数据,我们使用 pandas 读入数据 12train_origin = pd.read_csv(PATH+TRAIN)test_origin = pd.read_csv(PATH+TEST) 由于我们的训练集是只有一个label,但是我们神经网络需要输出一个10维向量(代表 0 to 9),因此我们改写一下数据集,把 label 转化成 onehot 编码的 其实并不需要输出一个十维的,也可以就输出一个数字,但是一般不会这么写 1one_hot_embedding = pd.get_dummies(train_origin.label,prefix='y') 然后我们把这个编码出来的合并到原来训练集中,并且删除原来的label标签 12345# axis = 1...
cs224w-8-GNN-Application
General GNN Framework 通用GNN框架 图增强 之前的假设是输入图=计算图,但是有可能遇到图缺少特征性或者图的结构不利于计算。 例如,图过于稀疏(sparse),那就导致无效的消息传递,如果过于稠密(dense),就会消耗大量时间,如果过大(large),GPU就很难算。 解决方案就是 对于图缺少特诊:使用图特征性增强。 对于稀疏图,增加虚点虚边。 对于稠密图,Sample neighbors when doing message passing 对于大的图,对子图采样后嵌入 为什么要增强 图缺少特征 做法 1.为节点分配一个常量 2.把节点编号转化成一个one-hot vector 两种方案的对比 一些图的结构在GNN上跑的不好 例如 #mjx-35869398{ display:contents; mjx-assistive-mml { user-select: text !important; clip: auto !important; ...
cs224w-7-GNN2
GNN 层 Idea 1.将一组向量压缩成单个向量 2.两部处理,包括获得信息以及聚合 消息计算 #mjx-c5b010d{ display:contents; mjx-assistive-mml { user-select: text !important; clip: auto !important; color: rgba(0,0,0,0); } mjx-container[jax="SVG"] { direction: ltr; } mjx-container[jax="SVG"] > svg { overflow: visible; min-height: 1px; min-width: 1px; } mjx-container[jax="SVG"] > svg a { fill: blue; stroke: blue; } mjx-assistive-mml { posi...
cs224w-6-GNN1
我们已经学会了一种 #mjx-79cd8968{ display:contents; mjx-assistive-mml { user-select: text !important; clip: auto !important; color: rgba(0,0,0,0); } mjx-container[jax="SVG"] { direction: ltr; } mjx-container[jax="SVG"] > svg { overflow: visible; min-height: 1px; min-width: 1px; } mjx-container[jax="SVG"] > svg a { fill: blue; stroke: blue; } mjx-assistive-mml { position: absolute !important; top: 0px; ...













