CN114385544A - Uart芯片及fpga芯片 - Google Patents
Uart芯片及fpga芯片 Download PDFInfo
- Publication number
- CN114385544A CN114385544A CN202011126616.5A CN202011126616A CN114385544A CN 114385544 A CN114385544 A CN 114385544A CN 202011126616 A CN202011126616 A CN 202011126616A CN 114385544 A CN114385544 A CN 114385544A
- Authority
- CN
- China
- Prior art keywords
- debugging
- chip
- state
- read
- electrically connected
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/781—On-chip cache; Off-chip memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/273—Tester hardware, i.e. output processing circuits
- G06F11/2733—Test interface between tester and unit under test
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种UART芯片及FPGA芯片,属于芯片技术领域。UART芯片包括:收发装置、状态控制装置和调试装置;收发装置的一端用于与控制设备电性连接,收发装置的另一端与调试装置的一端电性连接,调试装置的另一端用于与待调试的SoC芯片连接;状态控制装置的一端与调试装置电性连接,状态控制装置的另一端用于与SoC芯片电性连接;收发装置,用于接收控制设备的第一调试信号,将第一调试信号传输至调试装置;状态控制装置,用于控制调试装置处于目标设定模式;调试装置,用于在目标设定模式下,将第一调试信号转换成调试命令,控制SoC芯片执行调试命令。本申请简化了调试过程,提高了对SoC芯片的调试效率。
Description
技术领域
本申请实施例涉及芯片技术领域,特别涉及一种UART芯片及FPGA芯片。
背景技术
随着芯片技术的发展,在设计完成片上系统(System-on-a-Chip,SoC)后,需要对SoC芯片的功能进行验证和调试。其中,常用的方法是通过现场可编程逻辑门阵列(FieldProgrammable Gate Array,FPGA),来模拟SoC芯片的原型,进而对SoC芯片的功能进行验证和调试。
发明内容
本申请实施例提供了一种UART芯片及FPGA芯片,能够简化调试过程,提高对SoC芯片的调试效率。所述技术方案如下:
一方面,提供了一种UART芯片,所述UART芯片包括:收发装置、状态控制装置和调试装置;
所述收发装置的一端用于与控制设备电性连接,所述收发装置的另一端与所述调试装置的一端电性连接,所述调试装置的另一端用于与待调试的片上系统SoC芯片连接;
所述状态控制装置的一端与所述调试装置电性连接,所述状态控制装置的另一端用于与所述SoC芯片电性连接;
所述收发装置,用于接收所述控制设备的第一调试信号,将所述第一调试信号传输至所述调试装置;
所述状态控制装置,用于控制所述调试装置处于目标设定模式;
所述调试装置,用于在所述目标设定模式下,将所述第一调试信号转换成调试命令,控制所述SoC芯片执行所述调试命令。
另一方面,提供了一种FPGA芯片,所述FPGA芯片包括片上系统SoC芯片和UART芯片,所述SoC芯片与所述UART芯片电性连接;
所述UART芯片为权利要求1-9任一项所述的通用异步收发传输器UART芯片;
所述SoC芯片,用于基于所述读写时序,执行所述调试命令。
在本公开实施例中,由于在UART芯片中设置调试装置和状态控制装置,状态控制装置能够设置调试装置处于目标设定模式下,而调试装置在目标设定模式下就可以作为主设备,对控制设备的第一调试信号进行转换得到调试命令,且控制SoC芯片执行该调试命令,从而能够形成从控制设备的软件控制到SoC芯片的硬件电路之间的调试通路,通过该调试通路即可实现对SoC芯片的调试,这样就不需要额外增加硬件和软件调试工具,简化了调试过程,提高了对SoC芯片的调试效率。
附图说明
图1示出了本申请一个示例性实施例示出的UART芯片的结构示意图;
图2示出了本申请另一个示例性实施例示出的UART芯片的结构示意图;
图3示出了本申请另一个示例性实施例示出的UART芯片的结构示意图;
图4示出了本申请另一个示例性实施例示出的UART芯片的结构示意图;
图5示出了本申请另一个示例性实施例示出的UART芯片的结构示意图;
图6示出了本申请另一个示例性实施例示出的UART芯片的结构示意图;
图7示出了本申请另一个示例性实施例示出的UART芯片的结构示意图;
图8示出了本申请另一个示例性实施例示出的解码模块的状态机示意图;
图9示出了本申请另一个示例性实施例示出的UART芯片的结构示意图;
图10示出了本申请一个示例性实施例示出的UART芯片的结构示意图;
图11示出了本申请另一个示例性实施例示出的FPGA芯片的结构示意图;
图12示出了本申请另一个示例性实施例示出的FPGA芯片的结构示意图;
图13示出了本申请一个示例性实施例示出的FPGA芯片的结构示意图。
1-控制设备
2-FPGA芯片
10-UART芯片
101-收发装置
1011-接收模块
1012-发送模块
102-状态控制装置
1021-分频寄存器
1022-状态寄存器
103-调试装置
1031-解码模块
10310-解码单元
10311-读写寄存器
1032-时序产生模块
104-RXD端口
105-TXD端口
106-第一缓存器
107-第二缓存器
108-波特率发生器
109-RTS端口
1010-CTS端口
20-SoC芯片
201-处理器
202-存储器
203-AXI总线矩阵
204-AHB总线矩阵
205-外围设备
30-AHB to APB连接器
301-AHB
302-APB
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
请参考图1,其示出了本申请一个示例性实施例提供的UART芯片10的结构框图。UART芯片10包括:收发装置101、状态控制装置102和调试装置103;
收发装置101的一端用于与控制设备1电性连接,收发装置101的另一端与调试装置103的一端电性连接,调试装置103的另一端用于与待调试的SoC芯片20连接;
状态控制装置102的一端与调试装置103电性连接,状态控制装置102的另一端用于与SoC芯片20电性连接;
其中,控制设备1包括个人计算机(Personal Computer,PC),例如,台式机、一体机、笔记本电脑等。相应的,收发装置101的一端与PC电性连接。用户通过控制设备1输入调试命令,基于该调试命令,控制设备1向收发装置101发送第一调试信号。其中,信号的类型包括并行信号和串行信号,相应的,第一调试信号为并行信号。
收发装置101,用于接收控制设备1的第一调试信号,将该第一调试信号传输至调试装置103。
状态控制装置102,用于控制调试装置103处于目标设定模式。UART芯片10的工作模式包括默认工作模式和目标设定模式。其中,在UART芯片10处于默认工作模式下,调试装置103处于休息状态,此时,UART芯片10作为从设备(slave),接收来自SoC芯片20上的主设备(master)的访问。在目标设定模式下,调试装置103处于正常工作状态,此时,UART芯片10作为主设备,访问SoC芯片20上的从设备。相应的,目标设定模式为master模式。
在本申请实施例中,通过状态控制装置102设置调试装置103的工作模式,由切换调试装置103的工作模式,来实现切换UART芯片10的工作模式,使得UART芯片10可以实现主设备模式与从设备模式,增加了UART芯片10的模式选择方式。
调试装置103,用于在目标设定模式下,将第一调试信号转换为调试命令,控制SoC芯片20执行调试命令。
参见图2,调试装置103包括解码模块1031和时序产生模块1032。
收发装置101的一端用于与控制设备1电性连接,收发装置101的另一端与解码模块1031的一端电性连接,解码模块1031的另一端与时序产生模块1032的一端电性连接,时序产生模块1032的另一端用于与待调试的SoC芯片20连接。
收发装置101,用于接收控制设备1的第一调试信号,将该第一调试信号传输至解码模块1031。其中,第一调试信号的类型包括读数据信号和写数据信号中的一种。
解码模块1031,用于基于该第一调试信号,解码出调试命令,将调试命令传输至时序产生模块1032。其中,调试命令的类型包括读数据命令和写数据命令中的一种。
时序产生模块1032,用于产生与调试命令对应的读写时序,控制SoC芯片20基于读写时序,执行调试命令。其中,读写时序的类型包括读数据时序和写数据时序中的一种。例如,第一调试信号的类型为读数据信号,解码模块1031基于该读数据信号,解码出读数据命令,将该读数据命令传输至时序产生模块1032,时序产生模块1032产生于该读数据命令对应的读数据时序,控制SoC芯片20基于读数据时序,执行读数据命令。
在本申请实施例中,通过在UART芯片10中设置调试装置103,由调试装置103中的解码模块1031和时序产生模块1032来控制SoC芯片20执行调试命令,无需额外的调试工具,使得UART芯片10既可访问SoC芯片20的内部地址,也可作为普通的传输器来传输数据,从而增加了UART芯片10的功能。
参见图3,解码模块1031包括:解码单元10310和读写寄存器10311;
解码单元10311,用于基于第一调试信号,解码出命令字段以及读写参数,将命令字段和读写参数存储至读写寄存器。其中,命令字段包括读字段和写字段中的一个。例如,读字段为R,表示read,写字段为W,表示write。读写参数包括读地址参数、写地址参数和写数据参数中的一个。例如,读地址为80000000。
读写寄存器10311包括:读地址寄存器、读数据寄存器、写地址寄存器和写数据寄存器。其中,读地址寄存器,用于存储读地址参数。写地址寄存器,用于存储写地址参数。写数据寄存器,用于存储写数据参数。读数据寄存器,用于存储读数据参数,其中,读数据参数为SoC芯片20执行调试命令时返回的数据。
时序产生模块1032,用于从读写寄存器10311中读取该命令字段和该读写参数,得到该调试命令。
在本申请实施例中,通过在解码模块中设置解码单元和读写寄存器,使得解码模块根据第一调试信号解码出对应命令字段和读写参数,进而驱使时序产生模块产生读写时序,使得通过UART芯片20即可完成解码操作,无需额外的调试工具,减少了调试工具的使用。
参见图4,收发装置101包括接收模块1011和发送模块1012。
接收模块1011的一端和发送模块1012的一端分别用于与控制设备1电性连接,接收模块1011的另一端和发送模块1012的另一端分别与解码模块1031的一端电性连接。
接收模块1011,用于接收第一调试信号,以及将第一调试信号转换成第一数据,该第一调试信号用于读数据或者写数据。
由上述可知,该第一调试信号为并行信号,接收模块1011将该并行信号转换成第一数据,相应的,该第一数据为串行数据,该第一数据中包括地址参数信息,该地址参数信息为SoC芯片20中地址空间的地址信息。例如,用户需要读取SoC芯片20的地址为8000000存储的数据,则第一数据中的地址参数信息为R8000000的十六进制字符,其中,R表示读取(read)。
响应于该第一调试信号用于读数据,时序产生模块1032,还用于接收SoC芯片20读出的第二数据,将该第二数据传输至解码模块1031。
解码模块1031,还用于将第二数据传输至发送模块1012。
发送模块1012,用于将第二数据转换成第二调试信号,以及将第二调试信号发送至控制设备1。第二数据为串行数据,第二调试信号为并行信号。相应的,发送模块1012将串行数据转换成并行信号,以及将该并行信号发送至控制设备1。
本申请实施例中,通过在UART芯片10中设置收发装置101,实现将控制设备1发送的并行信号转换成串行数据,以及将SoC芯片20发送的串行数据转换成并行信号发送至控制设备1,实现数据传输的串并转换,提高对SoC芯片20的调试效率。
参见图5,UART芯片10还包括:接收数据(Receive Data,RXD)端口104和发送数据(Transmit Data,TXD)端口105;
RXD端口104的一端与接收模块1011电性连接,TXD端口105的一端与发送模块1012电性连接,TXD端口105的另一端与RXD端口104的另一端分别用于与控制设备1电性连接。
RXD端口104,用于接收控制设备1的第一调试信号,以及将第一调试信号传输至接收模块1011。
TXD端口105,用于接收发送模块1012的第二调试信号,以及将第二调试信号传输至控制设备1。
在本申请实施例中,通过设置RXD端口104和TXD端口105,由RXD端口104和TXD端口105与控制设备1连接,进而实现与控制设备1之间的数据传输。
参见图6,UART芯片10还包括:第一缓存器106;
第一缓存器106的一端与接收模块1011的另一端电性连接,第一缓存器106的另一端与解码模块1031的一端电性连接。
第一缓存器106,用于缓存第一数据。相应的,第一缓存器106为接收缓存器,例如接收先进先出队列(Receive First Input First Output,RXFIFO)。响应于第一缓存器106中存在第一数据,第一缓存器106的状态为非空状态;响应于第一缓存器106中不存在第一数据,第一缓存器106的状态为空状态。
接收模块1011将第一数据传输至第一缓存器106,第一缓存器106缓存该第一数据,也就是第一缓存器106的状态为非空状态。其中,接收模块1011将第一数据按照各数据位的顺序传输至第一缓存器106。响应于第一缓存器106的状态为非空状态,解码单元10310获取该第一数据。
参见图7,UART芯片10还包括:第二缓存器107;
第二缓存器107的一端与发送模块1012的另一端电性连接,第二缓存器107的另一端与解码模块1031的一端电性连接;
第二缓存器107,用于缓存第二数据。相应的,第二缓存器107为发送缓存器,例如TXFIFO(Transmit First Input First Output,RXFIFO)。响应于第二缓存器107中存在第一数据,第二缓存器107的状态为非空状态;响应于第二缓存器107中不存在第一数据,第二缓存器107的状态为空状态。
读数据寄存器将第二数据传输至第二缓存器107,第二缓存器107缓存该第二数据,也就是第二缓存器107的状态为非空状态,响应于第二缓存器107的状态为非空状态,发送模块1012读取该第二数据。其中,第二数据为读数据参数。
在本申请实施例中,通过设置第一缓存器106和第二缓存器107,在收发装置101与调试装置103之间增加一个缓存数据的模块,实现缓存第一数据和第二数据,避免了数据因没有及时处理而丢失,提高了UART芯片10数据传输的安全性。
在一种可能的实现方式中,解码单元10310,用于从第一状态跳转到第二状态;其中,第一状态为空闲状态,在空闲状态下,解码单元10310无条件跳转到第二状态。第二状态为等待命令状态。
解码单元10310,用于在该第二状态下,接收到该第一调试信号,跳转到第三状态。在等待命令状态下,解码模块10310从第一缓存器中获取到该第一数据。其中,第三状态为判断状态。
解码单元10310,用于在该第三状态下,解码出该命令字段,确定该命令字段的有效性,响应于该命令字段有效,跳转到第四状态;在判断状态下,解码单元10310,从第一数据中解码出该命令字段,跳转到第四状态。
解码单元10310,用于在该第四状态下,解码出该读写参数,将该读写参数存储至该读写寄存器。其中,第四状态为参数解码状态。
在另一种可能的实现方式中,解码单元10310,用于从第一状态跳转到第二状态;其中,第一状态为空闲状态,在空闲状态下,解码单元10310无条件跳转到第二状态。第二状态为等待命令状态。
解码单元10310,用于在该第二状态下,接收到该第一调试信号,跳转到第三状态。在等待命令状态下,解码模块10310从第一缓存器中获取到该第一数据。
解码单元10310,用于在该第三状态下,解码出该命令字段,确定该命令字段的有效性,响应于该命令字段有效,跳转到第四状态;在判断状态下,解码单元10310,从第一数据中解码出该命令字段,跳转到第四状态。其中,第三状态为判断状态。第四状态为解码状态,第四状态包括第一子状态、第二子状态,第一子状态为等待读地址状态,第二子状态为等待写地址状态。在判断状态下,响应于该命令字段为读字段,跳转到第一子状态,即等待读地址状态。响应于该命令字段为写字段,跳转到第二子状态,即等待写地址状态。
解码单元10310,用于在该第四状态下,解码出该读写参数,将该读写参数存储至该读写寄存器。其中,解码单元10310,用于在该第一子状态下,响应于该读写参数为读地址参数,将该读地址参数存储在读地址寄存器中,跳转到第五状态。
解码单元10310,用于在该第二子状态下,响应于该读写参数为写地址参数,将该写地址参数存储在写地址寄存器中,跳转到第七状态。
在第四状态之前,解码单元10310还用于,在等待地址状态下,获取第一数据。其中,等待地址状态包括等待读地址状态和等待写地址状态中的一个。
解码单元10310,用于在该第五状态下,响应于时序产生模块1032返回第二数据,跳转到第六状态。该第五状态为等待读数据完成状态。
解码单元10310,用于在该第六状态下,将该第二数据存储至读数据寄存器。读数据寄存器,还用于将该第二数据传输至第二缓存器107。
解码单元10310,用于在该第七状态下,响应于该读写参数为写数据参数,将该写数据参数存储在写数据寄存器中,跳转到第八状态。
在第七状态之前,解码单元10310还用于,在等待写数据状态下,获取第一数据。
解码单元10310,用于在该第八状态下,响应于该读写参数为写数据参数,将该写数据参数存储在写数据寄存器中,跳转到第九状态。写数据寄存器,还用于将该写数据参数传输至时序产生模块1032。
解码单元10310,用于在该第九状态下,响应于时序产生模块1032发送的写数据完成信号,跳转到第一状态。
请参考图8,其示出了本申请一个示例性实施例提供的解码单元10310的状态机示意图。
解码单元10310,用于从第一状态跳转到第二状态;其中,第一状态为空闲(IDLE)状态。解码单元10310处于第一状态时,UART芯片10中的其他模块也处于空闲状态。并且,解码单元10310可以无条件跳转到第二状态;第二状态为等待命令(WAIT_CMD)状态。
解码单元10310,用于在第二状态下,接收到第一调试信号,跳转到点状态。
第二状态(WAIT_CMD状态):响应于RXFIFO的状态为空状态,解码单元10310处于等待状态,等待RXFIFO的状态改变;响应于RXFIFO的状态为非空状态,解解码单元10310发起一次读取RXFIFO的操作,读取RXFIFO中缓存的第一数据,以及跳转到第三状态;例如,第三状态为判断(JUDGE_CMD)状态。
第三状态(JUDGE_CMD状态):解码单元10310,用于在第三状态下,解码出命令字段,确定该命令字段的有效性,响应于该命令字段有效,将该命令字段存储至读写寄存器10311,跳转到第四状态。第四状态包括第一子状态和第二子状态。解码单元,用于在第四状态下,解码出读写参数,将读写参数存储至读写寄存器10311。其中,读写寄存器10311包括读地址寄存器、写地址寄存器、读数据寄存器和写数据寄存器。
解码单元10310,用于对读取的第一数据进行判断,也就是对读取到的字符进行判断,响应于读取到的字符是R的ASCII值,即表示read,读数据操作,则解码单元10310进入等待读地址(WAIT_RADDR)状态。如果读取到的字符是W的ASCII值,即表示write,写数据操作,则解码单元10310进入等待写地址(WAIT_WADDR)状态。如果读取到的字符是其他值,则表示RXFIFO中缓存的字符为非法字符,也就是接收模块1011接收到的第一调试信号为非法信号,也就是控制设备1发送的第一调试信号为非法信号,也就是用户在控制设备1上的串口调试工具中,输入了一个非法的读命令,则解码单元10310返回IDLE状态。
WAIT_RADDR:响应于RXFIFO的状态为空状态,解码单元10310处于等待状态,等待读地址进入RXFIFO;响应于RXFIFO的状态为非空状态,解码单元10310发起一次读取RXFIFO的操作,读取RXFIFO中缓存的第一数据,以及跳转到第一子状态,例如,读地址解码(RADDR_DECODE)状态。
RADDR_DECODE状态:响应于读出的字符是0x0~0xf的ASCII值,并且已经读出的地址的字符个数不大于8,则解码单元10310跳转到WAIT_RADDR状态,以及将读取到的ASCII值转换成十六进制字符所表示的数字值,并且将该数字值左移进入读地址寄存器。例如,当前读地址寄存器的值是0x12,解码单元10310读取的ASCII值为0x33,转换成十六进制字符表示的数字值为3,将数字3左移进入读地址寄存器,则读地址寄存器中的数据为0x123。在一种可能的实现方式中,读地址寄存器中缓存的字符为0x80000000。响应于读出的字符是回车的ASCII值,则表示读地址接收完成,解码单元10310进入等待读数据完成(WAIT_RDATA_DONE)状态。响应于读出的字符是其他的ASCII值,或者,已经读出的地址的字符个数大于8,则表示接收模块1011接收到的第一调试信号为非法信号,也就是控制设备1发送的第一调试信号为非法信号,也就是用户在控制设备1上的串口调试工具中,输入了一个非法的读地址,解码单元10310跳转到IDLE状态。
WAIT_RDATA_DONE状态:时序产生模块1032,基于解码单元10310发送的读命令和读地址,产生读数据时序。AHB to APB连接器30基于读数据时序,将调试命令传输至SoC芯片20,SoC芯片20执行调试命令,返回读地址对应的地址空间存储的第二数据,例如RDATA,AHB to APB连接器30将该第二数据通过时序产生模块1032传输至解码单元10310,状态机跳到第六状态,例如,写入TXFIFO(WRITE_TXFIFO)状态。
WRITE_TXFIFO状态:解码单元10310将第二数据写入TXFIFO,例如,第二数据为0x12345678的ASCII值。响应于TXFIFO的状态为非空状态,发送模块1012将第二数据转换成并行信号,通过TXD传输至控制设备1的RXD,完成一次读数据操作,解码单元10310跳转到IDLE状态。
WAIT_WADDR状态:响应于RXFIFO状态为空状态,解码单元10310等待写地址进入RXFIFO。响应于RXFIFO状态为非空状态,解码单元10310发起一次读取RXFIFO的操作,以及跳转到第二子状态,例如,写地址解码(WADDR_DECODE)状态。
WADDR_DECODE状态:响应于读出的字符是0x0~0xf的ASCII值,并且已经读出的地址的字符个数不大于8,则解码单元10310跳转到等待写地址(WAIT_WADDR)状态,以及将读取到的ASCII的值转换成十六进制字符所表示的数字值,并且将该数字值左移进入写地址寄存器。例如,当前写地址寄存器的值为0xab,解码单元10310读取的值是0x63,转换成十六进制字符表示的字符为c,将字符c左移进入写地址寄存器,则写地址寄存器中的数据为0xabc。响应于读出的字符是空格的ASCII值,则表示写地址接收完成,解码单元10310进入等待写数据(WAIT_WDATA)状态。响应于读出的字符是其他的ASCII值,或者,已经读出的地址字符个数大于8,则表示接收模块1011接收到的第一调试信号为非法信号,也就是控制设备1发送的第一调试信号为非法信号,也就是用户在控制设备1上的串口调试工具中,输入了一个非法的写地址,解码单元10310跳转到IDLE状态。
WAIT_WDATA状态:响应于RXFIFO状态为空状态,解码单元10310等待写数据进入RXFIFO。响应于RXFIFO状态为非空状态,解码单元10310发起一次读取RXFIFO的操作,以及跳转到第八状态,例如,写数据解码(WDATA_DECODE)状态。
WDATA_DECODE状态:响应于读出的字符是0x0~0xf的ASCII值,并且已经读出的地址字符个数不大于8,则解码单元10310跳转到WAIT_WDATA状态,以及将读取到的ASCII的值转换成十六进制字符所表示的数字值,并且将该数字值左移进入写数据寄存器。例如,当前写数据寄存器的值是0x55,解码单元10310读取的值是0x35,转换成十六进制字符表示的数字值为5,将该数字值5左移进入写数据寄存器,则写地址寄存器中的数据为0x555。响应于读出的字符是回车的ASCII值,则表示写数据接收完成,解码单元10310进入第九状态,例如,写数据完成(WAIT_WDATA_DONE)状态。响应于读出的字符是其他的ASCII值,或者,已经读出的地址字符个数大于8,则表示用户输入了一个非法的写数据,状态机跳转回到IDLE状态。
WAIT_WDATA_DONE状态:时序产生模块1032,基于解码单元10310发送的写命令、写地址和写数据,产生写数据时序。AHB to APB连接器30基于写数据时序,将调试命令传输至SoC芯片20,SoC芯片20执行调试命令,将写数据的内容写入写地址对应的地址空间。响应于SoC芯片20的写操作完成,解码单元10310跳转到IDLE状态。例如写命令为W,写地址为80000000,写数据为aa5555aa,则SoC芯片20再次执行上述读操作,响应于返回的读数据为aa5555aa,SoC芯片20写入的数据没有错误。
在本公开实施例中,由于在UART芯片10中设置调试装置103和状态控制装置102,当需要对SoC芯片20进行调试时,通过状态控制装置102来设置调试装置103的模式,使得调试装置103处于目标设定模式下,此时UART芯片10作为主设备,控制SoC芯片20执行读写命令,实现从软件到硬件的通路,无需额外增加硬件和软件调试工具,即可实现对SoC芯片20功能的验证和调试,提高了对SoC芯片20的调试效率。
参见图9,UART芯片10还包括:波特率发生器108;
波特率发生器108的一端分别与接收模块1011和发送模块1012电性连接,波特率发生器108的另一端与状态控制装置102电性连接;
相关技术中,UART芯片10与控制设备1进行数据传输过程中,接收双方的波特率相同,也就是UART芯片10的波特率与控制设备1的波特率相同。相应的,波特率发生器108,用于产生目标波特率时钟,目标波特率时钟与控制设备1的波特率时钟相同。
在本申请实施例中,通过设置波特率产生器,使得UART芯片10的波特率与控制设备1的波特率相同,进而避免了接发双方的波特率不同导致数据丢失,提高了UART芯片10数据传输的安全性。
参见图10,状态控制装置102包括:分频寄存器1021;
分频寄存器1021的一端与波特率发生器108电性连接,分频寄存器1021的另一端用于与SoC芯片20电性连接;
SoC芯片20具有固定的系统时钟,系统时钟用于驱动SoC芯片20和外部模块执行命令。本申请中,UART芯片10的波特率时钟由SoC芯片20的系统时钟提供。相应的,分频寄存器1021,用于基于SoC芯片20的系统时钟,确定分频系数,向波特率发生器108传输分频系数。
波特率发生器108,用于基于分频系数,产生目标波特率时钟。
本申请实施例中,通过设置分频寄存器1021,为波特率产生器提供分频系数,实现UART芯片10的波特率设置,使得UART芯片10的波特率与控制设备1的波特率相同。
继续参见图10,状态控制装置102还包括:状态寄存器1022;
状态寄存器1022一端分别与第一缓存器106、第二缓存器107和解码模块1031电性连接,状态寄存器1022的另一端用于与SoC芯片20电性连接;
状态寄存器1022,用于检查UART芯片10的状态。例如,第一缓存器106是否被填满、解码模块1031的状态等。
在本申请实施例中,通过设置状态控制装置102,对UART芯片10的状态进行监控,并基于UART芯片10的状态的变化,对相应的模块进行设置,使得对SoC芯片20的调试过程有序进行。
继续参见图10,UART芯片10还包括:请求发送(Require To Send,RTS)接口109和清除发送(Clear To Send,CTS)接口1010。RTS接口109的一端和CTS接口1010的一端分别与状态寄存器1022电性连接。相应的,控制设备1的USB包括请求发送(Require To Send,RTS)接口和清除发送(Clear To Send,CTS)接口。RTS接口109的另一端用于与控制设备1的CTS接口1010电性连接,CTS接口1010的另一端用于与控制设备1的RTS接口109电性连接。
响应于第一缓存器106被填满,状态寄存器1022生成第一填满消息,将该第一填满消息发送至CTS接口1010,CTS接口1010基于该第一填满消息,向控制设备1的RTS接口109发送第一填满信号。响应于第一缓存器106未被填满,状态寄存器1022生成第二填满消息,将该第二填满消息发送至RTS接口109,RTS接口109基于该第二填满消息,向控制设备1的CTS接口1010发送第二填满信号。该第一填满消息指示第一缓存器106被填满。该第一填满消息包括第一缓存器106的标识和填满标识。该第二填满消息指示第一缓存器106未被填满。该第二填满消息包括第一缓存器106的标识和未填满标识。
在本公开实施例中,由于在UART芯片中设置调试装置和状态控制装置,状态控制装置能够设置调试装置处于目标设定模式下,而调试装置在目标设定模式下就可以作为主设备,对控制设备的第一调试信号进行转换得到调试命令,且控制SoC芯片执行该调试命令,从而能够形成从控制设备的软件控制到SoC芯片的硬件电路之间的调试通路,通过该调试通路即可实现对SoC芯片的调试,这样就不需要额外增加硬件和软件调试工具,简化了调试过程,提高了对SoC芯片的调试效率。
请参考图11,其示出了本申请一个示例性实施例提供的FPGA芯片2的结构框图。FPGA芯片2包括SoC芯片20和UART芯片10;
SoC芯片20与UART芯片10电性连接;
UART芯片10为上述图1-4中的UART芯片10。UART芯片10,用于接收控制设备1的第一调试信号,将第一调试信号转换成调试命令,控制SoC芯片20执行调试命令。
其中,UART芯片10的RXD端口104和TXD端口105分别与FPGA芯片2的第一引脚和第二引脚电性连接。第一引脚与第二引脚分别对应SoC芯片20的输入端口和输出端口(Input/Output interface,I/O接口)。本申请中,UART芯片10使用UART通信协议。控制设备1包括串口调试工具,其中,串口调试工具包括RXD端口104和TXD端口105。例如USB,USB使用USB通信协议。UART芯片10需要与控制设备1的USB电性连接。相应的,FPGA芯片2还包括转换芯片。转换芯片与UART芯片10电性连接,转换芯片用于将UART芯片10的UART通信协议转换成USB通信协议。相应的,UART芯片10的RXD端口104与USB的TXD端口105电性连接,UART芯片10的TXD端口105与USB的RXD端口104电性连接。
SoC芯片20,用于基于读写时序,执行调试命令。
参见图12,FPGA芯片2还包括AHB to APB连接器30;
SoC芯片20通过AHB to APB连接器30与UART芯片10电性连接。
AHB to APB连接器30,包括AHB301和APB302。AHB to APB连接器30,用于基于UART芯片10的读写时序,将调试命令传输至SoC芯片20。响应于SoC芯片20需要传输第二数据,AHB to APB连接器30将该第二数据传输至UART芯片10。例如,时序产生模块1032产生的时序类型为读数据时序,SoC芯片20基于该读数据时序,读取SoC芯片20内部的第二数据,将该第二数据传输至AHB to APB连接器30,AHB to APB连接器30将该第二数据通过调试装置103传输至第二缓存器107。
其中,对于SoC芯片20,AHB301作为主设备,对SoC芯片20的地址进行访问。对于UART芯片10,APB302作为从设备,接收来自UART芯片10的访问。
在本公开实施例中,由于在UART芯片中设置调试装置和状态控制装置,状态控制装置能够设置调试装置处于目标设定模式下,而调试装置在目标设定模式下就可以作为主设备,对控制设备的第一调试信号进行转换得到调试命令,且控制SoC芯片执行该调试命令,从而能够形成从控制设备的软件控制到SoC芯片的硬件电路之间的调试通路,通过该调试通路即可实现对SoC芯片的调试,这样就不需要额外增加硬件和软件调试工具,简化了调试过程,提高了对SoC芯片的调试效率。
参见图13,SoC芯片20包括:处理器201、存储器202、AXI总线矩阵203和AHB总线矩阵204;
AHB总线矩阵204(Bus Matrix)分别与AHB to APB连接器30和AXI总线矩阵203电性连接;
处理器201和存储器202分别与AXI总线矩阵203电性连接。
其中,AHB总线矩阵204,用于接收AHB to APB连接器30传输的调试命令,将该调试命令传输至处理器201或者存储器202。
处理器201为SoC芯片20的中央处理器201(central processing unit,CPU)。存储器202包括只读存储器202(Read-Only Memory,ROM)、随机存取存储器202(Random AccessMemory,RAM)和双倍速率同步动态随机存储器202(Double Data Rate SDRAM,DDR SDRAM)。
继续参见图13,SoC芯片20还包括:外围设备205(Peripheral)。
在一种可能的实现方式中,UART芯片10接收控制设备1发送第一调试信号,接收模块1011将该第一调试信号转换成第一数据,其中,该第一数据包括驱动程序。该驱动程序用于驱动CPU。CPU基于该驱动程序执行调试命令,例如控制存储器202存储数据等。
在本公开实施例中,由于在UART芯片中设置调试装置和状态控制装置,状态控制装置能够设置调试装置处于目标设定模式下,而调试装置在目标设定模式下就可以作为主设备,对控制设备的第一调试信号进行转换得到调试命令,且控制SoC芯片执行该调试命令,从而能够形成从控制设备的软件控制到SoC芯片的硬件电路之间的调试通路,通过该调试通路即可实现对SoC芯片的调试,这样就不需要额外增加硬件和软件调试工具,简化了调试过程,提高了对SoC芯片的调试效率。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个程序代码或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种通用异步收发传输器UART芯片,其特征在于,所述UART芯片包括:收发装置、状态控制装置和调试装置;
所述收发装置的一端用于与控制设备电性连接,所述收发装置的另一端与所述调试装置的一端电性连接,所述调试装置的另一端用于与待调试的片上系统SoC芯片连接;
所述状态控制装置的一端与所述调试装置电性连接,所述状态控制装置的另一端用于与所述SoC芯片电性连接;
所述收发装置,用于接收所述控制设备的第一调试信号,将所述第一调试信号传输至所述调试装置;
所述状态控制装置,用于控制所述调试装置处于目标设定模式;
所述调试装置,用于在所述目标设定模式下,将所述第一调试信号转换成调试命令,控制所述SoC芯片执行所述调试命令。
2.根据权利要求1所述的UART芯片,其特征在于,所述调试装置包括解码模块和时序产生模块;
所述收发装置的一端用于与控制设备电性连接,所述收发装置的另一端与所述解码模块的一端电性连接,所述解码模块的另一端与所述时序产生模块的一端电性连接,所述时序产生模块的另一端用于与待调试的SoC芯片连接;
所述收发装置,用于接收所述控制设备的第一调试信号,将所述第一调试信号传输至所述解码模块;
所述解码模块,用于基于所述第一调试信号,解码出调试命令,将所述调试命令传输至所述时序产生模块;
所述时序产生模块,用于产生与所述调试命令对应的读写时序,控制所述SoC芯片基于所述读写时序,执行所述调试命令。
3.根据权利要求2所述的UART芯片,其特征在于,所述解码模块包括:解码单元和读写寄存器;
所述解码单元,用于基于所述第一调试信号,解码出命令字段以及读写参数,将所述命令字段和所述读写参数存储至所述读写寄存器;
所述时序产生模块,用于从所述读写寄存器中读取所述命令字段和所述读写参数,得到所述调试命令。
4.根据权利要求3所述的UART芯片,其特征在于,
所述解码单元,用于从第一状态跳转到第二状态;
所述解码单元,用于在所述第二状态下,接收到所述第一调试信号,跳转到第三状态;
所述解码单元,用于在所述第三状态下,解码出所述命令字段,确定所述命令字段的有效性,响应于所述命令字段有效,将所述命令字段存储至所述读写寄存器,跳转到第四状态;
所述解码单元,用于在所述第四状态下,解码出所述读写参数,将所述读写参数存储至所述读写寄存器。
5.根据权利要求1所述的UART芯片,其特征在于,所述收发装置包括接收模块和发送模块;
所述接收模块的一端和所述发送模块的一端分别用于与所述控制设备电性连接,所述接收模块的另一端和所述发送模块的另一端分别与所述解码模块的一端电性连接;
所述接收模块,用于接收所述第一调试信号,以及将所述第一调试信号转换成第一数据,所述第一调试信号用于读数据或者写数据;
响应于所述第一调试信号用于读数据,所述时序产生模块,还用于接收所述SoC芯片读出的第二数据,将所述第二数据传输至所述解码模块;
所述解码模块,还用于将所述第二数据传输至所述发送模块;
所述发送模块,用于将所述第二数据转换成第二调试信号,以及将所述第二调试信号发送至所述控制设备。
6.根据权利要求5所述的UART芯片,其特征在于,所述UART芯片还包括:第一缓存器;
所述第一缓存器的一端与所述接收模块的另一端电性连接,所述第一缓存器的另一端与所述解码模块的一端电性连接;
所述第一缓存器,用于缓存所述第一数据。
7.根据权利要求5所述的UART芯片,其特征在于,所述UART芯片还包括:第二缓存器;
所述第二缓存器的一端与所述发送模块的另一端电性连接,所述第二缓存器的另一端与所述解码模块的一端电性连接;
所述第二缓存器,用于缓存所述第二数据。
8.根据权利要求5所述的UART芯片,其特征在于,所述UART芯片还包括:波特率发生器;
所述波特率发生器的一端分别与所述接收模块和所述发送模块电性连接,所述波特率发生器的另一端与所述状态控制装置电性连接;
所述波特率发生器,用于产生目标波特率时钟,所述目标波特率时钟与所述控制设备的波特率时钟相同。
9.根据权利要求8所述的UART芯片,其特征在于,所述状态控制装置包括:分频寄存器;
所述分频寄存器的一端与所述波特率发生器电性连接,所述分频寄存器的另一端用于与所述SoC芯片电性连接;
所述分频寄存器,用于确定分频系数,向所述波特率发生器传输所述分频系数;
所述波特率发生器,用于基于所述分频系数,产生所述目标波特率时钟。
10.一种现场可编程逻辑门阵列FPGA芯片,其特征在于,所述FPGA芯片包括片上系统SoC芯片和UART芯片,所述SoC芯片与所述UART芯片电性连接;
所述UART芯片为权利要求1-9任一项所述的通用异步收发传输器UART芯片;
所述SoC芯片,用于基于所述读写时序,执行所述调试命令。
11.根据权利要求10所述的FPGA芯片,其特征在于,所述FPGA芯片还包括高级高性能总线AHB to高级外围总线APB连接器;
所述SoC芯片通过所述AHB to APB连接器与所述UART芯片电性连接。
12.根据权利要求11所述的FPGA芯片,其特征在于,所述SoC芯片包括:处理器、存储器、总线协议AXI总线矩阵和AHB总线矩阵;
所述AHB总线矩阵分别与所述AHB to APB连接器和所述AXI总线矩阵电性连接;
所述处理器和所述存储器分别与所述AXI总线矩阵电性连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011126616.5A CN114385544A (zh) | 2020-10-20 | 2020-10-20 | Uart芯片及fpga芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011126616.5A CN114385544A (zh) | 2020-10-20 | 2020-10-20 | Uart芯片及fpga芯片 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114385544A true CN114385544A (zh) | 2022-04-22 |
Family
ID=81192757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011126616.5A Pending CN114385544A (zh) | 2020-10-20 | 2020-10-20 | Uart芯片及fpga芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114385544A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220058111A1 (en) * | 2020-08-20 | 2022-02-24 | Hongfujin Precision Electronics (Tianjin) Co.,Ltd. | System and method for processing data between host computer and cpld |
-
2020
- 2020-10-20 CN CN202011126616.5A patent/CN114385544A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220058111A1 (en) * | 2020-08-20 | 2022-02-24 | Hongfujin Precision Electronics (Tianjin) Co.,Ltd. | System and method for processing data between host computer and cpld |
US11604721B2 (en) * | 2020-08-20 | 2023-03-14 | Fulian Precision Electronics (Tianjin) Co., Ltd. | System and method for processing data between host computer and CPLD |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110851388B (zh) | 针对risc-v处理器的调试系统及调试信号传输方法 | |
CN108268414B (zh) | 基于spi模式的sd卡驱动器及其控制方法 | |
JP2006500679A (ja) | Usb接続のためのインタフェース集積回路デバイス | |
CN111931442B (zh) | Fpga内嵌flash控制器及电子装置 | |
CN114564427A (zh) | 一种ahb总线到i2c总线的总线桥、系统及方法 | |
KR100423969B1 (ko) | 필드버스 인터페이스 보드 및 그 제어방법 | |
CN114297124B (zh) | 一种基于fpga的srio高速总线的通讯系统 | |
CN105356988A (zh) | 一种基于PCIe的全双工DMA传输方法 | |
CN114385544A (zh) | Uart芯片及fpga芯片 | |
CN115454881B (zh) | Risc-v架构的调试系统及调试方法 | |
CN115982071A (zh) | 一种面向ddr3控制器的片上网络转换接口 | |
KR20160147373A (ko) | 광 신호를 이용한 sata 호스트 버스 어댑터 및 sata 저장소 연결 방법 | |
CN100349153C (zh) | 一种实现输出控制的方法及由主板控制接口卡的装置 | |
CN112835834A (zh) | 数据传输系统 | |
US20050144331A1 (en) | On-chip serialized peripheral bus system and operating method thereof | |
CN111258936A (zh) | 一种dma数据传输系统及数据传输方法 | |
CN114896183B (zh) | 一种基于zynq的串口数据发送方法 | |
CN115202257B (zh) | 一种lpc总线协议转换及设备并行控制装置及方法 | |
CN116594951B (zh) | 一种基于fpga的数据传输系统及方法 | |
CN108664428B (zh) | 一种基于fpga的通信方法以及fpga控制器和usb适配器 | |
CN115391254A (zh) | Uart到spi接口的转化方法及系统 | |
CN109597785A (zh) | 一种基于AXI4接口的PCI Express总线适配多接口的设计方法 | |
CN101930394A (zh) | 一种基于usb的ahb总线跟踪测试方法与系统 | |
KR100677914B1 (ko) | 주기적으로 입출력을 검사하는 시스템에서 epmcq2를원격 모드로 사용할 때 속도를 향상시키는 방법 | |
CN117234997A (zh) | 一种基于fpga的嵌入式系统高速互联方法及系统 |
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 |