技术栈
一生一芯
yuweijie0124
8 天前
一生一芯
ysyx学习:移植rt-thread
OS中的上下文切换上一期我们搞懂了yield-os.c的原理如何,我们理解 玩上下文切换的核心细节之后,我们可以把这些原理迁移到RT-Thread这个更大的操作系统中。 RT-Thread中有两个抽象层, 一个是BSP(Board Support Package), 另一个是libcpu。
Zeeh-Lin
9 天前
一生一芯
auipc指令在NEMU中的执行过程
指令集为RV64I内存地址开始于0x8000 0000使用如下的代码:Decode的定义如下cpu.pc初始值为0x8000 0000
yuweijie0124
13 天前
一生一芯
一生一芯学习:多道程序 yield-os.c
随着处理器主频的越来越高,每次读写一次磁盘要耗费很多个时钟周期来等待磁盘操作的完成,与其傻傻等待,在这等待的过程中我们可以做更多有意义的事情,如当第一个程序需要等待输入输出的时候,切换到第二个程序来运行,第二个程序也等待输入输出的时候就可以切换到第三个程序,以此类推。
yuweijie0124
15 天前
一生一芯
一生一芯学习:基础设施(2)
指令执行的踪迹 - itrace 首先写好一个环形缓冲区的代码,把反汇编的字符串存到环形缓冲区中,然后执行完代码在打印出来。
yuweijie0124
16 天前
一生一芯
ysyx:pa3.1批处理系统
批处理系统为了让管理员事先准备好一组程序, 让计算机执行完一个程序之后, 就自动执行下一个程序,提出了批处理系统的思想。处理系统的关键, 就是要有一个后台程序, 当一个前台程序执行结束的时候, 后台程序就会自动加载一个新的前台程序来执行,这样的一个后台程序, 其实就是操作系统。
yuweijie0124
18 天前
一生一芯
一生一芯学习:PA2:输入输出
输入输出是计算机与外界交互的基本手段,只需要向设备发送一些有意义的数字信号,设备就会按照这些信号来工作。设备有自己的专属寄存器(如CPU的通用寄存器),也有自己的功能部件(如CPU的ALU)。以键盘外设为例,键盘有一个把按键的模拟信号转换成扫描码的部件,然后CPU根据扫描码就知道真实世界的用户按下了键盘的哪个按键了。除了纯粹的数据读写之外,我们还需要对设备进行控制,比如查看键盘是否有按键被按下。现在有个问题,CPU是如何访问设备的寄存器呢?答案是MMIO(內存映射I/O)。
yuweijie0124
1 个月前
一生一芯
一生一芯学习:pa2.1 RTFM
前面的内容后面再补,因为近期要C考核了,所以先准备下C考核所需的内容。RTFSC(2) 整理一条指令在NEMU中的执行结果
yuweijie0124
2 个月前
一生一芯
·
nvboard
数字电路基础实验
写Verilog最重要的是心中要有电路图(这个是官方说法),我觉得也可以理解为你要能知道你自己写出来的Verilog代码能够综合出什么东西来。
yuweijie0124
2 个月前
一生一芯
·
verilator
·
nvboard
一生一芯学习记录(一):简单介绍 + Verilator + Nvboard
一开始先来简单讲述下我的个人情况,研一在读,目前C阶段结束,然后想简单记录一下做一生一芯中遇到的困难和想法,以便后人学习。我学习的版本是2306的版本,所以2407我就不做了,2407据说是给大一或者更小年纪的人平滑的学习一生一芯所用的版本,简单看了看,感觉对于时间紧张的研究生来说有点没必要。我并不会Markdown,所以可能博客写的会很丑,后面慢慢学应该会好看点,前面先别喷我😭。本人的github主页:https://github.com/yuweijie-20030124/ysyx-workbenc
上课耽误学习
4 个月前
开发语言
·
一生一芯
一生一芯 PA2 RTFSC
从src/isa/riscv32/inst.c出发。向上搜索,理解宏定义的含义。#define R(i) gpr(i)
sucool_lb
4 个月前
一生一芯
【一生一芯】数字实验七:状态机及键盘输入
七段数码管低两位显示当前按键的键码,中间两位显示对应的ASCII码(转换可以考虑自行设计一个ROM并初始化)。只需完成字符和数字键的输入,不需要实现组合键和小键盘。
sucool_lb
5 个月前
一生一芯
《一生一芯》数字实验三:加法器与ALU
设计一个能实现如下功能的4位带符号位的 补码 ALU:功能选择功能操作000加法A+B001减法A-B
sucool_lb
5 个月前
一生一芯
《一生一芯》数字实验六:实现随机数发生器
我们可以利用8位移位寄存器来实现一个简单的随机数发生器。 经典的LFSR(线性反馈移位寄存器, Linear-feedback shift register )可以使用n位移位寄存器生成长度为 2n−1 的二进制循环序列。 这类序列的片段在表观上是随机的,所以被广泛用于通信中的随机序列生成。例如,在CDMA通信中的长码的长度就是 242−1 的伪随机序列。
农民真快落
1 年前
fpga开发
·
verilog
·
ic设计
·
数字ic设计
·
一生一芯
【IC设计】跨时钟异步处理系列——单比特跨时钟
如图所示,第一行是脉冲信号,第二行是慢时钟域的时钟。如果从快时钟域要同步一个脉冲信号到慢时钟域,容易出现上升沿没有采样到脉冲信号的情况。
农民真快落
1 年前
fpga开发
·
verilog
·
数字ic设计
·
一生一芯
·
秋招面试
【IC设计】牛客网-序列检测习题总结
两种方法: 法一、用寄存器维护一个存储序列的寄存器 法二、用状态机来做 这里我用寄存器来做。通过计数器进行分组序列检测,每组判断一次 注意点:
农民真快落
1 年前
fpga开发
·
riscv
·
chisel
·
一生一芯
·
cpu设计
【IC设计】任意倍数占空比为50%的奇数分频和偶数分频(Verilog源码、仿真波形、讲解)
以四分频为例,分频后的一个周期是分频前的四个周期,并且分频后的一个周期中,一半是高电平,一半是低电平,这就是占空比为50%的四分频。 要实现该功能,使用一个计数器在0~3之间计数,clk_out在0和2时翻转即可。
农民真快落
2 年前
fpga开发
·
riscv
·
chisel
·
一生一芯
·
cpu设计
【程序人生】研二下学期快结束了~~~~随便写写
天啦撸,时间过得好快,2022年3月被录取,9月入学,在上海上课一年,23年7月底来北京,现在已经24年4月了。 再过2个月,研二就算结束了。
农民真快落
2 年前
fpga开发
·
verilog
·
ic设计
·
数字ic设计
·
一生一芯
【IC设计】Verilog线性序列机点灯案例(四)(小梅哥课程)
声明:案例和代码来自小梅哥课程,本人仅对知识点做做笔记,如有学习需要请支持官方正版。Verilog线性序列机点灯案例(一) Verilog线性序列机点灯案例(二) Verilog线性序列机点灯案例(三) Verilog线性序列机点灯案例(四)
农民真快落
2 年前
scala
·
ic设计
·
chisel
·
noc
·
一生一芯
【异常处理】sbt构建Chisel库时出现extracting structure failed:build status:error的解决办法
最近在写Chisel时,构建项目常常需要等待很久,然后报错extracting structure failed:build status:error 这个报错实际上告诉我们,在build.sbt中指定的依赖没有下载到,导致依赖的结构无法实现。
农民真快落
2 年前
scala
·
ic设计
·
risc-v
·
chisel
·
一生一芯
【IC设计】Windows下基于IDEA的Chisel环境安装教程(图文并茂)
传统数字芯片的RTL设计采用Verilog语言为主,Chisel语言的全称是Constructing Harward in Scala Embeded Language,即在Scala语言中导入Chisel3库,即可使用Chisel语言。其特点是面向对象编程,可以方便地参数化定制硬件电路,加快设计流程。目前在RISC-V生态中应用较多,中科院计算所主持的培育下一代处理器设计人才的“一生一芯”项目也在极力推进该语言。