CN112579486B - 基于双端口ram实现跨时钟域通信的系统 - Google Patents
基于双端口ram实现跨时钟域通信的系统 Download PDFInfo
- 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
Links
Images
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/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program 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实现跨时钟域通信的系统。
背景技术
传统上,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相连。
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105373494A (zh) * | 2015-12-01 | 2016-03-02 | 中国科学院上海技术物理研究所 | 一种基于fpga的四口ram |
-
2020
- 2020-12-14 CN CN202011463868.7A patent/CN112579486B/zh active Active
Patent Citations (6)
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)
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 |