数字电路实验(七):状态机设计与仿真 一、状态机 状态名 y3 y2 y1 y0 A 0 0 0 0 B 0 0 0 1 C 0 0 1 0 D 0 0 1 1 E 0 1 0 0 F 0 1 0 1 G 0 1 1 0 H 0 1 1 1 I 1 0 0 0 这是一个状态编码,建立一个Verilog文件,用SW0作为FSM低电平有效同步复位端,用SW1作为输入w,用KEY0作为手动的 2024-07-19 Digital Design #simulation #digital logic #FSM
数字电路实验(六):移位器设计与仿真 一、移位器 控制位 工作方式 000 清零 001 置数 010 逻辑右移 011 逻辑左移 100 算数右移 101 左端串行输入1位值,并行输出8位值 110 循环右移 111 循环左移 以下是一个移位寄存器的实现: 123456789101112131415161718192021222324252627282930module move(ctl 2024-07-18 Digital Design #simulation #digital logic #shifter
数字电路实验(三点五):ALU 设计与仿真 设计 ALU在CPU中,ALU的功能除了加减法运算之外,往往还包含逻辑运算、移位、乘除法、比较大小等等。我们这里按照RISC-V中基础指令集RV32I的ALU的设计要求来进行介绍。 RISC-V基础指令集RV32I只支持32位整型数值的操作。操作数可以是带符号补码整数或无符号数。ALU不需要完成乘除法,不需要进行溢出判断,相关操作由软件来完成。RV32I的ALU需要完成以下操作: 加减法操作 2024-07-16 Digital Design #simulation #digital logic #ALU
数字电路实验(三):带减法功能的加法器 一、加法器一位加法器就是异或作为结果,与作为进位标志,因此可以很简单的设计出一位加法器: 如果将四个一位加法器连起来,那么就成 4位了串行进位加法器电路: 需要注意的是,上面的加法器是基础构建,它只执行加法功能,其它任何溢出、进位等等都是高层的概念,和加法器没有任何关系。 二、加法器执行加法计算在数据类型一致的情况下,比如,长度统一。这时候就可以由加法器计算它们之间的加法运算,但是数据类型 2024-07-15 Digital Design #digital logic #ALU #adder
数字电路实验(二):译码器、编码器与优先编码 一、译码器译码器带有一个使能输入,以及 n 位输入端,一共能输出 2^n 次方种信号。在二进制码中,最常用的输出编码是位中取1位编码,即任何时刻,m 位输出编码中只能有1位有效,其余各位都为0,这样的二进制编码被称为独热编码(one-hot encoded),意思是那个被置为1的码看起来是“热”的,而二进制译码器输出的信号就是独热编码。也可以理解为,这些信号之间是正交的,某一个信号不能通过其它 2024-07-14 Digital Design #digital logic #decoder #encoder
数字电路实验(一):基础门级电路实践 实验过程本实验采用行为建模,top.v 代码如下: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788modul 2024-07-13 Digital Design #ysyx #digital logic #lab
Verilator 仿真环境搭建:波形、自动化与收尾 一、前言上一篇文章中的最后提到了应该写一个脚本来一键执行从转换、编译到运行的所有步骤,这正是这一篇文章的一个主题。 二、波形图在安装了 gtkwave 之后,就可以利用–trace 参数来在运行的过程中,生成 wave.vcd,然后通过 gtkwave 查看: 1gtkwave wave.vcd 如下图所示: 三、自动化事实上,是要将很多命令放在一起,顺序执行就好了: 12345678910 2024-07-13 Digital Design #Verilator #waveform #automation
Verilator 仿真环境搭建:双控开关实验 一、Verilator什么是 VerilatorVerilator 是一个开源的 Verilog HDL(硬件描述语言)仿真和转换工具,它将 Verilog 代码转换为高性能的 C++ 或 SystemC 代码。Verilator 主要用于对 RTL(寄存器传输级)设计进行仿真,尤其擅长处理大型的复杂数字电路。以下是 Verilator 的一些关键特性和用途: 特性 高性能: Verilat 2024-07-12 Digital Design #Verilator #simulation #digital circuit
Hexo 博客搭建:从初始化到发布流程 〇、前言本文将会讨论,如何将 CSDN 上的博客,拉取到本地,然后PicGo、Hexo、Github 等工具建立个人博客,环境为 Ubuntu 20.04。 一、利用 Hexo预备工作首先安装 Node.js、npm、git工具。 123456> node -vv12.22.9> npm -v8.5.1> git versiongit version 2.34.1 安装 H 2024-07-06 Tooling #Hexo #blog #GitHub Pages
Hexo 自动发布:使用 GitHub Actions 部署博客 〇、前言本文将会讨论,如何将 CSDN 上的博客,拉取到本地,然后PicGo、Hexo、Github 等工具建立个人博客,环境为 Ubuntu 20.04。 一、利用 Hexo预备工作首先安装 Node.js、npm、git工具。 123456> node -vv12.22.9> npm -v8.5.1> git versiongit version 2.34.1 安装 H 2024-07-06 Tooling #GitHub Actions #Hexo #CI/CD