定义 e203dtcm_ctrl 模块,并设置模块的输入输出端口,其中 dtcm_active 表示 DTCM 存储器是否处于运行状态;tcm_cgstop 表示是否需要关闭 SRAM 时钟门控用于调试;lsu2dtcm_icb 和 ext2dtcmicb 表示 LSU 和外部 ICB 设备与 DTCM 接口的传输通道;dtcmram* 表示 DTCM 存储器的读写操作端口;test_mode 表示是否处于测试模式;clk 表示系统时钟;rst_n 表示异步复位信号
定义用于 e203_dtcm_ctrl 模块内部 ICB 接口的传输通道。
根据宏定义 E203_HAS_DTCM_EXTITF 来设置不同数量的 ICB 总线接口和指针位宽。
以下是信号量的一些总结
output dtcm_active:表示 DTCM 是否处于活动状态。
input tcm_cgstop:用于控制 DTCM SRAM 时钟门控功能是否启用。
input lsu2dtcm_icb_cmd_valid:LSU(Load Store Unit)输入到 DTCM 的总线通道的有效标志。
output lsu2dtcm_icb_cmd_ready:LSU 输入到 DTCM 的总线通道的就绪标志。
input [`E203_DTCM_ADDR_WIDTH-1:0] lsu2dtcm_icb_cmd_addr:LSU 输入到 DTCM 的总线通道的起始地址。
input lsu2dtcm_icb_cmd_read:LSU 输入到 DTCM 的总线通道的读或写标志。
input [32-1:0] lsu2dtcm_icb_cmd_wdata:LSU 输入到 DTCM 的总线通道的写数据。
input [4-1:0] lsu2dtcm_icb_cmd_wmask:LSU 输入到 DTCM 的总线通道的写数据掩码。
output lsu2dtcm_icb_rsp_valid:LSU 输入到 DTCM 的总线通道的响应有效标志。
input lsu2dtcm_icb_rsp_ready:LSU 输入到 DTCM 的总线通道的响应就绪标志。
output lsu2dtcm_icb_rsp_err:LSU 输入到 DTCM 的总线通道的响应错误标志。
output [32-1:0] lsu2dtcm_icb_rsp_rdata:LSU 输入到 DTCM 的总线通道的读取数据。
还有以下几个接口是用于与外部连接的:
input ext2dtcm_icb_cmd_valid:外部代理输入到 DTCM 的总线通道的有效标志。
output ext2dtcm_icb_cmd_ready:外部代理输入到 DTCM 的总线通道的就绪标志。
input [`E203_DTCM_ADDR_WIDTH-1:0] ext2dtcm_icb_cmd_addr:外部代理输入到 DTCM 的总线通道的起始地址。
input ext2dtcm_icb_cmd_read:外部代理输入到 DTCM 的总线通道的读或写标志。
input [32-1:0] ext2dtcm_icb_cmd_wdata:外部代理输入到 DTCM 的总线通道的写数据。
input [4-1:0] ext2dtcm_icb_cmd_wmask:外部代理输入到 DTCM 的总线通道的写数据掩码。
output ext2dtcm_icb_rsp_valid:外部代理输入到 DTCM 的总线通道的响应有效标志。
input ext2dtcm_icb_rsp_ready:外部代理输入到 DTCM 的总线通道的响应就绪标志。
output ext2dtcm_icb_rsp_err:外部代理输入到 DTCM 的总线通道的响应错误标志。
output [32-1:0] ext2dtcm_icb_rsp_rdata:外部代理输入到 DTCM 的总线通道的读取数据。
此模块还提供了控制 DTSM RAM 的接口,包括 dtcm_ram_cs、dtcm_ram_we、dtcm_ram_addr、dtcm_ram_wem、dtcm_ram_din、dtcm_ram_dout和 clk_dtcm_ram。同时,也包含了用于测试的接口 test_mode、clk 和 rst_n。最后,此模块内部采用了一种基于 ICB 总线的仲裁机制,用于实现多个输入源的数据传输。