<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[score_one的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/score_one</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; score_one]]></copyright><item><title><![CDATA[UC第三节]]></title><link>https://blog.youkuaiyun.com/score_one/article/details/130447866</link><guid>https://blog.youkuaiyun.com/score_one/article/details/130447866</guid><author>score_one</author><pubDate>Sun, 30 Apr 2023 13:23:58 +0800</pubDate><description><![CDATA[链接静态库就是将库中被调用的代码复制到调用模块中。动态库没有将代码复制，而是使用时到制定区域调用。静态库本质是将多个目标文件打包成一个文件。静态库的拓展名  .a。例：libxxx.a。]]></description><category></category></item><item><title><![CDATA[UC第二节]]></title><link>https://blog.youkuaiyun.com/score_one/article/details/130447761</link><guid>https://blog.youkuaiyun.com/score_one/article/details/130447761</guid><author>score_one</author><pubDate>Sun, 30 Apr 2023 13:03:34 +0800</pubDate><description><![CDATA[功能：添加或修改一个环境变量，不存在则添加，存在则修改。overwrite:	传0保持原值；传非0 替换以前值。功能：根据环境变量名称获取其值。成功返回0，不成功返回非0。]]></description><category></category></item><item><title><![CDATA[UC第一节]]></title><link>https://blog.youkuaiyun.com/score_one/article/details/130447605</link><guid>https://blog.youkuaiyun.com/score_one/article/details/130447605</guid><author>score_one</author><pubDate>Sun, 30 Apr 2023 12:45:19 +0800</pubDate><description><![CDATA[定义：是管理计算机硬件和软件资源的一个系统软件。echo $name 可以查看环境变量的值。a.被子进程继承，显示在环境变量列表上。shell(壳保护系统内核)linux操作系统—bash。每个进程都有自己的环境变量表。将自定义变量输出环境变量列表。env命令查看环境变量列表。b.不能继承，自定义变量。]]></description><category></category></item><item><title><![CDATA[AZ Processor -----（3）分模块实现]]></title><link>https://blog.youkuaiyun.com/score_one/article/details/122675259</link><guid>https://blog.youkuaiyun.com/score_one/article/details/122675259</guid><author>score_one</author><pubDate>Fri, 14 Apr 2023 09:41:05 +0800</pubDate><description><![CDATA[（1）cpu存储区域的通用寄存器。
指令集最大可以指定三个寄存器作为操作数，
其中俩个为读取值，一个为写入值
因此寄存器堆需要有俩个读取端口和一个写入端口。



]]></description><category></category></item><item><title><![CDATA[设计中加入定点运算]]></title><link>https://blog.youkuaiyun.com/score_one/article/details/130131356</link><guid>https://blog.youkuaiyun.com/score_one/article/details/130131356</guid><author>score_one</author><pubDate>Thu, 13 Apr 2023 15:22:53 +0800</pubDate><description><![CDATA[定点运算实现原理：

实现原理：

]]></description><category></category></item><item><title><![CDATA[实验6补充修改部分，关于CPU模块仿真]]></title><link>https://blog.youkuaiyun.com/score_one/article/details/122889988</link><guid>https://blog.youkuaiyun.com/score_one/article/details/122889988</guid><author>score_one</author><pubDate>Fri, 11 Feb 2022 23:06:51 +0800</pubDate><description><![CDATA[之前的实验6仿真部分，由于端口定义问题，IF阶段出现无法设置reg类型的问题。
这边做补充修改：
在设计模块中，input类型才可以作为仿真时reg类型实例化，output类型只能作为仿真时的wire类型，无法参与仿真过程块。
强制修改一个wire变量为reg变量，无法实现，因为一个变量会同时传递到多个模块，可能会是input，可能会是output。
这边解决办法是将变量多定义一个，单独用于拥有input类型的模块，、（例如new_pc在IF模块中作为input，可以用reg类型，而在cpu控制模块作为ou]]></description><category></category></item><item><title><![CDATA[实验6：CUP的控制模块实现&&CPU全部模块连接]]></title><link>https://blog.youkuaiyun.com/score_one/article/details/122883173</link><guid>https://blog.youkuaiyun.com/score_one/article/details/122883173</guid><author>score_one</author><pubDate>Fri, 11 Feb 2022 20:12:41 +0800</pubDate><description><![CDATA[1.CPU控制模块
cpu控制模块进行对保存CPU状态的控制寄存器进行管理，并且对流水线进行控制
cpu控制模块中设有设置和保存CPU状态的控制寄存器
主要处理流水线刷新延迟、程序中断等异常。
这一模块涉及中断处理、流水线刷新延迟，知识点较杂乱，需要配合相关资料进一步研究。

端口定义：
part8.CPU控制模块
    cpu控制模块进行对保存CPU状态的控制寄存器进行管理，并且对流水线进行控制
    cpu控制模块中设有设置和保存CPU状态的控制寄存器
    ctrl：
             ]]></description><category></category></item><item><title><![CDATA[实验5：CUP的内存MEM阶段实现]]></title><link>https://blog.youkuaiyun.com/score_one/article/details/122867199</link><guid>https://blog.youkuaiyun.com/score_one/article/details/122867199</guid><author>score_one</author><pubDate>Thu, 10 Feb 2022 20:00:07 +0800</pubDate><description><![CDATA[Memory阶段(MEM)
mem阶段主要负责内存的访问。在执行LDW和STW等指令时，内存访问操作是在MEM阶段进行的
端口模块定义：
part7.MEM阶段
mem阶段主要负责内存的访问。在执行LDW和STW等指令时，内存访问操作是在MEM阶段进行的
1.mem_ctrl：
基于EX阶段流水线寄存器输入的内存操作（ex_mem_op),实施内存访问操作
     /********** EX/MEM pipeline register **********/
	input  wire				   ex_]]></description><category></category></item><item><title><![CDATA[实验4：CUP的执行EX阶段实现]]></title><link>https://blog.youkuaiyun.com/score_one/article/details/122859756</link><guid>https://blog.youkuaiyun.com/score_one/article/details/122859756</guid><author>score_one</author><pubDate>Thu, 10 Feb 2022 14:33:17 +0800</pubDate><description><![CDATA[Execution(EX)阶段
EX阶段主要进行运算和中断检测操作。EX阶段由算术逻辑运算单元和流水线寄存器构成。
端口定义：
part6.EX阶段
EX阶段主要进行运算和中断检测操作。EX阶段由算术逻辑运算单元和流水线寄存器构成。
1.ALU
根据输入指定的操作对数据进行处理，并输出处理结果。
ALu的输入为一个操作码和俩个数据，输出为运算结果和溢出信号
alu：
    input  wire [`WordDataBus] in_0,  // Input 0
	input  wire [`WordDat]]></description><category></category></item><item><title><![CDATA[实验3：CUP的译码ID阶段实现]]></title><link>https://blog.youkuaiyun.com/score_one/article/details/122842555</link><guid>https://blog.youkuaiyun.com/score_one/article/details/122842555</guid><author>score_one</author><pubDate>Wed, 09 Feb 2022 15:53:40 +0800</pubDate><description><![CDATA[ID阶段（Instruction Decode）
ID阶段对指令进行解码并生成必要的信号。数据的直通、Load冒险的检测，分支的判定都在这个阶段进行
各模块和端口定义：
1.指令解码器 decoder：
    /********** IF/ID pipeline register **********/
	input  wire [`WordAddrBus]	 if_pc,			 // Program counter
	input  wire [`WordDataBus]	 if_insn,		 // I]]></description><category></category></item><item><title><![CDATA[实验前准备：CPU学习实验的头文件.vh]]></title><link>https://blog.youkuaiyun.com/score_one/article/details/122816368</link><guid>https://blog.youkuaiyun.com/score_one/article/details/122816368</guid><author>score_one</author><pubDate>Mon, 07 Feb 2022 23:33:44 +0800</pubDate><description><![CDATA[代码来源：《CPU自制入门》
1.bus.vh
/*
 -- ============================================================================
 -- FILE NAME	: bus.h
 -- DESCRIPTION : Bus header
 -- ----------------------------------------------------------------------------
 -- Revision  Da]]></description><category></category></item><item><title><![CDATA[实验2：CUP的取指IF阶段实现]]></title><link>https://blog.youkuaiyun.com/score_one/article/details/122815656</link><guid>https://blog.youkuaiyun.com/score_one/article/details/122815656</guid><author>score_one</author><pubDate>Mon, 07 Feb 2022 23:00:36 +0800</pubDate><description><![CDATA[1.通用寄存器，三个通用寄存器，两个读取，一个写入
gpr
    input wire clk,
    input wire reset,
    /********** 读端口0 **********/
	input  wire [`RegAddrBus]  rd_addr_0,		   // Read address 位宽5
	output wire [`WordDataBus] rd_data_0,		   // Read data  位宽32
	/********** 读端口1 ********]]></description><category></category></item><item><title><![CDATA[实验1：创建一个简单的BUS总线]]></title><link>https://blog.youkuaiyun.com/score_one/article/details/122790903</link><guid>https://blog.youkuaiyun.com/score_one/article/details/122790903</guid><author>score_one</author><pubDate>Sat, 05 Feb 2022 17:13:06 +0800</pubDate><description><![CDATA[经典AMBA总线系统：（主要是AHB和APB）
组成主要有四部分：master，slaver，arbiter，decoder
master是BUS主控部分，例如CPU
slaver是BUS从属部分，例如ROM
arbiter是BUS仲裁器，用于判断多个主控的优先级
decoder是地址解码器，用于判断控制哪个从属
AHB总线用于高性能，高时钟工作频率模块。AHB在AMBA架构中为系统的高性能运行起到了基石作用。AHB为高性能处理器，片上内存，片外内存提供接口，同时桥接慢速外设。高性能，数据传输，多总线主控制]]></description><category></category></item><item><title><![CDATA[verilog RTL（5）]]></title><link>https://blog.youkuaiyun.com/score_one/article/details/122712767</link><guid>https://blog.youkuaiyun.com/score_one/article/details/122712767</guid><author>score_one</author><pubDate>Thu, 27 Jan 2022 11:45:14 +0800</pubDate><description><![CDATA[修改parameter



语法变化（1995,2001）









parameter默认32位





]]></description><category></category></item><item><title><![CDATA[AZ Processor -----（2）总设计思路]]></title><link>https://blog.youkuaiyun.com/score_one/article/details/122674750</link><guid>https://blog.youkuaiyun.com/score_one/article/details/122674750</guid><author>score_one</author><pubDate>Mon, 24 Jan 2022 21:08:03 +0800</pubDate><description><![CDATA[基于RISC架构的32位CPU，经典5级流水线
AZ Processor框架图：

（1）组成部分：IF阶段、ID阶段、EX阶段、MEM阶段、cpu通用寄存器（gpr）、CPU控制单元、CPU直接访问的专用存储器SPM。
虚线中的WB阶段，实际在结果写回通用寄存器或CPU控制单元实现，本身这个模块并不存在。
（2）IF阶段和MEM阶段通过总线与内存和I/O相连。需要每个周期都向流水线提供指令或数据。因此设置了可以高速访问的CPU专用SPM。SPM与缓存类似，但分配有地址空间的存储器。
（3）分支的判定在ID]]></description><category></category></item><item><title><![CDATA[verilog RTL（4）]]></title><link>https://blog.youkuaiyun.com/score_one/article/details/122662042</link><guid>https://blog.youkuaiyun.com/score_one/article/details/122662042</guid><author>score_one</author><pubDate>Mon, 24 Jan 2022 12:59:04 +0800</pubDate><description><![CDATA[////////////////////////////////////////////////////////////////////////////////////////////////////
参数化设计


/************************************************************/
Latch锁存器(利用电平触发）

/************************************************************/
...]]></description><category></category></item><item><title><![CDATA[AZ Processor ---CPU（1）流水线]]></title><link>https://blog.youkuaiyun.com/score_one/article/details/122653844</link><guid>https://blog.youkuaiyun.com/score_one/article/details/122653844</guid><author>score_one</author><pubDate>Sun, 23 Jan 2022 18:15:14 +0800</pubDate><description><![CDATA[CPU
1.流水线处理

经典流水线–5级

IF：读取指令
ID：解码
EX：执行，ALU
MEM：内存访问
WB：结果写会寄存器堆
/*****************************************************************/
流水线可以使处理效率提升，减少其他等待时间

2.流水线冒险：
A。构造冒险
由于硬件资源的竞争，操作无法同时进行
例如：IF阶段和MEM阶段都涉及内存访问。


冯诺依曼架构：指令和数据放在一起，而访问内存使用的总线是共享资源，无法同时进]]></description><category></category></item><item><title><![CDATA[verilog RTL（3）]]></title><link>https://blog.youkuaiyun.com/score_one/article/details/122647436</link><guid>https://blog.youkuaiyun.com/score_one/article/details/122647436</guid><author>score_one</author><pubDate>Sun, 23 Jan 2022 12:13:26 +0800</pubDate><description><![CDATA[/*************************************************/
连续赋值
assign #del &lt;id&gt; = &lt;expr&gt;;

assign 对net类型赋值
书写位置：
在module内
在procedure外（always，initial）
属性：
1.并发
2.相互独立
3.连续作用
/*************************************************/
procedures


initial不可综合，]]></description><category></category></item><item><title><![CDATA[verilog RTL（2）]]></title><link>https://blog.youkuaiyun.com/score_one/article/details/122644507</link><guid>https://blog.youkuaiyun.com/score_one/article/details/122644507</guid><author>score_one</author><pubDate>Sat, 22 Jan 2022 23:02:35 +0800</pubDate><description><![CDATA[/******************************************/
integer and real data types
integer 没有初始化
reals 初始化为0.0
/******************************************/
arrays注意点：
1.不能直接取多个地址
reg var[-15:16] //32个 1-bit regs
var[2:9]=???//不能同时取出多个regs
2.不能定义多维数组
reg var[1:100][1]]></description><category></category></item><item><title><![CDATA[verilog RTL（1）]]></title><link>https://blog.youkuaiyun.com/score_one/article/details/122642368</link><guid>https://blog.youkuaiyun.com/score_one/article/details/122642368</guid><author>score_one</author><pubDate>Sat, 22 Jan 2022 20:11:26 +0800</pubDate><description><![CDATA[/************************************************/
ASIC Design Flow(设计流程)

Design
Verification
DFT
Physical Design

/************************************************/
RTL
Register Transfer Level
全加器实现：


/************************************************/
硬]]></description><category></category></item></channel></rss>