CN112579486B - 基于双端口ram实现跨时钟域通信的系统 - Google Patents

基于双端口ram实现跨时钟域通信的系统 Download PDF

Info

Publication number
CN112579486B
CN112579486B CN202011463868.7A CN202011463868A CN112579486B CN 112579486 B CN112579486 B CN 112579486B CN 202011463868 A CN202011463868 A CN 202011463868A CN 112579486 B CN112579486 B CN 112579486B
Authority
CN
China
Prior art keywords
dual
address
port ram
state
information
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.)
Active
Application number
CN202011463868.7A
Other languages
English (en)
Other versions
CN112579486A (zh
Inventor
李广兴
刘士成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Transcom Shanghai Technologies Co Ltd
Original Assignee
Shanghai TransCom Instruments Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai TransCom Instruments Co Ltd filed Critical Shanghai TransCom Instruments Co Ltd
Priority to CN202011463868.7A priority Critical patent/CN112579486B/zh
Publication of CN112579486A publication Critical patent/CN112579486A/zh
Application granted granted Critical
Publication of CN112579486B publication Critical patent/CN112579486B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

本发明涉及一种基于双端口RAM实现跨时钟域通信的系统,包括双端口RAM以及与双端口RAM相连的状态机,所述的双端口RAM还与CPU相连接,用于进行地址划分;所述的状态机在空闲状态持续监测触发信息地址,在信息地址中的内容非零时,触发状态机跳转至解码状态,锁存协议信息并解码协议信息,状态机跳转至不同的进程执行进程操作,时序完成后更新状态寄存器并返回空闲状态。采用了本发明的基于双端口RAM实现跨时钟域通信的系统,实现了多个时钟域信息传递的规范化,保证逻辑设计时序的稳定可靠,并具有较强的拓展能力。本发明体现硬件逻辑为通信管道的特点,将外设的操控通过定义协议的形式实现,具有较强的灵活性。

Description

基于双端口RAM实现跨时钟域通信的系统
技术领域
本发明涉及数字通信领域,尤其涉及数字通信逻辑设计领域,具体是指一种基于双端口 RAM实现跨时钟域通信的系统。
背景技术
传统上,CPU与外设通过局部共享总线的形式进行通信,通信过程中,CPU是主,外设是从。在基于Verilog等硬件编程语言的逻辑设计领域,广泛使用了AXI4,Wishbone等标准总线,标准总线时序可靠,但实现较为复杂,在定制系统中,如果采用标准总线实现CPU与外设的通信,需要较为严格的设计和验证,开发周期较长,并且存在外设与外设通信需要CPU仲裁的复杂性。基于地址访问的总线最简单的形式包括地址线、数据线,读写使能控制线等信号,这种总线接口简单,时序不复杂,在专用设备逻辑开发中广泛使用。跨时钟域逻辑设计存在一定的难度,为解决跨时钟域问题,多信息共享的情况下一般多采用双端口RAM进行时钟域转换。在双端口RAM的两侧分别实现控制状态机,实施事件监测和存储访问的功能,可以实现CPU与外设,外设与外设,形成多节点网格的跨时钟域数据通信。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种满足时序简单、共享性好、适用范围较为广泛的基于双端口RAM实现跨时钟域通信的系统。
为了实现上述目的,本发明的基于双端口RAM实现跨时钟域通信的系统如下:
该基于双端口RAM实现跨时钟域通信的系统,其主要特点是,所述的系统包括双端口 RAM以及与双端口RAM相连的状态机,所述的双端口RAM还与CPU相连接,用于进行地址划分;
所述的状态机在空闲状态持续监测触发信息地址,在信息地址中的内容非零时,触发状态机跳转至解码状态,锁存协议信息并解码协议信息,状态机跳转至不同的进程执行进程操作,时序完成后更新状态寄存器并返回空闲状态。
较佳地,所述的双端口RAM具有线性地址空间,所述的线性地址空间包括SFR寄存器和堆栈,所述的SFR寄存器用于实现全局触发,所述堆栈用于保存不同外设进程信息。
较佳地,所述的双端口RAM的存储空间还分别对应不同外设,用于存储对应进程FSM 及外设实体配置、状态的信息。
较佳地,所述的SFR寄存器包括触发信息地址,包括协议信息地址和状态信息地址。
较佳地,所述的状态机还接受外部触发信号,在无CPU干预的情况下,实现实时动作并实时保存状态快照。
较佳地,所述的CPU轮询触发信息地址的内容,在监测到信息地址中的内容为全0时, SPI外设已完成操作。
较佳地,所述的系统还包括多个双端口RAM和多个与状态机,所述的多个双端口RAM 均与CPU相连接,所述的多个状态机与对应的双端口RAM相连。
采用了本发明的基于双端口RAM实现跨时钟域通信的系统,对等化处理不同时钟域的逻辑实体,一侧的信息更新可以利用双端口RAM自身的跨时钟域特点实现触发信号的传递,并在随后的状态跳转中完成信息访问。实现了多个时钟域信息传递的规范化,保证逻辑设计时序的稳定可靠,并具有较强的拓展能力。本发明体现硬件逻辑为通信管道的特点,将外设的操控通过定义协议的形式实现,具有较强的灵活性。拓扑结构具有比较规范的实现,状态机主体代码可以实现一定程度的复用。减少多次开发的成本。
附图说明
图1为本发明的基于双端口RAM实现跨时钟域通信的系统的网络示意图。
图2为本发明的基于双端口RAM实现跨时钟域通信的系统的基本结构框图。
图3为本发明的基于双端口RAM实现跨时钟域通信的系统的双端口RAM内部地址空间划分示意图。
图4为本发明的基于双端口RAM实现跨时钟域通信的系统的双端口RAM两侧监测状态机工作流程示意图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
本发明的该基于双端口RAM实现跨时钟域通信的系统,其中包括双端口RAM以及与双端口RAM相连的状态机,所述的双端口RAM还与CPU相连接,用于进行地址划分;
所述的状态机在空闲状态持续监测触发信息地址,在信息地址中的内容非零时,触发状态机跳转至解码状态,锁存协议信息并解码协议信息,状态机跳转至不同的进程执行进程操作,时序完成后更新状态寄存器并返回空闲状态。
作为本发明的优选实施方式,所述的双端口RAM具有线性地址空间,所述的线性地址空间包括SFR寄存器和堆栈,所述的SFR寄存器用于实现全局触发,所述堆栈用于保存不同外设进程信息。
作为本发明的优选实施方式,所述的双端口RAM的存储空间还分别对应不同外设,用于存储对应进程FSM及外设实体配置、状态的信息。
作为本发明的优选实施方式,所述的SFR寄存器包括触发信息地址,包括协议信息地址和状态信息地址。
作为本发明的优选实施方式,所述的状态机还接受外部触发信号,在无CPU干预的情况下,实现实时动作并实时保存状态快照。
作为本发明的优选实施方式,所述的CPU轮询触发信息地址的内容,在监测到信息地址中的内容为全0时,SPI外设已完成操作。
作为本发明的优选实施方式,所述的系统还包括多个双端口RAM和多个与状态机,所述的多个双端口RAM均与CPU相连接,所述的多个状态机与对应的双端口RAM相连。
本发明的具体实施方式中,本发明所要解决的技术问题是:
利用双端口RAM实现跨时钟域信息共享,一端信息的更新可以通过另外一端的监测产生触发事件,启动对特定信息的访问。
对等化处理CPU与外设的关系,利用双端口RAM两个访问端口的特点,实现CPU与外设均可以作为主设备。
将CPU,外设等实体通信网格化,如图1所示,不同时钟域逻辑作为一个节点,不同节点与节点之间通过双端口RAM进行耦合,实现信息跨时钟域的可靠传递。
本发明提供了一种利用双端口RAM实现跨时钟域信息共享的网络拓扑方案,解决简单总线下CPU与外设,外设与外设通信跨时钟域实现,并且实现方式体现实体的对等性,即双端口两侧的实体均可以作为主设备。其组成结构如图2所示,主要由三部分组成,分别是进行地址划分的双端口RAM,双端口RAM一侧的状态机和双端口RAM另一侧的状态机。
如图1所示为利用双端口RAM(DPRAM)实现跨时钟域通信的网络示意图。根据不同硬件平台和设计策略,分别制定不同时钟域的衔接拓扑。如图2所示为本发明的基本结构框图,上面分颜色区分了不同时钟域,标注了跨时钟域双端口RAM内部地址划分,双端口RAM两侧状态机的简要实现。如图3所示为双端口RAM内部地址空间划分示意图,是状态机触发并解码的具体信息编排。如图4所示为双端口RAM两侧监测状态机工作流程示意图。
图3为双端口RAM的整个线性地址空间主要划分为两大部分,一是全局触发相关的特殊寄存器;二是保存不同外设进程信息的堆栈。全局触发相关的特殊寄存器又划分为触发信息地址,协议信息1地址,协议信息2地址和状态信息地址。剩余的RAM存储空间合理分配,分别对应不同外设,存储对应进程FSM及外设实体配置、状态等信息。
设计的原则是双端口RAM两侧的状态机复位后进入空闲状态,该状态持续监测触发信息地址,地址中的内容一旦非零,即触发状态机跳转,并锁存协议信息。上述情况发生后,状态机解码协议信息,并跳转到不同的进程,进行一次进程操作,操作完成,更新状态寄存器并返回空闲状态。具体流程可参照图4。
状态机除了监测触发信息地址,亦可以接受外部触发信号,在无CPU干预的情况下,实现实时动作,并可以做到实时保存状态快照。
本发明提供了一种基于双端口RAM跨时钟域信息传递的方法,实现了通过对双端口 RAM地址进行划分,持续监测触发地址信息,自动将变动信息从一个时钟域传递至另外一个时钟域的效果。
下面举例说明具体逻辑设计和操作流程。
本例程中,参照图2所示,共有三个时钟域,分别为CPU时钟域A,外设时钟域B及外设时钟域C。
CPU中运行用户软件,主要目的为控制外设,外设具有一定的动作定义,比如SPI控制器,可以访问SPI设备。
首先,时钟域A和时钟域B通过双端口RAM进行衔接,该RAM内部地址进行了划分,分为SFR(包括触发信息地址,协议信息地址,状态信息地址)和进程堆栈,如图3所示。
假设,CPU想要完成将数据0xab写入SPI设备0x01地址的操作,具体步骤包括:a,将0xab数据信息写入spi进程堆栈;b,将0x01地址信息写入spi进程堆栈;c,将命令编码写入触发信息地址。
时钟域B侧的状态机在空闲态持续监测触发信息地址,当时钟域A更新了触发信息地址中的内容,为非0值时,B测状态机跳转至解码状态,解析出操作指令为将数据0xab写入SPI设备的0x01地址,随后,状态开始跳转,跳转至SPI操作进程,相关信息已锁存至 SPI操作进程状态机中,进一步完成SPI操作实现;待时序完成,返回空闲态并将触发信息地址中的内容置零;CPU可以轮询触发信息地址中的内容,监测到全0时,认为SPI外设完成了操作,否则认为SPI操作忙。整个过程由一端发起,信号不需要额外跨时钟域处理即可传递至另一端,另一端的操作依据解码进行,不同的编码对应不同的进程,也绑定了不同的进程堆栈。操作完成后置零触发信息地址中的内容,产生了反馈信号,整个操作具有完整的闭环。
本发明除了支持双端口RAM触发事件外,还支持额外定义的外设实时事件,如图2中实时事件触发信号的表述,这种设计可以避免CPU的干预,将事件发生与外设实时处理结合起来。在某种情况下,比如,ADC过量程事件发生,该事件可直接触发相关的进程,将数据快照保存到双端口RAM中,随后CPU可以查询到该实时信息。这种处理方式适合于实时事件的捕获和存储,有快照记录的能力。
同样的操作流程,可以完成时钟域A和时钟域C,时钟域B和时钟域C的信息共享。
采用了本发明的基于双端口RAM实现跨时钟域通信的系统,对等化处理不同时钟域的逻辑实体,一侧的信息更新可以利用双端口RAM自身的跨时钟域特点实现触发信号的传递,并在随后的状态跳转中完成信息访问。实现了多个时钟域信息传递的规范化,保证逻辑设计时序的稳定可靠,并具有较强的拓展能力。本发明体现硬件逻辑为通信管道的特点,将外设的操控通过定义协议的形式实现,具有较强的灵活性。拓扑结构具有比较规范的实现,状态机主体代码可以实现一定程度的复用。减少多次开发的成本。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。

Claims (7)

1.一种基于双端口RAM实现跨时钟域通信的系统,其特征在于,所述的系统包括双端口RAM以及与双端口RAM相连的状态机,所述的双端口RAM还与CPU相连接,用于进行地址划分;
所述的状态机在空闲状态持续监测触发信息地址,在信息地址中的内容非零时,触发状态机跳转至解码状态,锁存协议信息并解码协议信息,状态机跳转至不同的进程执行进程操作,时序完成后更新状态寄存器并返回空闲状态;
该系统包括三个时钟域,分别为CPU时钟域A,外设时钟域B及外设时钟域C,在CPU中运行用户软件,其通信方式具体为:
首先,时钟域A和时钟域B通过双端口RAM进行衔接,该RAM内部地址进行了划分,分为SFR包括触发信息地址,协议信息地址,状态信息地址,以及进程堆栈,
CPU想要完成将数据0xab写入SPI设备0x01地址的操作,具体步骤包括:a,将0xab数据信息写入spi进程堆栈;b,将0x01地址信息写入spi进程堆栈;c,将命令编码写入触发信息地址;
时钟域B侧的状态机在空闲态持续监测触发信息地址,当时钟域A更新了触发信息地址中的内容,为非0值时,B测状态机跳转至解码状态,解析出操作指令为将数据0xab写入SPI设备的0x01地址,随后,状态开始跳转,跳转至SPI操作进程,相关信息已锁存至SPI操作进程状态机中,进一步完成SPI操作实现;待时序完成,返回空闲态并将触发信息地址中的内容置零;CPU可以轮询触发信息地址中的内容,监测到全0时,认为SPI外设完成了操作,否则认为SPI操作忙;整个过程由一端发起,信号不需要额外跨时钟域处理即可传递至另一端,另一端的操作依据解码进行,不同的编码对应不同的进程,也绑定了不同的进程堆栈;操作完成后置零触发信息地址中的内容,产生了反馈信号,整个操作具有完整的闭环。
2.根据权利要求1所述的基于双端口RAM实现跨时钟域通信的系统,其特征在于,所述的双端口RAM具有线性地址空间,所述的线性地址空间包括SFR寄存器和堆栈,所述的SFR寄存器用于实现全局触发,所述堆栈用于保存不同外设进程信息。
3.根据权利要求2所述的基于双端口RAM实现跨时钟域通信的系统,其特征在于,所述的双端口RAM的存储空间还分别对应不同外设,用于存储对应进程FSM及外设实体配置、状态的信息。
4.根据权利要求2所述的基于双端口RAM实现跨时钟域通信的系统,其特征在于,所述的SFR寄存器包括触发信息地址,包括协议信息地址和状态信息地址。
5.根据权利要求1所述的基于双端口RAM实现跨时钟域通信的系统,其特征在于,所述的状态机还接受外部触发信号,在无CPU干预的情况下,实现实时动作并实时保存状态快照。
6.根据权利要求1所述的基于双端口RAM实现跨时钟域通信的系统,其特征在于,所述的CPU轮询触发信息地址的内容,在监测到信息地址中的内容为全0时,SPI外设已完成操作。
7.根据权利要求1所述的基于双端口RAM实现跨时钟域通信的系统,其特征在于,所述的系统还包括多个双端口RAM和多个与状态机,所述的多个双端口RAM均与CPU相连接,所述的多个状态机与对应的双端口RAM相连。
CN202011463868.7A 2020-12-14 2020-12-14 基于双端口ram实现跨时钟域通信的系统 Active CN112579486B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011463868.7A CN112579486B (zh) 2020-12-14 2020-12-14 基于双端口ram实现跨时钟域通信的系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011463868.7A CN112579486B (zh) 2020-12-14 2020-12-14 基于双端口ram实现跨时钟域通信的系统

Publications (2)

Publication Number Publication Date
CN112579486A CN112579486A (zh) 2021-03-30
CN112579486B true CN112579486B (zh) 2023-02-21

Family

ID=75132273

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011463868.7A Active CN112579486B (zh) 2020-12-14 2020-12-14 基于双端口ram实现跨时钟域通信的系统

Country Status (1)

Country Link
CN (1) CN112579486B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1504884A (zh) * 2002-11-29 2004-06-16 华为技术有限公司 一种对同步动态随机存储器自测试的方法及其装置
CN1983223A (zh) * 2006-05-17 2007-06-20 华为技术有限公司 一种异步桥及数据传输方法
CN101919186A (zh) * 2008-01-15 2010-12-15 爱立信电话股份有限公司 用于可变速率复合比特流的电信复用器
CN106776467A (zh) * 2016-12-15 2017-05-31 中国电子科技集团公司第二十研究所 用于命令接收系统的spi flash控制芯片
CN106933772A (zh) * 2017-02-17 2017-07-07 西安航空制动科技有限公司 基于uart ip核的sci通讯方法
CN111832048A (zh) * 2020-07-09 2020-10-27 郑州信大捷安信息技术股份有限公司 一种基于双端口ram的数据包排序方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105373494A (zh) * 2015-12-01 2016-03-02 中国科学院上海技术物理研究所 一种基于fpga的四口ram

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1504884A (zh) * 2002-11-29 2004-06-16 华为技术有限公司 一种对同步动态随机存储器自测试的方法及其装置
CN1983223A (zh) * 2006-05-17 2007-06-20 华为技术有限公司 一种异步桥及数据传输方法
CN101919186A (zh) * 2008-01-15 2010-12-15 爱立信电话股份有限公司 用于可变速率复合比特流的电信复用器
CN106776467A (zh) * 2016-12-15 2017-05-31 中国电子科技集团公司第二十研究所 用于命令接收系统的spi flash控制芯片
CN106933772A (zh) * 2017-02-17 2017-07-07 西安航空制动科技有限公司 基于uart ip核的sci通讯方法
CN111832048A (zh) * 2020-07-09 2020-10-27 郑州信大捷安信息技术股份有限公司 一种基于双端口ram的数据包排序方法和系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"FPGA跨时钟域信号同步设计方法研究";宋文强;《单片机与嵌入式系统应用》;20190930;第24-27页 *
"基于FPGA的双端口视频缓冲器设计";唐斌;《液晶与显示》;20140831;第575-579页 *
"芯片中跨时钟域的数据传输的解决方法";袁洪琳;《企业技术开发》;20200831;第4-5,16页 *

Also Published As

Publication number Publication date
CN112579486A (zh) 2021-03-30

Similar Documents

Publication Publication Date Title
US9483209B2 (en) Interface system and method
JPH0258649B2 (zh)
CN104714907B (zh) 一种pci总线转换为isa和apb总线设计方法
CN103246628B (zh) Smi接口管理方法及可编程逻辑器件
WO2024183093A1 (zh) 测试系统
WO2024103948A1 (zh) 一种数据传输方法以及装置
US6385659B1 (en) Handling of asynchronous message packet in a multi-node threaded computing environment
US20030167368A1 (en) Transmission control circuit, reception control circuit, communications control circuit, and communications control unit
CN106657115B (zh) 一种变频器控制系统及其协议转换卡
US20090292856A1 (en) Interserver communication mechanism and computer system
CN117111539B (zh) 以太网物理层芯片的控制方法及装置
CN112579486B (zh) 基于双端口ram实现跨时钟域通信的系统
CN112153114A (zh) 一种分时访问共享器件的方法、系统、设备及介质
CN111506461B (zh) 一种基于总线、用于测试的反压模块及其实现方法
RU175049U1 (ru) УСТРОЙСТВО КОММУНИКАЦИОННЫХ ИНТЕРФЕЙСОВ SpaceWire
JP2609078B2 (ja) バスインタフェースユニットを利用する集中管理システム
CN115794047A (zh) 基于plc的跨语言平台通信方法、系统、设备及介质
JP7107277B2 (ja) 中継装置
US7000148B2 (en) Program-controlled unit
SU1732345A1 (ru) Распределенна система управлени
Suvorova An approach for development of RISC-V based transport layer controller
US11841782B2 (en) Semiconductor device and debugging system
CN103927153A (zh) 一种系统配置的方法、设备及系统
CN115473761B (zh) 基于dcs系统的can总线的通信方法、系统、设备及介质
EP4373038A1 (en) Processing system, related integrated circuit, device and method

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
CP01 Change in the name or title of a patent holder

Address after: 201601 Block C, No.7, Lane 205, Gaoji Road, Sijing Town, Songjiang District, Shanghai

Patentee after: Chuangyuan Xinke (Shanghai) Technology Co.,Ltd.

Address before: 201601 Block C, No.7, Lane 205, Gaoji Road, Sijing Town, Songjiang District, Shanghai

Patentee before: TRANSCOM INSTRUMENTS Co.,Ltd.

CP01 Change in the name or title of a patent holder