2025-11-25 应该是我的记忆产生了错乱,npc应该是没有调通rt-thread的,因为npc使用的cte函数都还没有实现完成。今天算是把总线这里实现完了,现在可以用printf了。 随笔 veosat 22天前 30 热度 0评论
仲裁器 每个请求的优先级是固定的。如果按照优先级顺序重新排列,问题转化为在一个向量中找出最低位(或者最高位)的1。根据这一特性,固定优先级仲裁器可以借助补码的特点来实现:从低位到高位找到一个向量第一个为1的位置,该位置不变,之后直到最高位所有的位都取反就能得到一个数的补码。这个特点也很好理解,因为这样的两个数相加结果恰好是0并且产生一位进位。所以一个数和他的补码按位与就能得到一个独热码,这个独热码1的位置 数字设计 veosat 28天前 146 热度 0评论
2025-11-20 终于又重新开始回到YSYX上了,中间回了一趟老家,再加上人又有点错乱,耽误了一段时间。 在阅读了AXI文档的一部分之后开始将npc改造成axi-lite接口。之前的修改其实都是生搬硬套,所以我重新组织了npc的结构。现在的npc分为3级:取指,译码执行,写回。这三部分通过valid-ready握手,取指部分通过axi-lite从外部的rom读取指令,当复位释放或者执行和写回部分ready后,取指部 一生一芯 veosat 29天前 33 热度 0评论
AXI-Lite 学习一下Vivado的AXI-Lite Slave端代码。通过Vivado创建新的IP并且选择添加AXI Wrapper就会看到Vivado提供的AXI-Lite代码,下面逐项分析这段示例代码。 AWREADY生成逻辑如下 always@(posedge S_AXI_ACLK)begin if(S_AXI_ACLK == 1\'b0)begin axi_awready <= 1\'b0; aw_ 数字设计 veosat 2025-11-17 72 热度 0评论
AMBA-APB APB是Advanced Peripheral Bus的缩写,APB是AMBA总线协议中最简单的一个,从名字也能看出这个总线是用在外设上的,一半是一些低速外设,例如UART等等。我认为理解APB的核心就是理解握手,而且握手在AHB和AXI中都会用到,其实握手也是一种思想一种方法,不仅在AMBA中有用,在其他领域也有使用。 APB的握手是通过master发出的PENABLE和PSEL信号和slave 数字设计 veosat 2025-11-15 47 热度 0评论
2025-11-10 今天将ROM和SRAM都做成和实际电路同样行为的模型,修改了difftest的位置,下一步就是在npc上实现axi-lite接口的存储器了。 一生一芯 veosat 2025-11-10 29 热度 0评论
verilator使用指南 最近在做一生一芯项目,项目中RTL仿真使用的是Verilator,写这篇博客是为了整理一下Verilator的使用方法 Verilator是一个开源的Verilog仿真工具,verilator是编译型仿真器,类似于Synopsys的VCS。Verilator会将Verilog代码编译成cpp文件,然后添加一个cpp wrapper编译出可执行文件完成仿真 Verilator需要待仿真的Verilo 随笔 veosat 2025-11-06 201 热度 0评论