仓颉语言+vscode配置
1.仓颉简介
仓颉编程语言是一种面向全场景应用开发的通用编程语言,可以兼顾开发效率和运行性能,并提供良好的编程体验,主要具有如下特点:
语法简明高效:仓颉编程语言提供了一系列简明高效的语法,旨在减少冗余书写、提升开发效率,例如插值字符串、主构造函数、Flow 表达式、match、if-let、while-let 和重导出等语法,让开发者可以用较少编码表达相关逻辑。
多范式编程:仓颉编程语言支持函数式、命令式和面向对象等多范式编程,融合了高阶函数、代数数据类型、模式匹配、泛型等函数式语言的先进特性,还有封装、接口、继承、子类型多态等支持模块化开发的面向对象语言特性,以及值类型、全局函数等简洁高效的命令式语言特性。开发者可以根据开发偏好或应用场景,选用不同的编程范式。
类型安全:仓颉编程语言是静态强类型语言,通过编译时类型检查尽早识别程序错误,降低运行时风险,也便于代码维护。同时,仓颉编译器提供了强大的类型推断能力,可以减少类型标注工作,提高开发效率。
内存安全:仓颉编程语言支持自动内存管理,并在运行时进行数组下标越界检查、溢出检查等,确保运行时内存安全。
高效并发:仓颉编程语言提供了用 ...
P7-verilog五层流水线CPU(全指令)
verilog五层流水线CPU-P7(全指令+异常中断处理+外设连接)
模块设计
整体视图:
cpu:
1. GRF(寄存器堆)
端口名
输入\输出
位宽
功能
clk
Input
1
时钟信号
reset
Input
1
复位信号
WE
Input
1
使能信号
PC
Input
31:0
pc
A1
Input
4:0
输入寄存器地址端口1
A2
Input
4:0
输入寄存器地址端口2
A3
Input
4:0
输入寄存器地址端口3,写寄存器地址
EXTRA
Input
4:0
输入寄存器地址端口EX,读寄存器地址
WD
Input
31:0
数据输入端口,输入一个32位数据,存入编码为A3的寄存器中
RD1
Output
31:0
输出编码为A1中输入的寄存器中的值
RD2
Output
31:0
输出编码为A2中输入的寄存器中的值
RDEXTRA
Output
31:0
输出编码为EXTRA中输入的寄存器中的值
初始化!!
1234567891011121314151617181920212223242526 ...
P6-verilog五层流水线CPU(全指令)
P6-verilog五层流水线CPU(全指令)
模块设计
整体视图:
1. GRF(寄存器堆)
端口名
输入\输出
位宽
功能
clk
Input
1
时钟信号
reset
Input
1
复位信号
WE
Input
1
使能信号
PC
Input
31:0
pc
A1
Input
4:0
输入寄存器地址端口1
A2
Input
4:0
输入寄存器地址端口2
A3
Input
4:0
输入寄存器地址端口3,写寄存器地址
EXTRA
Input
4:0
输入寄存器地址端口EX,读寄存器地址
WD
Input
31:0
数据输入端口,输入一个32位数据,存入编码为A3的寄存器中
RD1
Output
31:0
输出编码为A1中输入的寄存器中的值
RD2
Output
31:0
输出编码为A2中输入的寄存器中的值
RDEXTRA
Output
31:0
输出编码为EXTRA中输入的寄存器中的值
初始化!!
1234567891011121314151617181920212223242526272829303132333435 ...
P5-verilog五层流水线CPU(简化指令)
verilog五层流水线CPU(简化指令)
模块设计
整体视图:
1. GRF(寄存器堆)
端口名
输入\输出
位宽
功能
clk
Input
1
时钟信号
reset
Input
1
复位信号
WE
Input
1
使能信号
PC
Input
31:0
pc
A1
Input
4:0
输入寄存器地址端口1
A2
Input
4:0
输入寄存器地址端口2
A3
Input
4:0
输入寄存器地址端口3,写寄存器地址
EXTRA
Input
4:0
输入寄存器地址端口EX,读寄存器地址
WD
Input
31:0
数据输入端口,输入一个32位数据,存入编码为A3的寄存器中
RD1
Output
31:0
输出编码为A1中输入的寄存器中的值
RD2
Output
31:0
输出编码为A2中输入的寄存器中的值
RDEXTRA
Output
31:0
输出编码为EXTRA中输入的寄存器中的值
初始化!!
123456789101112131415161718192021222324252627282930313233343536 ...
P4-verilog单周期CPU(简化指令)
verilog单周期CPU(简化指令)
模块设计
整体视图:
1. GRF(寄存器堆)
端口名
输入\输出
位宽
功能
clk
Input
1
时钟信号
reset
Input
1
复位信号
WE
Input
1
使能信号
PC
Input
31:0
pc
A1
Input
4:0
输入寄存器地址端口1
A2
Input
4:0
输入寄存器地址端口2
A3
Input
4:0
输入寄存器地址端口3,写寄存器地址
WD
Input
31:0
数据输入端口,输入一个32位数据,存入编码为A3的寄存器中
RD1
Output
31:0
输出编码为A1中输入的寄存器中的值
RD2
Output
31:0
输出编码为A2中输入的寄存器中的值
初始化!!
123456789101112131415161718192021222324252627282930313233343536373839module GRF( input clk, input reset, input WE, input [31:0] PC, input [ ...
P3-logisim单周期CPU(简化指令)
logisim单周期CPU(简化指令)
模块设计
整体视图:
1. GRF(寄存器堆)
端口名
输入\输出
位宽
功能
clk
Input
1
时钟信号
reset
Input
1
复位信号
WE
Input
1
使能信号
A1
Input
4:0
输入寄存器地址端口1,对应指令码25:21
A2
Input
4:0
输入寄存器地址端口2,对应指令码20:16
A3
Input
4:0
输入寄存器地址端口3,根据R型或I型指令分别对应指令码15:11和20:16
WD
Input
31:0
数据输入端口,输入一个32位数据,存入编码为A3的寄存器中
RD1
Output
31:0
输出编码为A1中输入的寄存器中的值
RD2
Output
31:0
输出编码为A2中输入的寄存器中的值
2. DM
使用一个RAM实现,str口连接MemWrite信号,ld口连接Mem2Reg信号,clr口连接reset异步复位信号,输入数据为GRF模块的RD2口。
DM中一个字是一个地址,按字节为14位(16K),按字为12位地址端口应该连接ALU ...
mips知识点
知识点
寄存器地址:
伪指令
**.data:**用于预先存储数据的伪指令的开始标志。
**.text:**程序代码指令开始的标志。
**.word:**以字为单位存储数据。
**.asciiz:**以字节为单位存储字符串。
**.space:**申请若干个字节的未初始化的内存空间。
V0 的不同值
常用:
Service
Code in $v0
Arguments
Result
print integer
1
$a0 = integer to print
print float
2
$f12 = float to print
print double
3
$f12 = double to print
print string
4
$a0 = address of null-terminated string to print
read integer
5
$v0 contains integer read
read float
6
$f0 contains float read
read double
7
$f0 cont ...
vscode配置
1.vscode简介
VSCode是微软出的一款轻量级编辑器,它本身只是一款文本编辑器而已,并不是一个集成开发环境(IDE),几乎所有功能都是以插件扩展的形式所存在的。因此,我们想用它编程,不只是把vscode下载下来就行,还需要安装对应编程语言的扩展以及相应的编译器。
2.安装vscode
进入vscode官网:https://code.visualstudio.com/
点击红色圈出区域,见到下图所示选项。
根据自己电脑的系统选择相应的下载项。(注:stable是稳定版本;insider是内部测试版本,可能会出问题,建议选stable)
下载完成后得到下图所示安装程序,双击进入安装程序
这里我只勾选了这两个
注意,这里安装路径最好是全英文的,不要创建中文文件夹。另外根据硬盘实际情况看要不要放在c盘
安装完成后打开vscode,点击红色圈出区域,在搜索框分别搜索“C/C++”以及“chinese”,安装C/C++插件(必须有)与简体中文插件编译运行插件(个人推荐)
至此,vscode安装以及必备插件安装就完成了,可以关掉vscode了
3.安装MinGW-w64
...
各种测试
标题
标题
标题
标题
测试正文1
__粗体__简易换行
测试粗体和*html(斜体)*换行
斜体粗体
转义符:
*
\
_
块引用
The quarterly results look great!
Revenue was off the chart.
Profits were higher than ever.
Everything is going according to plan
列表
This is the first list item.
Here’s the second list item.
I need to add another paragraph below the second list item.
Everything is going according to plan.
And here’s the third list item.
1npm install -g cnpm --registry=http://registry.npm.taobao.org
1234567#include <iostream& ...