|
|
51CTO旗下网站
|
|
移动端

4.6 蜂鸟E200配置选项

《手把手教你设计CPU——RISC-V处理器篇》第4章开源RISC-V——蜂鸟E200系列超低功耗Core与SoC,本章对蜂鸟E200处理器的介绍将使用许多处理器的关键特性参数或名称,对于完全不了解CPU的初学者而言可能难以理解,请参见本书第二部分与第三部分的各章节进行系统学习后再行理解本章。本节为大家介绍蜂鸟E200配置选项。

作者:胡振波来源:人民邮电出版社|2018-05-23 13:41

4.6 蜂鸟E200配置选项

蜂鸟E200系列的每款处理器均具有一定的可配置性。以开源的蜂鸟E203核为例,通过修改其目录下的config.v文件中的宏定义便可以实现不同的配置。

config.v文件在e200_opensource项目的目录结构如下。

config.v中的具体的配置选项宏定义如表4-4所示。

表4-4 E203处理器核配置选项

描述

推荐默认值

E203_CFG_DEBUG_HAS_JTAG

如果添加了此宏,则配置使用JTAG调试接口
请参见第14章了解有关调试器信息

使用

E203_CFG_ADDR_SIZE_IS_16
E203_CFG_ADDR_SIZE_IS_24 E203_CFG_ADDR_SIZE_IS_32

此3个宏选择其中一个,用于配置处理器的总线地址宽度为16位、24位和32位

32位

E203_CFG_SUPPORT_MCYCLE_MINSTRET

如果添加了此宏,则配置使用MCYCLE和MINSTRET这两个64位的计数器
请参见附录B2.17和B2.18节了解有关MCYCLE和MINSTRET寄存器信息

使用

E203_CFG_REGNUM_IS_32
E203_CFG_REGNUM_IS_16

此两个宏选择其中一个,用于配置整数通用寄存器组使用32个通用寄存器(RV32I)还是16个通用寄存器(RV32E)
请参见附录A4.1节了解有关通用寄存器组的信息

32个

E203_CFG_HAS_ITCM

如果添加了此宏,则配置使用ITCM
请参见第11.4.4节了解有关ITCM的信息

使用

E203_CFG_ITCM_ADDR_BASE

配置ITCM的基地址

0x8000_0000

E203_CFG_ITCM_ADDR_WIDTH

配置ITCM的大小,使用地址总线宽度作为其大小的衡量。譬如,假设ITCM的大小为1KByte,则此宏定义值为10

16
(64KB)

E203_CFG_HAS_DTCM

如果添加了此宏,则配置使用DTCM
请参见第11.4.4节了解有关DTCM的信息

使用

E203_CFG_DTCM_ADDR_BASE

配置DTCM的基地址

0x9000_0000

E203_CFG_DTCM_ADDR_WIDTH

配置DTCM的大小,使用地址总线宽度作为其大小的衡量,例如假设DTCM的大小为1KByte,则此宏定义值为10

16
(64KB)

E203_CFG_REGFILE_LATCH_BASED

如果添加了此宏,则配置使用锁存器(Latch)作为通用寄存器组(Regfile)的基本单元;如果没有添加此宏,则使用D触发器作为基本单元
请参见第8.3.4节了解有关寄存器组实现的信息

不使用锁存器

E203_CFG_PPI_ADDR_BASE

配置私有外设接口(Private Peripheral Interface,PPI)的基地址
请参见第12.4节了解有关总线接口的信息

0x1000_0000

E203_CFG_PPI_BASE_REGION

配置PPI接口的地址区间,通过指定高位的区间来界定地址区间。譬如,如果该宏定义为31:28,基地址定义为0x1000_0000,则表示PPI的地址区间为0x1000_0000~0x1FFF_FFFF

31:28

E203_CFG_FIO_ADDR_BASE

配置快速FIO接口(Fast IO Interface,FIO)的基地址
请参见第12.4节了解有关总线接口的信息

0xf000_0000

E203_CFG_FIO_BASE_REGION

配置FIO接口的地址区间,通过指定高位的区间来界定地址区间。例如如果该宏定义为31:28,基地址定义为0xf000_0000,则表示FIO的地址区间为0xf000_0000~0xfFFF_FFFF

31:28

E203_CFG_CLINT_ADDR_BASE

配置CLINT接口的基地址
请参见第13.5.5节了解有关CLINT的信息

0x0200_0000

E203_CFG_CLINT_BASE_REGION

配置CLINT接口的地址区间,通过指定高位的区间来界定地址区间。例如如果该宏定义为31:16,基地址定义为0x0200_0000,则表示PLIC的地址区间为0x0200_0000~0x0200_FFFF

31:16

E203_CFG_PLIC_ADDR_BASE

配置PLIC接口的基地址
请参见第13.5.6节了解有关PLIC的信息

0x0C00_0000

E203_CFG_PLIC_BASE_REGION

配置PLIC接口的地址区间,通过指定高位的区间来界定地址区间。例如如果该宏定义为31:24,基地址定义为0x0C00_0000,则表示PLIC的地址区间为0x0C00_0000~0x0CFF_FFFF

31:24

E203_CFG_HAS_ECC

如果添加了此宏,则配置使用ECC对ITCM和DTCM的SRAM进行保护
注意:在GitHub上,此选项的功能并未开源,因此相关代码并不具备,即便添加了配置宏也不起作用

不使用ECC

E203_CFG_HAS_EAI

如果添加了此宏,则配置使用协处理器接口
注意:在GitHub上,此选项的功能并未开源,因此相关代码并不具备,即便添加了配置宏也不起作用

无协处理器接口

E203_CFG_SUPPORT_SHARE_MULDIV

如果添加了此宏,则配置使用面积优化的多周期乘除法单元

使用多周期乘除法

E203_CFG_SUPPORT_AMO

如果添加了此宏,则支持RISC-V的“A”扩展指令子集
请参见附录A14.5节了解RV32A指令子集的信息

支持RISC-V的“A”扩展指令子集


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973


【责任编辑:book TEL:(010)68476606】

回书目   上一节   
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

安全模式:J2EE、Web服务和身份管理最佳实践与策

本书全面阐述Java应用安全的基本知识并介绍一种强大的结构化安全设计方法;介绍独立于厂商的安全架构;列出详细的评估核对表以及23种经过实...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊