数字IC设计实战:逐步升级,Tiny—RISC CPU 设计·中断模块设计

这次翻译有点差错,后续会更新这个翻译,所以有错误的话还请不吝赐教

Ref:

     http://t.csdnimg.cn/eqCKk  RISC-V SoC内核——中断 代码讲解 作者:小wang的IC自习室 

     http://t.csdnimg.cn/VzPc3   RISCV——指令集spec阅读笔记——特权级  作者:KGback

     代码来源:GitHub - liangkangnan/tinyriscv: A very simple and easy to understand RISC-V core.  

作者:liangkangnan

`include "defines.v"


// core local interruptor module
module clint(

    input wire clk,
    input wire rst,

    // from core
    input wire[`INT_BUS] int_flag_i,         // 来自于if-id模块,外围设备送来的中断信号,经由if-id模块打一拍发送过来

    // from id
    input wire[`InstBus] inst_i,             // 来自于id 发出的指令输入,这个指令其实是来自于PC计数器以及rib总线发送过来的计数器,一级一级流水打拍打过来的
    input wire[`InstAddrBus] inst_addr_i,    // 来自于id一拍一拍流过来的,主要源头是PC寄存器

    // from ex
    input wire jump_flag_i,
    input wire[`InstAddrBus] jump_addr_i,
    input wire div_started_i,

    // from ctrl
    input wire[`Hold_Flag_Bus] hold_flag_i,  //Ctrl接收过jmp / hld 相关信号之后根据逻辑处理得出来的暂停

    // from csr_reg
    input wire[`RegBus] data_i,              // CSR寄存器送数据来的
    input wire[`RegBus] csr_mtvec,           // mtvec,保存发生异常时处理器需要跳转的地址(用来设置中断和异常的入口)。中断和异常需要跳转的基地址不同。
    input wire[`RegBus] csr_mepc,            // mepc 保存发生异常指令的地址(中断返回的地址)。
    input wire[`RegBus] csr_mstatus,         // mstatus 全局中断使能和其他状态信息。

    input wire global_int_en_i,              // 译码阶段会提前译出CSR系列指令,然后会提前准备好数据,然后打给ex模块,ex模块确认是csr之后将输出接上输入最后再打给CSR寄存器,CSR寄存器最后再打给clint

    // to ctrl
    output wire hold_flag_o,                 // 流水线暂停标志  

    // to csr_reg
    outp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值