无符号和补码共用一个加法器
发表于
我们要证明的核心命题是: 同一个二进制加法电路(即模 \(2^n\)加法),既实现了无符号数加法,也实现了补码加法。
我们将分为三个步骤进行证明: 1. 定义 (Definition):严格定义位向量、无符号数值和补码数值。 2.引理 (Lemma):证明无符号值和补码值在模 \(2^n\) 下同余。 3. 定理 (Theorem):证明加法闭环。
第一步:定义 (Definitions)
设 \(X\) 为一个 \(n\) 位的二进制向量,其位序列为 \(x_{n-1}x_{n-2}\dots x_0\),其中 \(x_i \in \{0, 1\}\)。
1. 无符号数的值函数
信息的表示和处理
码制
不同的 码制 即对 位模式做出不同的解释。
原码反码补码最高位作为符号位\(-2^{w - 1} - 1\)\(-2^w\)符号位取反$2^w - 1 - x $$2^w - x $第二行是不同码制对最高位的解释,第三行是已知 x 如何求-x 的表示
原码
为了区分正数和负数,用最高位当作符号位。这样符合人类的直觉,但对计算机计算很不友好。比如:
计算 \(1 + (-1)\)
* 原码表示 0001 + 1001
* 如果是纯加法电路会得到 0001 + 1001 =1010 (结果为-2),计算有误。
这意味着,如果用原码来表示数字,CPU的计算单元(ALU)必须设计的
从c语言到二进制代码
发表于
分类于
一生一芯
从c语言到二进制代码可分为
预处理 -> 编译 -> 汇编-> 链接 这四个过程
预处理
随记3
发表于
分类于
随记
我是个很幸运的人,在这21年中我受到了来自很多人的帮助和关爱。即使我也受到了很多挫折,但是幸运的是我没被打倒。
最近几年发生了很多事,可以说是彻底改变了我。我的女朋友给予了我很大帮助,我非常非常感谢她,也觉得非常幸运能遇到她。
接入NVBoard
Makefile
为了搞懂NVBoard是怎么工作的,先看一下它的构建规则是怎么样的
其构建规则在/scripts/nvboard.mk中,Makefile的一些补充知识
1. 自动变量:
$@: 目标
$<: 第一个依赖
$^: 所有依赖(去重)
$+: 所有依赖(不去重)
2. 命令前加@,不在终端中显示该命令,但仍会显示输出
3. 内建变量:
CXX: cpp编译器
CC: c编译器
CPPFLAGS: 编译器选项
Projection Matrices and Least Squares
投影(Projection)
概要
投影矩阵、投影、误差向量
目标: 找出向量b在空间S上的投影p,以及产生p的矩阵P
误差向量: \(e = b - p = A \hat x\)
tips: A 是空间 S 的基向量构成的矩阵
方法: 根据几何关系可以得到\(e\)与空间S正交。描述一个空间的最好方法就是用基向量描述,把基向量放入矩阵A中,该矩阵的列空间即为空间S,由\(e \perp S\),得到\(e \in LN(S)\),即误差向量在S的左零空间中。
下图是图例:
由上述关系可得:
\[ \begin{aligned} A^\top (b - A\hat x) &=
随记2
发表于
分类于
随记
路还很长,对自己不要太严格了,take it easy.
随机信号处理-功率谱
只为了考试!
过程的一些数字特征
1. 均值 * 若功率谱连续则均值为0
2. 自相关函数和互相关函数 * 自相关 \(R_{X}(\tau) = \mathbb{E}[X(t)X(t+\tau)]\)
* 互相关 \(R_{XY}(\tau) = \mathbb{E}[X(t)Y(t+\tau)]\)
3. 自相关系数 * def: \(\rho_X(\tau)=\frac{R_X(\tau)}{R_X(0)},\qquad \rho_X(0)=1\)
4. 方差/协方差 * 方差计算公式: \(Var(X) =
初识GTKWAVE
编写testbench生成仿真文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include
#include
#include
// 包含顶层模块的头文件
#include "Vtop.h"
#include "verilated.h"
// 生成vcd格式的仿真文件所需头文件
#include "verilated_vcd_c.h"