RISC 您所在的位置:网站首页 epiphone蜂鸟和ej200 RISC

RISC

2024-03-20 17:23| 来源: 网络整理| 查看: 265

目录 1、处理器设计和验证的特点2、蜂岛 E200 处理器核设计特点3、E200处理器核 RTL 代码风格(1)使用标准 DFF 模块例化生成寄存器(2)使用 **assign** 语法替代 **if-else** 和 **case** 语法 4、蜂岛 E200 模块层次划分a) Hierarchyb) e203_cpu_topc) Pipeline structure

在这里插入图片描述

1、处理器设计和验证的特点

处理器设计作为一种特殊 的 ASIC 设计,也需我们了解某些方面的背景知识和特点,归纳如下 。

熟悉汇编语言及其执行过程 。了解软件如何经编译、汇编、链接最后成为处理器可执行的 二进制码的过程 。了解计算机体系结构的知识。处理器对时序和面积的要求一般会非常严格,需不断反复地优化时序和面积,因 此 对电路和逻辑设计的理解 需要 比较深刻 。

处理器的验证也有其特点,通常 需要从 3 个不同层面对处理器进行验证 。

需使用传统的模块级验证手段(例如 UVM 等 〉对处理器的子模块进行验证 。需使用人工编写或者随机生成的汇编语 言测试用例在处理器上运行进行验证 。需使用高等语言( 譬如 C、 C++ )编写的测试用例在处理器上运行进行验证。 2、蜂岛 E200 处理器核设计特点 模块化和可重用性面积最小化,以追求低功耗、小面积结构简单化性能不追求极端 3、E200处理器核 RTL 代码风格

蜂鸟 E200 处理器核采用一套统 一 的 Verilog RTL 编码风格( Coding Style ) , 来自于严谨 的工业级开发标准,其要点如下。

使用标准 DFF 模块例化生成寄存器。推荐使用 Verilog 中的 assign 语法替代 if-else 和 case 语法进行代码编写。 (1)使用标准 DFF 模块例化生成寄存器

a)对于寄存器避免直接使用 always 块编写 ,而是应该采用模块化的标准 DFF 模块进行例化 。 在这里插入图片描述 b) 使用标准DFF模块例化的好处包括以下内容。

便于全局替换寄存器类型。便于在寄存器中全局插入延迟。明确的 load- enable 使能信号(如下例的 flg_ena )方便综合工具自动插入寄存器级别的门控时钟以降低动态功耗.便于规避 Verilog 语法 if-else 不能传播不定态的问题.

c) 标准 DFF 模块是一系列不同的模块 在这里插入图片描述 d) RTL code 如下:

//标准 DFF 模块 , 以 sirv_gnrl_dfflr 为例 , 代码片段如下 module sirv_gnrl_difflr #( parameter DW = 32 ) ( input lden, input[DW-1:0] dnxt, output[DW-1:0] qout, input clk, input rst_n ); reg [DW-1:0] qout_r ; //使用 always 块编写寄存器逻辑 always @(psoedege clk or negedge rst_n)begin:DFFLR_PROC if(rst_n == 1'b0) qout_r 1'b0}}; else if(lden == 1'b1) qout_r sirv_gnrl_xchecker #( //该模块内部是个 SystemVerilog 编写的断言,如下文详解 .DW(1) ) u_sirv_gnrl_xchecker( .i_dat(lden), .clk(clk) ); `endif//} `endif//} endmodule //sirv_gnrl_xchecker模块代码片段 //此模块专门捕 捉不定 态, 一旦输入 的主 dat 出现不定 态,则会报错并终止仿真。 module sirv_gnrl_xchecker #( parameter DW = 32 )( input[DW-1:0] i_dat; input clk ; ); CHECK_THE_X_VALUE: assert property (@(posedge clk) ((^i_dat)) !== 1'bx) ) else $fatal ("\n Error : Oops, detected a X Value !! This should never happen.\n"); endmodule (2)使用 assign 语法替代 if-else 和 case 语法

Verilog中的 if-else 和 case 语法存在两大缺点。

不能传播不定态。会产生优先级的选择电路而非并行选择电路,从而不利于时序和面积。 在这里插入图片描述 在这里插入图片描述

在这里插入图片描述 在这里插入图片描述

4、蜂岛 E200 模块层次划分 a) Hierarchy

在这里插入图片描述

e203_cpu_topTop modulee203_cpuLogic top module of coree203_clk_ctrlClock control modulee203_reset_ctrlReset control modulee203_irq_syncAsynchronous interrupt signal sync modulee203_itcm_ctrlITCM control modulee203_dtcm_ctrlDTCM control modulee203_coreMain logic top module of coree203_ifuTop module of fetch unite203_exuTop module of execution unite203_lsuTop module of load & store unite203_biuBus interface unit modulee203_sramsSRAM top module of coree203_itcm_ramITCM SRAM modulee203_dtcm_ramDTCM SRAM module b) e203_cpu_top

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

c) Pipeline structure

在这里插入图片描述 本文参考于《手把手教你设计CPU-RISC-V》(胡振波),详情请自行阅读此书。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有