CN110389919A - 基于risc-v处理器的异步收发传输器外设及系统 - Google Patents
基于risc-v处理器的异步收发传输器外设及系统 Download PDFInfo
- Publication number
- CN110389919A CN110389919A CN201910599602.6A CN201910599602A CN110389919A CN 110389919 A CN110389919 A CN 110389919A CN 201910599602 A CN201910599602 A CN 201910599602A CN 110389919 A CN110389919 A CN 110389919A
- Authority
- CN
- China
- Prior art keywords
- slave
- write
- module
- axi
- risc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4009—Coupling between buses with data restructuring
- G06F13/4018—Coupling between buses with data restructuring with data-width conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4239—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B1/00—Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
- H04B1/38—Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
- H04B1/40—Circuits
Abstract
本申请公开了一种基于RISC‑V处理器的异步收发传输器外设,通过将接收模块的数据信号输出端与WB Interface模块的数据信号输入端连接,控制信号输入端与UART_Regs模块的控制信号输出端连接实现数据的接收以及处理;输出模块的数据信号接收端与WB Interface模块数据信号输出端连接,输出模块的控制信号接收端与UART_Regs模块控制信号输出端连接实现处理后数据的输出,实现了有效的UART模块挂载,可直接挂载到RISC‑V的MMIO接口上,配合RISC‑V处理器进行数据传输。本申请还公开了一种基于RISC‑V处理器的异步收发传输系统,具有上述有益效果,在此不再赘述。
Description
技术领域
本申请涉及芯片设计技术领域,特别涉及一种基于RISC-V处理器的异步收发传输器外设及一种基于RISC-V处理器的异步收发传输系统。
背景技术
UART(通用异步收发传输器)是一种实现通用异步收发传输器的外设,主要是为了串口打印以便于其他模块的调试,属于一种常用外设。
目前UART为基于x86与ARM架构设计的外设,为了能够保持架构的向后兼容性以及现代处理器架构技术的不断发展成熟,现代的x86与ARM架构的架构极为冗长,其文档长达几百数千页,基于x86与ARM架构后台操作以及设计过程实现方式复杂。
因此,如何实现一种基于可实现高效设置以及操作的处理器的UART外设,是本领域技术人员需要解决的技术问题。
发明内容
本申请的目的是提供一种基于RISC-V处理器的异步收发传输器外设,该设备实现了一种基于RISC-V处理器的支持32位和64位位宽寄存器及AXI接口的UART片内外设;本申请的另一目的是提供一种异步收发传输系统。
为解决上述技术问题,本申请提供一种基于RISC-V处理器的异步收发传输器外设,包括:
用于与主机端连接,实现AXI协议到WB协议的转换的AXI2WB模块、用于实现各位宽的Wishbone总线接口的选择的WB Interface模块、用于实现各位宽的寄存器选择的UART_Regs模块、用于与外部设备连接的接收模块与输出模块;
其中,所述WB Interface模块分别与所述AXI2WB模块、所述UART_Regs模块双向连接,用于控制信号的传递;
所述接收模块的数据信号输出端与所述WB Interface模块的数据信号输入端连接,控制信号输入端与UART_Regs模块的控制信号输出端连接,用于实现数据的接收以及处理;
所述输出模块的数据信号接收端与所述WB Interface模块的数据信号输出端连接,控制信号接收端与UART_Regs模块控制信号输出端连接,用于实现处理后数据的输出。
可选地,所述AXI2WB模块包括:AXI写数据处理子模块、AXI写地址处理子模块、AXI写响应处理子模块、AXI读数据处理子模块、AXI读地址处理子模块、WB写操作处理子模块以及WB读操作处理子模块。
可选地,所述AXI所述写数据处理子模块用于:当AXI的写地址通道为可写入状态时,判断从机写数据通道是否成功接收到写数据,若是,则锁存AXI写数据信号,将从机写数据通道置为不可写入状态,将从机锁存的写数据信号置为有效状态;当写数据完成时,将所述从机写数据通道置为可写入状态,将所述从机锁存的写数据信号置为无效状态;
所述AXI写地址处理子模块用于:当AXI所述写数据通道、所述从机锁存的写数据信号以及锁存的读地址信号均为无效状态时,判断从机写地址通道是否成功接收到写地址,若是,则锁存AXI写地址信号,对所述锁存的写地址信号进行对齐操作,将所述从机写地址通道置为不可接收状态,并将所述从机锁存的写地址信号置为有效状态;当最后一个写数据写入完成时,将所述从机写地址通道置为可写入状态,并将所述从机锁存的写地址信号置为无效状态;
所述AXI写响应处理子模块用于:判断从机是否成功反馈写响应;若是,则将从机写响应置为无效状态;当写数据完成时,将所述从机写响应置为有效状态;
所述AXI读数据处理子模块用于:当AXI的所述读地址信号为有效状态时,判断当前WB读操作是否完成;若是,将从机读数据通道设置为可发送状态;当通过所述从机读数据通道将读数据发送给主机时,将所述从机读数据通道设置为不可发送状态;
所述AXI读地址处理子模块用于:当所述从机锁存的写地址信号、所述从机锁存的写数据信号、写响应通道以及从机锁存的读地址信号均为无效状态时,判断所述从机读地址通道是否成功接收到读地址,若是,则锁存AXI读地址信号,对锁存的所述读地址信号进行对齐操作;将所述从机读地址通道置为不可接收状态,将所述从机锁存的读地址信号置为有效状态;当最后一个读数据发送完成时,将所述从机读地址通道置为可写入状态,并将所述从机锁存的读地址信号置为无效状态;
所述WB写操作处理子模块用于:当AXI的所述从机锁存的写地址信号、所述从机锁存的写数据信号均为有效状态,且所述从机锁存的读地址信号为无效状态时,拉高wb_we_o、wb_stb_o、wb_cyc_o,启动一次WB写操作;当WB响应信号为响应状态时,拉低wb_we_o、wb_stb_o、wb_cyc_o;
所述WB读操作处理子模块用于:当所述AXI从机锁存的写地址信号、所述从机锁存的写数据信号均为无效状态,且所述从机锁存的读地址信号为有效状态时,拉高wb_cyc_o、wb_stb_o,启动一次WB读操作;当所述WB响应信号为响应状态时,拉低wb_we_o、wb_stb_o、wb_cyc_o。
可选地,所述WB Interface模块具体用于:根据选择WB总线位宽的宏定义开关确定接口位宽,并根据所述接口位宽连接至位宽对应的Wishbone接口。
可选地,所述基于RISC-V处理器的异步收发传输器外设的Wishbone接口包括:8位Wishbone接口、32位Wishbone接口以及64位Wishbone接口。
可选地,所述WB Interface模块具体用于:根据选择UART寄存器位宽的宏定义开关确定寄存器位宽,并根据所述寄存器位宽连接至位宽对应的寄存器组。
可选地,所述基于RISC-V处理器的异步收发传输器外设的寄存器包括:8位寄存器组、32位寄存器组以及64位寄存器组。
本申请公开一种基于RISC-V处理器的异步收发传输系统,包括:如上所述的基于RISC-V处理器的异步收发传输器外设、主机端以及第一设备;
其中,所述主机端为具有RISC-V处理器的主机端,所述基于RISC-V处理器的异步收发传输器外设挂载于所述主机端的MMIO接口;
所述基于RISC-V处理器的异步收发传输器外设的设备信息交互端连接于所述第一设备。
本申请所提供的基于RISC-V处理器的异步收发传输器外设,包括:用于与主机端连接,实现AXI协议到WB协议的转换的AXI2WB模块、用于实现各位宽的Wishbone总线接口的选择的WB Interface模块、用于实现各位宽的寄存器选择的UART_Regs模块、用于与外部设备连接的接收模块与输出模块。其中,通过将接收模块的数据信号输出端与WB Interface模块的数据信号输入端连接,控制信号输入端与UART_Regs模块的控制信号输出端连接实现数据的接收以及处理;输出模块的数据信号接收端与WB Interface模块数据信号输出端连接,输出模块的控制信号接收端与UART_Regs模块控制信号输出端连接,实现处理后数据的输出。因此该外设结构实现了有效的UART模块挂载,可直接挂载到RISC-V的MMIO(内存映射输入输出)接口上,可配合RISC-V处理器进行数据传输,有助于RISC-V SoC的研发进程,也有助于加速CPU自主研发进程。
本申请还公开了一种基于RISC-V处理器的异步收发传输系统,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为AXI总线协议读通道示意图;
图2为AXI总线协议写通道示意图;
图3为Wishbone主从互联信号示意图;
图4为本申请实施例提供的UART外设的结构示意图;
图5为本申请实施例提供的一种AXI写数据处理子模块的处理流程示意图;
图6为本申请实施例提供的一种AXI写地址处理子模块的处理流程示意图;
图7为本申请实施例提供的一种AXI写响应处理子模块处理流程示意图;
图8为本申请实施例提供的一种AXI读数据处理子模块处理流程示意图;
图9为本申请实施例提供的一种AXI读地址处理子模块处理流程示意图;
图10为本申请实施例提供的一种WB写操作处理子模块处理流程示意图;
图11为本申请实施例提供的一种WB读操作处理子模块处理流程示意图;
图12为本申请实施例提供的一种WB Interface模块的处理流程图;
图13为本申请实施例提供的一种UART_Regs模块的处理流程图;
图14为本申请实施例提供的一种数据传输路线示意图;
图15为本申请实施例提供的一种命令传输路线示意图;
图16为本申请实施例提供的一种基于RISC-V处理器的异步收发传输系统结构示意图。
具体实施方式
本申请的核心是提供一种基于RISC-V处理器的异步收发传输器外设,该设备可以实现有效的UART模块挂载,可直接挂载到RISC-V的MMIO接口;本申请的另一核心是提供一种基于RISC-V处理器的异步收发传输系统。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前推出的RISC-V(基于精简指令集计算(RISC)原理建立的开放指令集架构)架构,不存在向后兼容的问题,并且由于计算机体系结构经过多年的发展已经成为比较成熟的技术,多年来在不断成熟的过程中暴露的问题都已经被研究透彻,因此新的RISC-V架构能够加以规避。同时,RISC-V完全开源,对于开发者可以节省高昂的授权费。目前RISC-V架构已经在全球范围内掀起了一场热潮。
本申请基于RISC-V架构处理器的Diamond RISC-V项目,该项目采用BOOM Core源码进行处理器SoC的设计。该项目中,片内外设均通过MMIO接口挂载在BOOM Core上,MMIO采用64位的AXI4总线。
AXI协议是基于burst的传输,并且定义了以下5个独立的传输通道:读地址通道、读数据通道、写地址通道、写数据通道、写响应通道,图1为AXI(高级可扩展总线)总线协议读通道示意图,图2为AXI(高级可扩展总线)总线协议写通道示意图。
AXI是基于VALID/READY的握手机制数据传输协议,传输源端使用VALID表明地址/控制信号、数据是有效的,目的端使用READY表明自己能够接受信息。
读/写地址通道:读、写传输每个都有自己的地址通道,对应的地址通道承载着对应传输的地址控制信息。
读数据通道:读数据通道承载着读数据和读响应信号包括数据总线(8/16/32/64/128/256/512/1024bit)和指示读传输完成的读响应信号。
写数据通道:写数据通道的数据信息被认为是缓冲(buffered)了的,“主”无需等待“从”对上次写传输的确认即可发起一次新的写传输。写通道包括数据总线(8/16…1024bit)和字节线(用于指示8bit数据信号的有效性)。
写响应通道:“从”使用写响应通道对写传输进行响应。所有的写传输需要写响应通道的完成信号。
AXI协议每个通道可同时进行。
然而目前UART为基于x86与ARM架构设计的外设,UART模块为Wishbone总线,图3所示为Wishbone主从互联信号示意图,WB协议只有一个通道,读写操作不能同时进行,Wishbone协议读写操作必选的信号除了数据外都是共用的。数据位宽为可选的32位或者8位,内部控制寄存器(正常工作的时候用到的寄存器)均为8位寄存器,Debug寄存器(出问题进行测试时会用到的寄存器)为32位寄存器。而RISC-V处理器为MMIO接口为64位AXI总线,因此在挂载UART模块时需要额外进行位宽与地址的转换。
本实施例基于开源的RISC-V乱序执行处理器BOOM(超标量乱序执行处理器)的verilog RTL代码提出了一种UART外设,实现了一个基于RISC-V处理器的MMIO接口的片内外设,实现方式为verilog RTL代码,实现环境为xilinux FPGA开发板。请参考图4,图4为本实施例提供的UART外设的结构示意图;该设备主要包括:AXI2WB模块、WB Interface模块、UART_Regs模块、接收模块(UART_Receiver)以及输出模块(UART_Transmitter)。
一、AXI2WB模块。
AXI2WB模块一端与WB Interface模块连接,另一端用于与基于RISC-V处理器的主机端连接,AXI2WB模块主要用于实现AXI协议到WB(Wishbone一种片内总线)协议的转换,具体的实现AXI协议到WB协议转换的过程可以参照相关技术。
其中,优选地,AXI2WB模块具体可以包括以下模块:AXI写数据处理子模块、AXI写地址处理子模块、AXI写响应处理子模块、AXI读数据处理子模块、AXI读地址处理子模块、WB写操作处理子模块以及WB读操作处理子模块。
AXI写数据处理子模块用于实现AXI总线写数据处理,AXI写地址处理子模块用于实现AXI总线写地址处理,AXI写响应处理子模块用于实现AXI总线写响应处理,AXI读数据处理子模块用于实现AXI总线读数据处理,AXI读地址处理子模块用于实现AXI总线读地址处理,WB写操作处理子模块用于实现WB总线写操作处理,WB读操作处理子模块用于实现WB总线读操作处理。具体的各子模块的处理流程均可参照相关技术的介绍,当划分为以上子模块分别实现AXI协议以及WB协议各通道功能避免响应操作混乱,同时也可以方便各通道功能的管理。
可选地,一种子模块功能配置方案如下:
AXI写数据处理子模块用于:当AXI的写地址通道为可写入状态时,判断从机写数据通道是否成功接收到写数据,若是,则锁存AXI写数据信号,将从机写数据通道置为不可写入状态,将从机锁存的写数据信号置为有效状态;当写数据完成时,将从机写数据通道置为可写入状态,将从机锁存的写数据信号置为无效状态;图5所示为一种AXI写数据处理子模块的处理流程示意图;
AXI写地址处理子模块用于:当AXI写数据通道、从机锁存的写数据信号以及锁存的读地址信号均为无效状态时,判断从机写地址通道是否成功接收到写地址,若是,则锁存AXI写地址信号,对锁存的写地址信号进行对齐操作,将从机写地址通道置为不可接收状态,并将从机锁存的写地址信号置为有效状态;当最后一个写数据写入完成时,将从机写地址通道置为可写入状态,并将从机锁存的写地址信号置为无效状态;图6所示为一种AXI写地址处理子模块的处理流程示意图;
AXI写响应处理子模块用于:判断从机是否成功反馈写响应;若是,则将从机写响应置为无效状态;当写数据完成时,将从机写响应置为有效状态;图7所示为一种AXI写响应处理子模块处理流程示意图;
AXI读数据处理子模块用于:当AXI的读地址信号为有效状态时,判断当前WB读操作是否完成;若是,将从机读数据通道设置为可发送状态;当通过从机读数据通道将读数据发送给主机时,将从机读数据通道设置为不可发送状态;图8所示为一种AXI读数据处理子模块处理流程示意图;
AXI读地址处理子模块用于:当从机锁存的写地址信号、从机锁存的写数据信号、写响应通道以及从机锁存的读地址信号均为无效状态时,判断从机读地址通道是否成功接收到读地址,若是,则锁存AXI读地址信号,对锁存的读地址信号进行对齐操作;将从机读地址通道置为不可接收状态,将从机锁存的读地址信号置为有效状态;当最后一个读数据发送完成时,将从机读地址通道置为可写入状态,并将从机锁存的读地址信号置为无效状态;图9所示为一种AXI读地址处理子模块处理流程示意图;
WB写操作处理子模块用于:当AXI的从机锁存的写地址信号、从机锁存的写数据信号均为有效状态,且从机锁存的读地址信号为无效状态时,拉高wb_we_o、wb_stb_o、wb_cyc_o,启动一次WB写操作;当WB响应信号为响应状态时,拉低wb_we_o、wb_stb_o、wb_cyc_o;图10所示为一种WB写操作处理子模块处理流程示意图;
WB读操作处理子模块用于:当AXI从机锁存的写地址信号、从机锁存的写数据信号均为无效状态,且从机锁存的读地址信号为有效状态时,拉高wb_cyc_o、wb_stb_o,启动一次WB读操作;当WB响应信号为响应状态时,拉低wb_we_o、wb_stb_o、wb_cyc_o;图11所示为一种WB读操作处理子模块处理流程示意图。
本实施例中仅以上述子模块形式为例进行介绍,其它子模块搭建方式均可参照上述介绍,在此不再赘述。
二、WB Interface模块。
WB Interface模块与外设中其它部件均存在连接关系,具体地,WB Interface模块与AXI2WB模块双向连接;当实现数据传输功能时,WB Interface模块的输出端与输出模块的接收端连接,同时WB Interface模块的接收端与接收模块的输出端连接;当实现命令传输功能时,WB Interface模块与UART_Regs模块双向连接。
WB Interface模块主要用于实现各位宽的Wishbone总线接口的选择,具体的实现总线接口选择的过程可以参照相关技术,在此不再赘述。
可选地,WB Interface模块具体可以用于根据选择WB总线位宽的宏定义开关确定接口位宽,并根据接口位宽连接至位宽对应的Wishbone接口,通过宏定义开关进行接口切换实现方式简单,且性能稳定,本实施例中仅以该种功能实现方式为例进行介绍,其他情况均可参照本实施例的介绍。
一般来说,基于RISC-V处理器的异步收发传输器外设的Wishbone接口主要包括8位Wishbone接口、32位Wishbone接口两种接口形式,而该种接口形式下需要额外进行位宽转换,转换时需要较复杂的逻辑设计,实现过程复杂,实现难度大,实现成本高。为了避免这种额外的位宽转换,优选地,可以增加配置64位Wishbone接口以实现64位Wishbone总线的支持,则相应地,基于RISC-V处理器的异步收发传输器外设的Wishbone接口包括:8位Wishbone接口、32位Wishbone接口以及64位Wishbone接口。
一种WB Interface模块的处理流程图如图12所示,该模块通过宏定义开关实现8位、32位、64位等不同位宽的Wishbone总线接口的选择,其中,WB_BIT为选择WB总线位宽的宏定义开关,为在设计的时候可以很方便地选择8位、32位、64位接口而不必重新设计代码,增加64位Wishbone接口,增加的64位Wishbone接口所实现的功能以及连接方式均可参照32位、8位接口。
三、UART_Regs模块。
UART_Regs模块只在实现命令传输时需要与其他部件保持数据传输,具体地,UART_Regs模块与WB Interface模块保持双向连接,另外,UART_Regs模块的第一输出端与接收模块连接,第二输出端与输出模块连接。
UART_Regs模块主要用于实现各位宽的寄存器选择,具体的实现寄存器选择的过程可以参照相关技术,在此不再赘述。
可选地,WB Interface模块具体可以用于:根据选择UART寄存器位宽的宏定义开关确定寄存器位宽,并根据寄存器位宽连接至位宽对应的寄存器组。通过宏定义开关进行寄存器切换实现方式简单,且性能稳定,本实施例中仅以该种功能实现方式为例进行介绍,其他情况均可参照本实施例的介绍。
一般UART外设采用8位寄存器组,数据位宽为可选的32位或者8位,内部控制寄存器均为8位寄存器,Debug寄存器为32位寄存器。而RISC-V处理器为MMIO接口为64位AXI总线,因此在挂载UART模块调用寄存器时需要额外进行位宽与地址的转换。目前实现进行位宽地址的转换时需要较复杂的逻辑设计,实现过程复杂,实现难度大,实现成本高。为了避免这种额外的位宽与地址换换,可以在添加UART模块内部对64位和32位寄存器的支持则具体地,基于RISC-V处理器的异步收发传输器外设的寄存器包括:8位寄存器组、32位寄存器组以及64位寄存器组。
一种UART_Regs模块的处理流程图如图13所示,该模块通过宏定义开关实现8位、32位、64位等不同位宽的寄存器选择,其中,WB_REG为选择UART寄存器位宽的宏定义开关,为64位总线访问更方便。新增加32位、64位寄存器组,新增的32位、64位寄存器组与原有寄存器组的功能相同,与其他部件的连接方式也可以通过WB interface。
为加深对整体数据流转过程的理解,在此对数据传输路线以及命令传输路线进行介绍,图14所示为数据传输路线示意图,图15为命令传输路线示意图。主机通过命令传输路线告诉UART_Reciever需要读取数据,读数据就会按照图14所示的流转方向传送给主机,写同理,在此不再赘述。
基于上述技术方案,本实施例所提供的基于RISC-V处理器的异步收发传输器外设实现了有效的UART模块挂载,可直接挂载到RISC-V的MMIO(内存映射输入输出)接口上,可配合RISC-V处理器进行数据传输尤其是打印信息,有助于RISC-V SoC的研发进程,也有助于加速CPU自主研发进程。
本申请还提供了一种基于RISC-V处理器的异步收发传输系统,该系统主要包括:基于RISC-V处理器的异步收发传输器外设、主机端以及第一设备;图15所示为本实施例提供的一种异步收发传输系统连接示意图。
其中主机端为具有RISC-V处理器的主机端,基于RISC-V处理器的异步收发传输器外设挂载于主机端的MMIO接口,主机端主要用于实现来自第一设备的请求,包括数据读取请求、地址写入请求等。
基于RISC-V处理器的异步收发传输器外设的设备信息交互端连接于第一设备。基于RISC-V处理器的异步收发传输器外设可参照上述实施例的介绍,在此不再赘述。
第一设备可以为打印机等外部设备,本实施例中对第一设备的类型不做限定,可以根据实际情况将对应的第一设备连接至用基于RISC-V处理器的异步收发传输器外设的输出模块与接收模块的输出接收以及接收接口。
本实施例提供的基于RISC-V处理器的异步收发传输系统功能实现过程简单,稳定性高,搭建成本低。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的基于RISC-V处理器的异步收发传输器外设及基于RISC-V处理器的异步收发传输系统进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (8)
1.一种基于RISC-V处理器的异步收发传输器外设,其特征在于,包括:用于与主机端连接,实现AXI协议到WB协议的转换的AXI2WB模块、用于实现各位宽的Wishbone总线接口的选择的WB Interface模块、用于实现各位宽的寄存器选择的UART_Regs模块、用于与外部设备连接的接收模块与输出模块;
其中,所述WB Interface模块分别与所述AXI2WB模块、所述UART_Regs模块双向连接,用于控制信号的传递;
所述接收模块的数据信号输出端与所述WB Interface模块的数据信号输入端连接,控制信号输入端与UART_Regs模块的控制信号输出端连接,用于实现数据的接收以及处理;
所述输出模块的数据信号接收端与所述WB Interface模块的数据信号输出端连接,控制信号接收端与UART_Regs模块控制信号输出端连接,用于实现处理后数据的输出。
2.如权利要求1所述的基于RISC-V处理器的异步收发传输器外设,其特征在于,所述AXI2WB模块包括:AXI写数据处理子模块、AXI写地址处理子模块、AXI写响应处理子模块、AXI读数据处理子模块、AXI读地址处理子模块、WB写操作处理子模块以及WB读操作处理子模块。
3.如权利要求2所述的基于RISC-V处理器的异步收发传输器外设,其特征在于,所述AXI所述写数据处理子模块用于:当AXI的写地址通道为可写入状态时,判断从机写数据通道是否成功接收到写数据,若是,则锁存AXI写数据信号,将从机写数据通道置为不可写入状态,将从机锁存的写数据信号置为有效状态;当写数据完成时,将所述从机写数据通道置为可写入状态,将所述从机锁存的写数据信号置为无效状态;
所述AXI写地址处理子模块用于:当AXI所述写数据通道、所述从机锁存的写数据信号以及锁存的读地址信号均为无效状态时,判断从机写地址通道是否成功接收到写地址,若是,则锁存AXI写地址信号,对所述锁存的写地址信号进行对齐操作,将所述从机写地址通道置为不可接收状态,并将所述从机锁存的写地址信号置为有效状态;当最后一个写数据写入完成时,将所述从机写地址通道置为可写入状态,并将所述从机锁存的写地址信号置为无效状态;
所述AXI写响应处理子模块用于:判断从机是否成功反馈写响应;若是,则将从机写响应置为无效状态;当写数据完成时,将所述从机写响应置为有效状态;
所述AXI读数据处理子模块用于:当AXI的所述读地址信号为有效状态时,判断当前WB读操作是否完成;若是,将从机读数据通道设置为可发送状态;当通过所述从机读数据通道将读数据发送给主机时,将所述从机读数据通道设置为不可发送状态;
所述AXI读地址处理子模块用于:当所述从机锁存的写地址信号、所述从机锁存的写数据信号、写响应通道以及从机锁存的读地址信号均为无效状态时,判断所述从机读地址通道是否成功接收到读地址,若是,则锁存AXI读地址信号,对锁存的所述读地址信号进行对齐操作;将所述从机读地址通道置为不可接收状态,将所述从机锁存的读地址信号置为有效状态;当最后一个读数据发送完成时,将所述从机读地址通道置为可写入状态,并将所述从机锁存的读地址信号置为无效状态;
所述WB写操作处理子模块用于:当AXI的所述从机锁存的写地址信号、所述从机锁存的写数据信号均为有效状态,且所述从机锁存的读地址信号为无效状态时,拉高wb_we_o、wb_stb_o、wb_cyc_o,启动一次WB写操作;当WB响应信号为响应状态时,拉低wb_we_o、wb_stb_o、wb_cyc_o;
所述WB读操作处理子模块用于:当所述AXI从机锁存的写地址信号、所述从机锁存的写数据信号均为无效状态,且所述从机锁存的读地址信号为有效状态时,拉高wb_cyc_o、wb_stb_o,启动一次WB读操作;当所述WB响应信号为响应状态时,拉低wb_we_o、wb_stb_o、wb_cyc_o。
4.如权利要求1所述的基于RISC-V处理器的异步收发传输器外设,其特征在于,所述WBInterface模块具体用于:根据选择WB总线位宽的宏定义开关确定接口位宽,并根据所述接口位宽连接至位宽对应的Wishbone接口。
5.如权利要求1所述的基于RISC-V处理器的异步收发传输器外设,其特征在于,所述基于RISC-V处理器的异步收发传输器外设的Wishbone接口包括:8位Wishbone接口、32位Wishbone接口以及64位Wishbone接口。
6.如权利要求1所述的基于RISC-V处理器的异步收发传输器外设,其特征在于,所述UART_Regs模块具体用于:根据选择UART寄存器位宽的宏定义开关确定寄存器位宽,并根据所述寄存器位宽连接至位宽对应的寄存器组。
7.如权利要求1所述的基于RISC-V处理器的异步收发传输器外设,其特征在于,所述基于RISC-V处理器的异步收发传输器外设的寄存器包括:8位寄存器组、32位寄存器组以及64位寄存器组。
8.一种异步收发传输系统,其特征在于,包括:如权利要求1至7任意一项所述的基于RISC-V处理器的异步收发传输器外设、主机端以及第一设备;
其中,所述主机端为具有RISC-V处理器的主机端,所述基于RISC-V处理器的异步收发传输器外设挂载于所述主机端的MMIO接口;
所述基于RISC-V处理器的异步收发传输器外设的设备信息交互端连接于所述第一设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910599602.6A CN110389919B (zh) | 2019-07-04 | 2019-07-04 | 基于risc-v处理器的异步收发传输器外设及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910599602.6A CN110389919B (zh) | 2019-07-04 | 2019-07-04 | 基于risc-v处理器的异步收发传输器外设及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110389919A true CN110389919A (zh) | 2019-10-29 |
CN110389919B CN110389919B (zh) | 2021-03-19 |
Family
ID=68286201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910599602.6A Active CN110389919B (zh) | 2019-07-04 | 2019-07-04 | 基于risc-v处理器的异步收发传输器外设及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110389919B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020065967A1 (en) * | 1997-06-25 | 2002-05-30 | Macwilliams Peter D. | Transmission of signals synchronous to a common clock and transmission of data synchronous to strobes in a multiple agent processing system |
CN201336671Y (zh) * | 2008-12-01 | 2009-10-28 | 深圳市同洲电子股份有限公司 | 一种接口转换电路、dvr设备及gps设备 |
CN101989244A (zh) * | 2009-08-05 | 2011-03-23 | 华为技术有限公司 | 一种信号转换装置、方法及通信设备 |
CN102521190A (zh) * | 2011-12-19 | 2012-06-27 | 中国科学院自动化研究所 | 一种应用于实时数据处理的多级总线系统 |
US8504756B2 (en) * | 2011-05-30 | 2013-08-06 | Lsi Corporation | System, circuit and method for improving system-on-chip bandwidth performance for high latency peripheral read accesses |
CN103761208A (zh) * | 2013-10-08 | 2014-04-30 | 苏州爱思索电子科技有限公司 | 用于AHB总线向Crossbar总线的通讯转换桥设备 |
CN104021104A (zh) * | 2014-06-12 | 2014-09-03 | 国家电网公司 | 一种基于双总线结构的协同系统及其通信方法 |
CN106951379A (zh) * | 2017-03-13 | 2017-07-14 | 郑州云海信息技术有限公司 | 一种基于axi协议的高性能ddr控制器及数据传输方法 |
CN106952650A (zh) * | 2017-02-28 | 2017-07-14 | 大连理工大学 | 一种基于arm+fpga架构的列车语音放大单元 |
CN109471824A (zh) * | 2018-11-22 | 2019-03-15 | 青岛方寸微电子科技有限公司 | 基于axi总线的数据传输系统及方法 |
CN109828941A (zh) * | 2019-03-06 | 2019-05-31 | 苏州浪潮智能科技有限公司 | Axi2wb总线桥实现方法、装置、设备及存储介质 |
-
2019
- 2019-07-04 CN CN201910599602.6A patent/CN110389919B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020065967A1 (en) * | 1997-06-25 | 2002-05-30 | Macwilliams Peter D. | Transmission of signals synchronous to a common clock and transmission of data synchronous to strobes in a multiple agent processing system |
CN201336671Y (zh) * | 2008-12-01 | 2009-10-28 | 深圳市同洲电子股份有限公司 | 一种接口转换电路、dvr设备及gps设备 |
CN101989244A (zh) * | 2009-08-05 | 2011-03-23 | 华为技术有限公司 | 一种信号转换装置、方法及通信设备 |
US8504756B2 (en) * | 2011-05-30 | 2013-08-06 | Lsi Corporation | System, circuit and method for improving system-on-chip bandwidth performance for high latency peripheral read accesses |
CN102521190A (zh) * | 2011-12-19 | 2012-06-27 | 中国科学院自动化研究所 | 一种应用于实时数据处理的多级总线系统 |
CN103761208A (zh) * | 2013-10-08 | 2014-04-30 | 苏州爱思索电子科技有限公司 | 用于AHB总线向Crossbar总线的通讯转换桥设备 |
CN104021104A (zh) * | 2014-06-12 | 2014-09-03 | 国家电网公司 | 一种基于双总线结构的协同系统及其通信方法 |
CN106952650A (zh) * | 2017-02-28 | 2017-07-14 | 大连理工大学 | 一种基于arm+fpga架构的列车语音放大单元 |
CN106951379A (zh) * | 2017-03-13 | 2017-07-14 | 郑州云海信息技术有限公司 | 一种基于axi协议的高性能ddr控制器及数据传输方法 |
CN109471824A (zh) * | 2018-11-22 | 2019-03-15 | 青岛方寸微电子科技有限公司 | 基于axi总线的数据传输系统及方法 |
CN109828941A (zh) * | 2019-03-06 | 2019-05-31 | 苏州浪潮智能科技有限公司 | Axi2wb总线桥实现方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110389919B (zh) | 2021-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7141902B2 (ja) | ブリッジ装置、ブリッジ装置を用いたストレージ隣接演算方法 | |
US7363396B2 (en) | Supercharge message exchanger | |
US7426604B1 (en) | Virtual output buffer architecture | |
US6981088B2 (en) | System and method of transferring data words between master and slave devices | |
CN104021102B (zh) | 基于状态机和片内总线的cpci串口板及其工作方法 | |
CN106257434B (zh) | 一种基于增强型外设互连协议总线的数据传输方法及装置 | |
CN105404596B (zh) | 一种数据传输方法、装置及系统 | |
EP2388707A1 (en) | Interconnection method and device, for example for systems-on-chip | |
CN109308283A (zh) | 一种SoC片上系统及其外设总线切换方法 | |
CN101436171B (zh) | 模块化通信控制系统 | |
CN110109626A (zh) | 一种基于FPGA的NVMe SSD命令处理方法 | |
CN110635985A (zh) | 一种FlexRay-CPCIe通信模块 | |
US20220206970A1 (en) | Configurable Multi-Function PCIe Endpoint Controller in an SoC | |
CN112988647A (zh) | 一种TileLink总线到AXI4总线转换系统及方法 | |
CN111931442A (zh) | Fpga内嵌flash控制器及电子装置 | |
CN108153699A (zh) | 一种ahb转axi协议转换控制器设计方法 | |
CN109634901A (zh) | 一种基于uart的数据传输系统及其控制方法 | |
CN109933553B (zh) | 一种控制系统及其设计方法、一组控制系统、电子装置 | |
CN110389919A (zh) | 基于risc-v处理器的异步收发传输器外设及系统 | |
CN109145397A (zh) | 一种支持并行流水访问的外存仲裁结构 | |
JP4432388B2 (ja) | 入出力制御装置 | |
JP2859178B2 (ja) | プロセッサ間データ転送方式及びプロセッサ間データ転送用リングバッファメモリ | |
CN209055942U (zh) | 一种多功能复用接口电路 | |
CN116186793B (zh) | 一种基于risc-v的安全芯片架构及其工作方法 | |
US6789144B1 (en) | Apparatus and method in a network interface device for determining data availability in a random access memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |