CN100365639C - 先进先出仿真单元及逻辑验证仿真*** - Google Patents

先进先出仿真单元及逻辑验证仿真*** Download PDF

Info

Publication number
CN100365639C
CN100365639C CNB2004100889356A CN200410088935A CN100365639C CN 100365639 C CN100365639 C CN 100365639C CN B2004100889356 A CNB2004100889356 A CN B2004100889356A CN 200410088935 A CN200410088935 A CN 200410088935A CN 100365639 C CN100365639 C CN 100365639C
Authority
CN
China
Prior art keywords
task
emulation
simulation unit
unit
inquiry
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.)
Expired - Fee Related
Application number
CNB2004100889356A
Other languages
English (en)
Other versions
CN1773513A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB2004100889356A priority Critical patent/CN100365639C/zh
Publication of CN1773513A publication Critical patent/CN1773513A/zh
Application granted granted Critical
Publication of CN100365639C publication Critical patent/CN100365639C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明公开一种计算机逻辑仿真中应用的先进先出仿真单元,该先进先出仿真单元包括:仿真缓存装置,用于仿真缓存先进先出的仿真数据;另外还包括仿真控制装置,用于控制执行预设的先进先出功能任务,以向所述仿真缓存装置写入先进先出的仿真数据,和用于控制执行预设的先进先出功能任务,以从所述仿真缓存装置读出先进先出的仿真数据。另外,本发明还公开了一种相应的逻辑验证仿真***。由于不需根据时钟控制进行先进先出单元数据缓存操作,因此,本发明实现简单,使用方便,可进一步提高仿真效率。

Description

先进先出仿真单元及逻辑验证仿真***
技术领域
本发明涉及计算机仿真技术领域,更具体的说,本发明涉及一种应用于计算机逻辑仿真中的先进先出仿真单元以及逻辑验证仿真***。
背景技术
计算机仿真(CS,Computer Simulation)是一门利用计算机软件模拟真实环境的技术。目前,采用计算机仿真技术实现逻辑验证的逻辑验证仿真***主要包括:仿真测试用例单元、先进先出(FIFO,First In First Out)仿真单元、仿真总线功能模型单元以及被验证逻辑,其中仿真测试用例单元产生验证所需的数据激励,经过FIFO仿真单元缓存,然后发送给仿真总线功能模型单元,再由仿真总线功能模型单元经过接口适配后发送给被验证逻辑;经被验证逻辑处理过的数据发送给仿真总线功能模型单元,再经过FIFO仿真单元缓存后发送给仿真测试用例单元进行校验,最终确认被验证逻辑是否正确。
一般的,在实现所述FIFO仿真单元时,现有技术通常采用同步或异步FIFO。同步或异步FIFO按照读写时钟工作,对外使用读写控制信号和数据线实现与其他模块的接口。参考图1,该图是传统逻辑验证仿真***中的FIFO示意图。所述FIFO主要根据仿真的写时钟信号、读时钟信号等控制信号与外界通信,另外所述FIFO与逻辑验证仿真***中的仿真测试用例单元之间还包括仿真的写使能信号、写数据信号、空信号以及满信号,与仿真总线功能模型单元之间还包括仿真的读使能信号、读数据信号、空信号以及满信号等。
上述现有技术可实现仿真实际的FIFO电路工作,进一步可实现逻辑验证仿真,但还存在如下缺点:
首先,上述现有技术实现的FIFO仿真单元比较复杂,需要仿真FIFO仿真单元与逻辑验证仿真***中其他模块间接口的大量电路连线及控制信号,特别是对于需要多个FIFO的设计则更为复杂,大大增加了仿真工作量。
例如,如图2所示,以一个同步FIFO为例,需要仿真以下控制信号:rst:复位信号;full:满信号;alfull:几乎满信号;empty:空信号;alempty:几乎空信号;rd_en:读使能信号;wr_en:写使能信号;clk:工作时钟;data_in:数据输入信号;data_out:数据输出信号;count:存储空间计数;err:错误上报信号等,即使较简单的实现通常也需要仿真FIFO仿真单元与与外部模块间接口的多个控制信号来实现FIFO自身的状态上报和读写控制。在实现多个FIFO时,仿真处理将更为复杂。
其次,现有技术实现的FIFO仿真单元使用不灵活,不能适应更高的仿真要求。由于现有技术中FIFO仿真单元按照读写时钟工作,每隔一个读/写时钟周期才能完成一次读/写操作,无法根据逻辑验证的测试需要灵活的调整激励产生的速度,使用上并不灵活。
再次,由于现有技术需仿真FIFO仿真单元与其他模块间的物理连接,因此,模块的易用性和可重用性均大大降低。例如,对于一个FIFO就需要仿真设计该FIFO与外部模块间的物理连接,对于多个FIFO,则需要仿真设计多个FIFO与外部模块的物理连接,因此,模块的易用性和可重用性大大降低。
再次,现有技术通过所述FIFO仿真单元实现的逻辑验证仿真***还存在效率较低的缺点。由于FIFO仿真单元按照读写时钟工作,每次读/写一个地址空间的操作都要占用一个读/写时钟周期。这样,必然会占用一定的仿真时间,降低仿真效率。
发明内容
本发明解决的技术问题是提供一种实现简单、使用灵活的先进先出仿真单元以及逻辑验证仿真***,以进一步提高仿真效率。
为解决上述问题,本发明的先进先出仿真单元,包括:
仿真缓存装置,用于仿真缓存先进先出的仿真数据;
另外,还包括:
仿真控制装置,用于控制执行预设的先进先出功能任务,以向所述仿真缓存装置写入先进先出的仿真数据,和用于控制执行预设的先进先出功能任务,以从所述仿真缓存装置读出先进先出的仿真数据。
其中,所述预设的先进先出功能任务包括:
读任务,如果所述先进先出仿真单元未处于复位状态,首先判断所述先进先出仿真单元是否为空,如果不为空,从所述先进先出仿真单元当前地址中读出数据,然后读地址加一;
写任务,如果所述先进先出仿真单元未处于复位状态,先判断所述先进先出仿真单元是否为满,如果不为满,向所述先进先出仿真单元当前地址中写入数据,然后写地址加一;
查询是否空任务,查询并输出所述先进先出仿真单元是否为空的状态值;
查询是否满任务,查询并输出所述先进先出仿真单元是否为满的状态值;
查询是否几乎空任务,查询并输出所述先进先出仿真单元是否为几乎空的状态值;
查询是否几乎满任务,查询并输出所述先进先出仿真单元是否为几乎满的状态值;
所述仿真控制装置包括:
读任务模块,用于控制执行所述读任务;
写任务模块,用于控制执行所述写任务;
查询是否空任务模块,用于控制执行所述查询是否空任务;
查询是否满任务模块,用于控制执行所述查询是否满任务;
查询是否几乎空任务模块,用于控制执行所述查询是否几乎空任务;
查询是否几乎满任务模块,用于控制执行所述查询是否几乎满任务。
其中,所述仿真缓存装置包括:
仿真数据缓存装置,用于仿真缓存先进先出的仿真数据;
仿真状态寄存器,用于仿真存储所述先进先出仿真单元的空满状态。
相应地,本发明的逻辑验证仿真***,包括:
仿真数据产生验证单元,用于产生逻辑验证仿真使用的测试用例,并对待验证逻辑处理过的测试用例进行验证,以确认被验证逻辑是否正确;
仿真总线功能模型单元,用于将仿真数据产生验证单元产生的测试用例数据以被验证逻辑所约定的特定时序发送给待验证逻辑;或按与被验证逻辑约定的特定时序接收被验证逻辑处理后的数据;
另外,还包括:
发送先进先出仿真单元,用于根据预设的先进先出功能任务将仿真数据产生验证单元产生的测试用例仿真缓存发送给仿真总线功能模型单元;
接收先进先出仿真单元,用于根据预设的先进先出功能任务将仿真总线功能模型单元接收的、经被验证逻辑处理后的仿真数据缓存返回给仿真数据产生验证单元进行验证。
其中,所述发送先进先出仿真单元包括:
仿真发送缓存装置,用于仿真缓存所述仿真数据产生验证单元发来的先进先出的仿真数据;
仿真发送控制装置,用于控制执行预设的先进先出功能任务,以向所述仿真缓存装置写入所述仿真数据产生验证单元发来的先进先出的仿真数据,和用于控制执行预设的先进先出功能任务,以从所述仿真缓存装置读出所述仿真数据产生验证单元发来的先进先出的仿真数据。
其中,所述接收先进先出仿真单元包括:
仿真接收缓存装置,用于仿真缓存所述总线功能模型单元发来的先进先出的仿真数据;
仿真接收控制装置,用于控制执行预设的先进先出功能任务,以向所述仿真接收缓存装置写入所述仿真总线功能模型单元发来的先进先出的仿真数据,和用于控制执行预设的先进先出功能任务,以从所述仿真接收缓存装置读出所述仿真总线功能模型单元发来的先进先出的仿真数据。
其中,所述预设的先进先出功能任务包括:
读任务,如果所述发送或接收先进先出仿真单元未处于复位状态,首先判断所述发送或接收先进先出仿真单元是否为空,如果不为空,从所述发送或接收先进先出仿真单元当前地址中读出数据,然后读地址加一;
写任务,如果所述发送或接收先进先出仿真单元未处于复位状态,先判断所述发送或接收先进先出仿真单元是否为满,如果不为满,向所述发送或接收先进先出仿真单元当前地址中写入数据,然后写地址加一;
查询是否空任务,查询并输出所述发送或接收先进先出仿真单元是否为空的状态值;
查询是否满任务,查询并输出所述发送或接收先进先出仿真单元是否为满的状态值;
查询是否几乎空任务,查询并输出所述发送或接收先进先出仿真单元是否为几乎空的状态值;
查询是否几乎满任务,查询并输出所述发送或接收先进先出仿真单元是否为几乎满的状态值;
所述仿真发送控制装置和所述仿真接收控制装置均包括:
读任务模块,用于控制执行所述读任务;
写任务模块,用于控制执行所述写任务;
查询是否空任务模块,用于控制执行所述查询是否空任务;
查询是否满任务模块,用于控制执行所述查询是否满任务;
查询是否几乎空任务模块,用于控制执行所述查询是否几乎空任务;
查询是否几乎满任务模块,用于控制执行所述查询是否几乎满任务。
其中,所述仿真发送缓存装置包括:
仿真发送数据缓存单元,用于仿真缓存所述仿真数据产生验证单元发来的、待发送的先进先出的测试用例数据;
仿真发送状态寄存器,用于仿真存储所述发送先进先出仿真单元的空满状态。
其中,所述仿真接收缓存装置包括:
仿真接收数据缓存单元,用于仿真缓存所述仿真总线功能模型单元发来的、经待验证逻辑处理过的先进先出的仿真数据;
仿真接收状态寄存器,用于仿真存储所述接收先进先出仿真单元的空满状态。
与现有技术相比,本发明具有以下有益效果:
首先,本发明相比现有技术实现更简单,FIFO仿真单元与周边模块无需仿真物理连线及控制信号,大大缩减了仿真工作量。
其次,本发明实现的FIFO仿真单元相比现有技术使用更灵活,可以根据需要便捷的设置FIFO仿真单元的读写速度,且由于无需仿真FIFO仿真单元与外部模块的对外物理连线及控制信号,大大提高了FIFO仿真单元的易用性和可重用性。
再次,本发明实现的逻辑验证仿真***中FIFO仿真单元写入或读出数据无需时钟控制,对FIFO仿真单元的读写不占用仿真时间,因此,可大大提高逻辑验证仿真***的仿真效率。
附图说明
图1是现有技术逻辑验证仿真***中的FIFO示意图;
图2是现有技术一种FIFO仿真单元涉及的控制信号示意图;
图3是本发明FIFO仿真单元示意图;
图4是图3所示仿真控制装置的一种组成示意图;
图5是本发明逻辑验证仿真***的组成示意图;
图6是本发明逻辑验证仿真***中向FIFO仿真单元写入数据的写过程流程图;
图7是本发明逻辑验证仿真***中从FIFO仿真单元读出数据的读过程流程图。
具体实施方式
在逻辑验证仿真中通常需要采用先进先出仿真单元作为速率不匹配的接口电路处理的仿真数据的中间缓存。传统的先进先出仿真单元按照时钟周期进行数据读写操作,在实际操作中极不方便,本发明的核心即在于通过预设先进先出仿真单元执行的先进先出功能任务,进而在需要时执行相应的先进先出功能任务即可实现先进先出单元的相应功能,可避免现有技术通过时钟周期控制读写操作灵活性较差的缺点,从而提高逻辑仿真验证的效率。
参考图3,该图是本发明先进先出仿真单元的组成框图。本发明的先进先出仿真单元主要包括:仿真缓存装置11和仿真控制装置12;其中
所述仿真缓存装置11,主要用于仿真缓存先进先出的仿真数据以及所述先进先出单元空满状态,其实现的功能与一个静态存储器功能相当,与一个FIFO单元类似,其存储的主要是需要中间缓存的数据(本发明中即逻辑验证的仿真数据)以及FIFO仿真的存储状态数据(也即FIFO的状态数据,如空满状态等),还请参考图3,具体实现时,本发明所述仿真缓存装置11可进一步包括:
仿真数据缓存装置111,用于仿真缓存先进先出的仿真数据,也即缓存逻辑验证所需的仿真数据;
仿真状态寄存器112,用于仿真存储所述先进先出仿真单元的空满状态。
另外,所述仿真控制装置12,主要用于控制执行预设的先进先出功能任务,以从所述仿真缓存装置写入或读出先进先出的仿真数据。具体实施时,根据先进先出单元的功能,可预设如下的先进先出功能任务:
读任务,如果所述先进先出仿真单元未处于复位状态,首先判断所述先进先出仿真单元是否为空,如果不为空,从所述先进先出仿真单元当前地址中读出数据,然后读地址加一;
写任务,如果所述先进先出仿真单元未处于复位状态,先判断所述先进先出仿真单元是否为满,如果不为满,向所述先进先出仿真单元当前地址中写入数据,然后写地址加一;
查询是否空任务,查询并输出所述先进先出仿真单元是否为空的状态值;
查询是否满任务,查询并输出所述先进先出仿真单元是否为满的状态值;
查询是否几乎空任务,查询并输出所述先进先出仿真单元是否为几乎空的状态值;
查询是否几乎满任务,查询并输出所述先进先出仿真单元是否为几乎满的状态。
上述仅列举了先进先出仿真单元的基本功能任务,实际实现时,还可预设其他的先进先出功能任务,由于无法穷举,且不是本发明的关键点,这里不再细述。
参考图4所示,为控制执行上述先进先出功能任务,本发明所述仿真控制装置12相应包括如下组成模块:读任务模块121、写任务模块122、查询是否空任务123、模块查询是否满任务模块124、查询是否几乎空任务模块125、查询是否满任务模块126;其中
所述读任务模块121,用于控制执行所述读任务;
所述写任务模块122,用于控制执行所述写任务;
所述查询是否空任务模块123,用于控制执行所述查询是否空任务;
所述查询是否满任务模块124,用于控制执行所述查询是否满任务;
所述查询是否几乎空任务模块125,用于控制执行所述查询是否几乎空任务;
所述查询是否几乎满任务模块126,用于控制执行所述查询是否几乎满任务。
下面以优选的具体实施例进一步进行说明。本优选实施例中使用Verilog语言设计所述FIFO仿真单元,不使用仿真的物理连线和控制信号,而是通过调用读/写FIFO任务和查询FIFO状态任务等FIFO功能任务作为外部模块与FIFO仿真单元之间的接口,不需要时钟控制实现FIFO功能,可提高仿真效率。
具体的,Verilog语言标准中所规定的关键字TASK可用于预设所述的FIFO功能任务,在需要读写数据或查询FIFO状态时,通过调用相应的TASK即可实现FIFO的相应功能,对于基本的FIFO功能任务简单说明如下:
1、读FIFO任务:如果FIFO仿真单元不处于复位状态,先判断FIFO仿真单元是否空,如果不空,从FIFO仿真单元当前地址中读出数据(数据由出口参数输出),然后读地址加一。
Task read_fifo;//任务声明
Output[7:0]data_out;//出口参数
2、写FIFO任务:如果FIFO仿真单元不处于复位状态,先判断FIFO仿真单元是否满,如果不满,向FIFO仿真单元当前地址中写入数据(数据由入口参数输入),然后写地址加一。
Task write_fifo;//任务声明
input[7:0]data_in;//入口参数
3、查询FIFO是否空任务:将FIFO仿真单元是否空的状态寄存器的值由出口参数输出。
Task empty_status;//任务声明
Output empty_flag;//出口参数
4、FIFO是否满任务:将FIFO仿真单元是否满的状态寄存器的值由出口参数输出。
Task full_status;//任务声明
Output full_flag;//出口参数
5、FIFO是否几乎空任务:将FIFO仿真单元是否几乎空的状态寄存器的值由出口参数输出。
Task alempty_status;//任务声明
Output alempty_flag;//出口参数
6、查询FIFO是否几乎满任务:将FIFO仿真单元是否几乎满的状态寄存器的值由出口参数输出。
Task alfull_status;//任务声明
Output alfull_flag;//出口参数。
通过调用上述预设的先进先出功能任务可实现FIFO仿真单元的各种功能,例如通过调用查询FIFO空满状态的相应查询任务完成传统FIFO空满指示信号的功能。通过调用读写任务完成向FIFO读出或写入数据的功能。
需要说明的是,本优选实施例中FIFO仿真单元不限于预设上述基本的FIFO功能任务,还可根据用户需要自行定义其他的任务。另外本实施例以Verilog语言设计的先进先出仿真单元进行了描述,需要说明的是,本发明FIFO仿真单元也可采用其他语言如VHDL等语言实现,由于具体的语言实现不是本发明的关键点,这里不再进行详细描述。
另外,本发明中还可在FIFO功能任务调用之间根据需要***一定的时延,控制FIFO读写或查询速度,以获得最高的效率。
参考图5,本发明上述实现的先进先出仿真单元,可进一步应用在逻辑验证仿真***中,以提高逻辑验证仿真***的灵活性和仿真效率,具体的,本发明实现的逻辑验证仿真***包括:仿真数据产生验证单元21、仿真总线功能模型单元22、发送先进先出仿真单元23、接收先进先出仿真单元24。其中
所述仿真数据产生验证单元21,用于产生逻辑验证仿真使用的测试用例,并对待验证逻辑处理过的测试用例进行验证,以确认待验证逻辑是否正确,具体实现时,可根据不同的逻辑验证需求设计不同的测试用例;
所述仿真总线功能模型单元22,用于将所述仿真数据产生验证单元21产生的测试用例数据以待验证逻辑所约定的特定时序发送给待验证逻辑;或按与待验证逻辑约定的特定时序接收待验证逻辑处理后的数据;
所述发送先进先出仿真单元23,作为仿真数据产生验证单元21和仿真总线功能模型单元22之间传送的数据的中间缓存,根据预设的先进先出功能任务将仿真数据产生验证单元21产生的测试用例仿真缓存发送给仿真总线功能模型单元22;
所述接收先进先出仿真单元24,同样作为仿真数据产生验证单元21和仿真总线功能模型单元22之间传送的数据的中间缓存,用于根据预设的先进先出功能任务将仿真总线功能模型单元22接收的、经被验证逻辑处理后的仿真数据缓存返回给仿真数据产生验证单元21进行验证。
根据上述本发明先进先出仿真单元原理,本发明所述逻辑验证仿真***中所述发送先进先出仿真单元23可进一步包括:仿真发送缓存装置231和仿真发送控制装置232,其中
所述仿真发送缓存装置231,用于仿真缓存所述仿真数据产生验证单元发来的先进先出的仿真数据,另外还可缓存所述发送先进先出仿真单元空满状态等;
所述仿真发送控制装置232,用于控制执行预设的先进先出功能任务,以从所述仿真缓存装置写入或读出所述仿真数据产生验证单元发来的先进先出的仿真数据。
另外,所述接收先进先出仿真单元24可进一步包括:仿真接收缓存装置241和仿真接收控制装置242,其中
所述仿真接收缓存装置241,用于仿真缓存所述总线功能模型单元22发来的先进先出的仿真数据,同前,所述仿真接收缓存装置还可缓存所述接收先进先出仿真单元的空满状态等;
所述仿真接收控制装置242,用于控制执行预设的先进先出功能任务,以向所述仿真接收缓存装置写入或读出所述仿真总线功能模型单元22发来的先进先出的仿真数据。
同样的,根据本发明上述先进先出仿真单元设计原理,本发明逻辑验证仿真单元中所述预设的先进先出功能任务主要包括:
读任务,如果所述发送或接收先进先出仿真单元未处于复位状态,首先判断所述发送或接收先进先出仿真单元是否为空,如果不为空,从所述发送或接收先进先出仿真单元当前地址中读出数据,然后读地址加一;
写任务,如果所述发送或接收先进先出仿真单元未处于复位状态,先判断所述发送或接收先进先出仿真单元是否为满,如果不为满,向所述发送或接收先进先出仿真单元当前地址中写入数据,然后写地址加一;
查询是否空任务,查询并输出所述发送或接收先进先出仿真单元是否为空的状态值;
查询是否满任务,查询并输出所述发送或接收先进先出仿真单元是否为满的状态值;
查询是否几乎空任务,查询并输出所述发送或接收先进先出仿真单元是否为几乎空的状态值;
查询是否几乎满任务,查询并输出所述发送或接收先进先出仿真单元是否为几乎满的状态值;
而所述仿真发送控制装置231和所述仿真接收控制装置241进一步包括如下模块:
读任务模块,用于控制执行所述读任务;
写任务模块,用于控制执行所述写任务;
查询是否空任务模块,用于控制执行所述查询是否空任务;
查询是否满任务模块,用于控制执行所述查询是否满任务;
查询是否几乎空任务模块,用于控制执行所述查询是否几乎空任务;
查询是否几乎满任务模块,用于控制执行所述查询是否几乎满任务。
不难理解,还可根据需求预设其他的先进先出功能任务,相应还需在所述仿真发送控制装置232和所述仿真接收控制装置242设置相应的模块。
下面具体说明所述仿真发送缓存装置231,本发明中对于所述仿真发送缓存装置231可进一步包括:
仿真发送数据缓存单元,所述仿真发送数据缓存单元主要用于仿真缓存所述仿真数据产生验证单元21发来的、待发送的先进先出的测试用例数据;
仿真发送状态寄存器,所述仿真发送状态寄存器主要用于仿真存储所述发送先进先出仿真单元的空满状态。
同样的,本发明所述仿真接收缓存装置241可进一步包括:
仿真接收数据缓存单元,所述仿真接收数据缓存单元主要用于仿真缓存所述仿真总线功能模型单元22发来的、经待验证逻辑处理过的先进先出的仿真数据;
仿真接收状态寄存器,所述仿真接收状态寄存器主要用于仿真存储所述接收先进先出仿真单元的空满状态。
上述对于发送先进先出仿真单元以及接收先进先出仿真单元的具体组成可参考前述先进先出仿真单元的叙述,这里不再赘述。
下面简单说明上述逻辑验证仿真***主要工作原理。
参考图6,该图是上述逻辑验证仿真***中向FIFO仿真单元写入数据的写过程。具体的,当仿真数据产生验证单元21产生激励数据后,先调用查询FIFO是否满任务查询FIFO仿真单元是否满,如果满,则等待若干时间后再次查询;如果不满,则调用写任务将数据写入FIFO仿真单元。
参考图7,该图是上述逻辑验证仿真***中从FIFO仿真单元读出数据的读过程。具体的,当仿真总线功能模型单元需要发送数据时,先调用查询FIFO是否空任务查询FIFO是否空,如果空,则等待若干时间后再次查询;如果不空,则调用读任务将数据读出FIFO仿真单元,发送到与仿真总线功能模型单元连接的总线上。
本发明无需时钟,以任务调用作为与其它模块的接口,实现简单,FIFO仿真单元与周边模块无需物理连线和控制信号,大大缩减了仿真工作量;另一方面,本发明可以根据需要便捷的设置FIFO仿真单元的读写速度,使用灵活,没有对外物理连线,提高了易用性和可重用性;而且由于无需时钟控制读写操作,所以本发明在逻辑验证仿真***中对FIFO仿真单元的读写不占用仿真时间,大大提高了效率。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (9)

1.一种先进先出仿真单元,用于计算机逻辑仿真,包括:
仿真缓存装置,用于仿真缓存先进先出的仿真数据;
其特征在于,还包括:
仿真控制装置,用于控制执行预设的先进先出功能任务,以向所述仿真缓存装置写入先进先出的仿真数据,和用于控制执行预设的先进先出功能任务,以从所述仿真缓存装置读出先进先出的仿真数据。
2.根据权利要求1所述的先进先出仿真单元,其特征在于,所述预设的先进先出功能任务包括:
读任务,如果所述先进先出仿真单元未处于复位状态,首先判断所述先进先出仿真单元是否为空,如果不为空,从所述先进先出仿真单元当前地址中读出数据,然后读地址加一;
写任务,如果所述先进先出仿真单元未处于复位状态,先判断所述先进先出仿真单元是否为满,如果不为满,向所述先进先出仿真单元当前地址中写入数据,然后写地址加一;
查询是否空任务,查询并输出所述先进先出仿真单元是否为空的状态值;
查询是否满任务,查询并输出所述先进先出仿真单元是否为满的状态值;
查询是否几乎空任务,查询并输出所述先进先出仿真单元是否为几乎空的状态值;
查询是否几乎满任务,查询并输出所述先进先出仿真单元是否为几乎满的状态值;
所述仿真控制装置包括:
读任务模块,用于控制执行所述读任务;
写任务模块,用于控制执行所述写任务;
查询是否空任务模块,用于控制执行所述查询是否空任务;
查询是否满任务模块,用于控制执行所述查询是否满任务;
查询是否几乎空任务模块,用于控制执行所述查询是否几乎空任务;
查询是否几乎满任务模块,用于控制执行所述查询是否几乎满任务。
3.根据权利要求1或2所述的先进先出仿真单元,其特征在于,所述仿真缓存装置包括:
仿真数据缓存装置,用于仿真缓存先进先出的仿真数据;
仿真状态寄存器,用于仿真存储所述先进先出仿真单元的空满状态。
4.一种逻辑验证仿真***,包括:
仿真数据产生验证单元,用于产生逻辑验证仿真使用的测试用例,并对待验证逻辑处理过的测试用例进行验证,以确认被验证逻辑是否正确;
仿真总线功能模型单元,用于将仿真数据产生验证单元产生的测试用例数据以被验证逻辑所约定的特定时序发送给待验证逻辑;或按与被验证逻辑约定的特定时序接收被验证逻辑处理后的数据;
 其特征在于,还包括:
发送先进先出仿真单元,用于根据预设的先进先出功能任务将仿真数据产生验证单元产生的测试用例仿真缓存发送给仿真总线功能模型单元;
接收先进先出仿真单元,用于根据预设的先进先出功能任务将仿真总线功能模型单元接收的、经被验证逻辑处理后的仿真数据缓存返回给仿真数据产生验证单元进行验证。
5.根据权利要求4所述的逻辑验证仿真***,其特征在于,所述发送先进先出仿真单元包括:
仿真发送缓存装置,用于仿真缓存所述仿真数据产生验证单元发来的先进先出的仿真数据;
仿真发送控制装置,用于控制执行预设的先进先出功能任务,以向所述仿真缓存装置写入所述仿真数据产生验证单元发来的先进先出的仿真数据,和用于控制执行预设的先进先出功能任务,以从所述仿真缓存装置读出所述仿真数据产生验证单元发来的先进先出的仿真数据。
6.根据权利要求4所述的逻辑验证仿真***,其特征在于,所述接收先进先出仿真单元包括:
仿真接收缓存装置,用于仿真缓存所述总线功能模型单元发来的先进先出的仿真数据;
仿真接收控制装置,用于控制执行预设的先进先出功能任务,以向所述仿真接收缓存装置写入所述仿真总线功能模型单元发来的先进先出的仿真数据,和用于控制执行预设的先进先出功能任务,以从所述仿真接收缓存装置读出所述仿真总线功能模型单元发来的先进先出的仿真数据。
7.根据权利要求5或6所述的逻辑验证仿真***,其特征在于,所述预设的先进先出功能任务包括:
读任务,如果所述发送或接收先进先出仿真单元未处于复位状态,首先判断所述发送或接收先进先出仿真单元是否为空,如果不为空,从所述发送或接收先进先出仿真单元当前地址中读出数据,然后读地址加一;
写任务,如果所述发送或接收先进先出仿真单元未处于复位状态,先判断所述发送或接收先进先出仿真单元是否为满,如果不为满,向所述发送或接收先进先出仿真单元当前地址中写入数据,然后写地址加一;
查询是否空任务,查询并输出所述发送或接收先进先出仿真单元是否为空的状态值;
查询是否满任务,查询并输出所述发送或接收先进先出仿真单元是否为满的状态值;
查询是否几乎空任务,查询并输出所述发送或接收先进先出仿真单元是否为几乎空的状态值;
查询是否几乎满任务,查询并输出所述发送或接收先进先出仿真单元是否为几乎满的状态值;
所述仿真发送控制装置和所述仿真接收控制装置均包括:
读任务模块,用于控制执行所述读任务;
写任务模块,用于控制执行所述写任务;
查询是否空任务模块,用于控制执行所述查询是否空任务;
查询是否满任务模块,用于控制执行所述查询是否满任务;
查询是否几乎空任务模块,用于控制执行所述查询是否几乎空任务;
查询是否几乎满任务模块,用于控制执行所述查询是否几乎满任务。
8.根据权利要求7所述的逻辑验证仿真***,其特征在于,所述仿真发送缓存装置包括:
仿真发送数据缓存单元,用于仿真缓存所述仿真数据产生验证单元发来的、待发送的先进先出的测试用例数据;
仿真发送状态寄存器,用于仿真存储所述发送先进先出仿真单元的空满状态。
9.根据权利要求7所述的逻辑验证仿真***,其特征在于,所述仿真接收缓存装置包括:
仿真接收数据缓存单元,用于仿真缓存所述仿真总线功能模型单元发来的、经待验证逻辑处理过的先进先出的仿真数据;
仿真接收状态寄存器,用于仿真存储所述接收先进先出仿真单元的空满状态。
CNB2004100889356A 2004-11-09 2004-11-09 先进先出仿真单元及逻辑验证仿真*** Expired - Fee Related CN100365639C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2004100889356A CN100365639C (zh) 2004-11-09 2004-11-09 先进先出仿真单元及逻辑验证仿真***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2004100889356A CN100365639C (zh) 2004-11-09 2004-11-09 先进先出仿真单元及逻辑验证仿真***

Publications (2)

Publication Number Publication Date
CN1773513A CN1773513A (zh) 2006-05-17
CN100365639C true CN100365639C (zh) 2008-01-30

Family

ID=36760476

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100889356A Expired - Fee Related CN100365639C (zh) 2004-11-09 2004-11-09 先进先出仿真单元及逻辑验证仿真***

Country Status (1)

Country Link
CN (1) CN100365639C (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101303709B (zh) * 2008-06-30 2010-06-02 北京中星微电子有限公司 可编程逻辑器件的仿真控制方法及***
CN101887758B (zh) * 2009-05-12 2013-01-16 北京兆易创新科技有限公司 非挥发性存储器的仿真验证方法
CN102096734A (zh) * 2011-01-26 2011-06-15 北京中星微电子有限公司 一种验证总线乱序传输的方法和装置
CN111209660A (zh) * 2019-12-31 2020-05-29 深圳市芯天下技术有限公司 一种Nor Flash仿真与验证***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5799169A (en) * 1995-10-02 1998-08-25 Chromatic Research, Inc. Emulated registers
US5953020A (en) * 1997-06-30 1999-09-14 Ati Technologies, Inc. Display FIFO memory management system
CN1477514A (zh) * 2002-08-22 2004-02-25 联发科技股份有限公司 用于内部电路仿真器***的装置及其内存存取方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5799169A (en) * 1995-10-02 1998-08-25 Chromatic Research, Inc. Emulated registers
US5953020A (en) * 1997-06-30 1999-09-14 Ati Technologies, Inc. Display FIFO memory management system
CN1477514A (zh) * 2002-08-22 2004-02-25 联发科技股份有限公司 用于内部电路仿真器***的装置及其内存存取方法

Also Published As

Publication number Publication date
CN1773513A (zh) 2006-05-17

Similar Documents

Publication Publication Date Title
CN105117360B (zh) 基于fpga的接口信号重映射方法
US5349683A (en) Bidirectional FIFO with parity generator/checker
CN111931442B (zh) Fpga内嵌flash控制器及电子装置
CN1504900B (zh) 自内存读取数据的控制电路及其方法
CN113270137B (zh) 一种基于fpga嵌入式软核的ddr2测试方法
CN100524269C (zh) 一种突发机制下实现数据读写控制的方法和装置
US20090125663A1 (en) Interface arrangement, especially for a system on a chip, and use thereof
CN101436171A (zh) 模块化通信控制***
CN100365639C (zh) 先进先出仿真单元及逻辑验证仿真***
CN100557584C (zh) 用于对网络和存储器进行耦合的存储器控制器和方法
CN112039745B (zh) Can总线通讯控制***及通信***
CN112269754A (zh) 基于fpga的lpc总线emc扩展装置
Yang et al. A configurable SPI interface based on APB bus
CN100392619C (zh) 控制闪存存取时间的方法、闪存的存取***及闪存控制器
CN108897696B (zh) 一种基于DDRx存储器的大容量FIFO控制器
CN112100098B (zh) Ddr控制***及ddr存储***
CN115237349A (zh) 数据读写控制方法、控制装置、计算机存储介质和电子设备
CN216352286U (zh) 一种i2c总线的检测装置
CN100365606C (zh) 安全数字存储卡数据的存储器直接存取方法及其接口电路
CN112835834B (zh) 数据传输***
CN100394359C (zh) 一种用于智能卡仿真调试***的接口
CN115481078A (zh) 主从式通讯***及方法
CN111209234A (zh) 一种基于Avalon-MM总线接口的多串口IP核
Huang Design and Implementation of IIC Interface IP Core
CN111198829B (zh) 一种FIFO master接口、具有该接口的FPGA及应用

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080130

Termination date: 20121109