Linux学习笔记
本文档记录一些 Linux 相关的工具、命令的使用
数字集成电路、芯片设计相关的笔记
本文档记录的是我在学习计算机体系结构时遇到的有趣的知识点,希望以后自己对于计算机体系结构可以有一个更加深刻的认识。by Timemeansalot in 2022.11.0 6
Git 概念一开始看起来比较多,但是用久了明白了其原理之后就发现其实 Git 其实也不难
此文档包含我学习 Verilog 时遇到的问题,对于一些第一次遇到的 Verilog 关键字进行了记录
verilog
定义模块的时候,其输入端口只能定义成wire
(从模块内部来看,外部输入给它的信号就是一个导线),其输出端口可以定义成wire
,也可以定义成reg
verilog
例化模块的时候,模块的输入端口可以链接到wire
或者reg
,模块的输出只能连接到wire
(从模块外部来看,模块输送到外部的信号也只是一个导线)
组合逻辑电路:
简单的组合逻辑电路可以用assign
语句来实现,例如:
1 | module mux ( |
复杂的组合逻辑电路可以用always@(*)
来实现,由于实用了
always
语句,输出数据必须被声明为reg
类型。但是不用担心它的结果会被锁存一拍,实际上其生成的电路跟assign
语句生成的电路是一样的,例如下面的代码跟上面的代码,其生成的电路是一样的:
1 | module mux ( |
测试文件,一个简单的测试文件包括如下的重要部分:
reg
,输出信号声明为wire
1 | module mux_tb (); |
文件操作:可以直接从文件读取数据来给“dut 输入信号赋值”,也可以直接通过文件读取数据“来给 dut 内部数组赋值”, 参考:runoob.com Verilog 文件操作
1 | integer fd, err; |
1 | initial begin |
输出 dut 内部数组的波形(verilog 默认情况下只会输出 dut 内部信号的波形,但是不会输出 dut 内部的数组的波形),因此需要手动通过一个循环,逐行输出 dut 的内部数组
1 | initial begin |
Makefile:使用 Makefile 是为了更方便地编译文件、运行仿真、生成波形
1 | # Makefile |
1 | # iverilog.mk |
打印控制信息:
$write
打印完后自动不换行、$display
:打印完后要自动换行
逻辑符号:
&&
:逻辑与、&
:按位与!
: 逻辑取反、~
:按位取反Linear Algebra RoomNotes reading notes.
配置 Deepin 和 VSCode 的开发环境
The below is what I have leart