CN102930090A - 高级语言实现硬件非阻塞赋值的建模方法 - Google Patents
高级语言实现硬件非阻塞赋值的建模方法 Download PDFInfo
- Publication number
- CN102930090A CN102930090A CN2012104048284A CN201210404828A CN102930090A CN 102930090 A CN102930090 A CN 102930090A CN 2012104048284 A CN2012104048284 A CN 2012104048284A CN 201210404828 A CN201210404828 A CN 201210404828A CN 102930090 A CN102930090 A CN 102930090A
- Authority
- CN
- China
- Prior art keywords
- variable
- assignment
- hardware
- modeling method
- higher level
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Debugging And Monitoring (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种高级语言实现硬件非阻塞赋值的建模方法,所述方法包括:对输入信号声明N个对应的临时基本数据类型变量,其中,第N个变量被赋值为第N-1个变量的值,第N-1个变量被赋值为第N-2个变量的值,依此类推,直至第1个变量被赋值为输入信号的值;之后在每个时钟的上升沿,均执行一次赋值。采用本发明,对于模拟硬件非阻塞赋值建立SystemC寄存器传输级模型来说,采用高级语言基本数据类型、SystemC基本数据类型或者用户自定义数据类型变量,相比SystemC中支持“求值-更新”过程的基本通道类更节约内存占用,执行效率更高。
Description
技术领域
本发明涉及电子系统设计建模领域,更为具体地,涉及在对时钟周期精准的SystemC寄存器传输级建模中的一种高级语言实现硬件非阻塞赋值的建模方法。
背景技术
随着集成电路制造技术按照摩尔定律继续发展,目前电子系统也变得越来越复杂,人们已经可以把复杂的电子系统集成到一个芯片上,这就是所谓的片上系统(System on Chip,SoC)。
对于复杂的片上系统SoC而言,在进行寄存器传输级(Register Transfer Level,RTL)设计前需要进行深入的系统级仿真,以确认设计的体系架构是否恰当、总线是否能够满足吞吐量、存储器是否被浪费以及论证实时性要求,其中,所进行的仿真就是建立芯片的仿真模型或者参考模型。
SystemC作为一种软/硬件协同设计语言,正是建模芯片模型的最佳语言。SystemC是在C++的基础上扩展了硬件类和仿真核形成的,由于结合了面向对象编程和硬件建模机制原理两方面的优点,这可以使SystemC在抽象层次的不同级进行系统设计,使得系统的设计者能够用C++的词法模拟并发的进程,特别是在SoC系统中。
Verilog是进行硬件电路设计的一种硬件描述语言(Hardware Description Language,HDL)。通常,硬件设计中的信号同步、节拍延迟、状态转换等物理特性,均体现于Verilog语言中的非阻塞赋值“<=”中,SystemC语言也同样具有这些基本物理特性。Verilog语言中描述时序逻辑的always块中,通过对寄存器变量的非阻塞赋值“<=”,可以在同一个时间片(赋值操作时刻)内做到寄存器变量的两种状态的转换。对应一个输入信号定义多个寄存器变量,通过多个寄存器变量间的非阻塞赋值可以做到节拍延迟从而保持不同信号的同步。
非阻塞赋值在时间片开始时计算非阻塞赋值符右边的表达式值,在时间片(赋值操作)结束时刻才更新至左边。在计算非阻塞赋值右表达式和更新至左侧期间,其他的Verilog语句,包括其他的Verilog非阻塞赋值语句都能同时计算右表达式和更新左侧,非阻塞赋值的操作过程可以看作为以下两个步骤:
a) 在赋值开始时刻,计算非阻塞赋值右侧表达式;
b) 在赋值结束时刻,更新非阻塞赋值左侧表达式。
非阻塞赋值操作只能用于对寄存器类型变量赋值,因此只能用于initial和always等过程块中,不允许用于连续赋值。
为了支持寄存器传输级的并行描述,SystemC还采用了与传统硬件描述语言基本相同的调度模型—基于Δ(delta)延迟。一个Δ周期包括求值和更新两个阶段,在一个时间点上,这样的Δ周期会持续出现,直到再求值前后的结果不再发生变化为止。一个求值和更新循环构成一个Δ周期,每一个Δ周期都代表微观上时间步的前进,而在宏观上时间却并没有前进。通过Δ延迟来模拟实际硬件的行为,实现了赋值和更新的分离,保证了仿真结果与硬件一致。
SystemC中的端口(port)类与信号(signal)类提供的读写成员函数正是基于Δ(delta)延迟实现的方法。受时钟沿触发的时序逻辑电路中它们提供的写方法,在时间片结束时才对其值进行更新,所以本节拍读取这个信号或者端口得到的值还是时间片结束之前未更新过来的值,要得到更新的值只有下一节拍才能读取得到。端口与信号的这个属性正是与普通数据类型的重要区别之一。利用信号(signal)的这个属性可以模拟数字电路设计中的寄存器非阻塞赋值。
Verilog语言中非阻塞赋值的目的是要满足硬件设计中的物理特性,SystemC建模中同样要考虑这些物理特性,利用的SystemC自带的基本通道类,比如sc_signal<T>可以模拟硬件设计中的非阻塞赋值,例如,其等价方式可以为:
发明内容
本发明针对高级语言建模模拟硬件Verilog语言非阻塞赋值,提出了一种更为普适的数据信号同步方法,即用高级语言基本数据类型(T)模拟硬件实现非阻塞赋值的方法。
为了实现上述目的,本发明采用以下技术方案实现:
一种高级语言实现硬件非阻塞赋值的建模方法,包括:
对输入信号声明N个对应的临时基本数据类型变量,其中,第N个变量被赋值为第N-1个变量的值,第N-1个变量被赋值为第N-2个变量的值,依此类推,直至第1个变量被赋值为输入信号的值;
之后在每个时钟的上升沿,均执行一次赋值。
优选地,非阻塞赋值寄存器变量个数等价为延迟多少拍,在寄存器变量个数较少时,采用高级语言的基本数据类型变量组,变量的使用与赋值,必须在同一个注册为线程进程或方法进程的过程中。
更为优选地,方法进程不包含while循环,需要将变量声明为模块成员变量或者过程的静态变量。
优选地,一组基本数据类型变量的使用与赋值的顺序为:使用先于赋值。
一种高级语言实现硬件非阻塞赋值的建模方法,包括:
模块构造函数初始化的时候,根据延时填充queue队列为无效值;
仿真开始时,接收进程收到一个有效数据则存入接收先入先出fifo队列;
发送进程则每拍从queue队列中先弹出一个数据,如果数据有效,则存入发送fifo队列。
优选地,在执行所有步骤之后,所述高级语言实现硬件非阻塞赋值的建模方法还包括:
从queue队列中弹出一个元素后,紧接着需要入队一个元素,以保证队列大小恒定,读出接收fifo的数据,并根据有效标识判断将其填入相应的queue队列,如果接收fifo队列为空,则queue队列入队无效值。
高级语言实现硬件非阻塞赋值的建模,将延迟节拍作为模块模板类的参数,通过在对模块例化的时候可重入该参数来做到数据信号的读写同步。
优选地,始终保持以queue队列的大小来模拟节拍延迟参数,以使得来一个数据a即入队queue队列末端,这样经过所设置的延迟拍数次出队元素后,恰好弹出元素a。
一种如上所述的高级语言实现硬件非阻塞赋值的建模方法的用途,其可以仿真多个延迟参数不同的硬件原型。
通过上述本发明的技术方案可以看出,本发明至少具有以下有益效果:
对于模拟硬件非阻塞赋值建立SystemC寄存器传输级模型来说,采用高级语言基本数据类型、SystemC基本数据类型或者用户自定义数据类型变量,相比SystemC中支持“求值-更新”过程的基本通道类更节约内存占用,执行效率更高,唯一注意的就是变量赋值与使用顺序。
采用STL模板类中queue容器亦可建模实现硬件非阻塞赋值,节拍延迟等硬件特性,但适用范围更宽泛一些。利用容器的一些特性比如支持不指定大小的存储,运行时高效的push/pop元素,相比SystemC中必须指定存储深度的基本fifo通道sc_fifo<T>来说,更适合延迟节拍可变的应用场景。
附图说明
图1是本发明实施例中查询片内SRAM应用场景示意图;
图2是本发明实施例中查询片外SDRAM应用场景示意图;
图3是本发明实施例1的实施流程图;
图4是本发明实施例2的实施流程图。
本发明目的的实现、功能特点及优异效果,下面将结合具体实施例以及附图做进一步的说明。
具体实施方式
下面结合附图和具体实施例对本发明所述技术方案作进一步的详细描述,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
本发明利用高级语言(SystemC、C++、C等)在建立硬件芯片模型过程中,为模拟硬件非阻塞赋值实现数据信号同步、节拍延迟、状态转换等物理特性而提出了两种方法,解决了高级语言串行执行难以描述在同一个时间片内变量的变化更新过程的问题,即实现了硬件非阻塞赋值。
根据非阻塞赋值中与输入信号相关的寄存器变量个数,一个寄存器变量可以等价为延迟一个节拍,节拍延迟少的应用高级语言基本数据类型变量组实现非阻塞赋值的方案,方案采用变量使用先于赋值的方式。对于寄存器变量个数较多、等价延迟拍数较大的寄存器传输级模型来说,本发明还提出了另外一种解决方法,采用C++标准模板库STL queue队列实现,利用queue队列支持不指定大小的存储的属性,可以建立节拍延迟数可重入的模块,实现模拟可变的节拍延迟。
在本发明实施例中,参见如下代码片段,硬件代码中对应输入信号xxx_vld声明了三个寄存器变量,在时钟上升沿驱动的同步逻辑块中使用非阻塞赋值从而达到将输入信号延迟了三个时钟节拍。
用高级语言模拟此逻辑,对应一个输入信号需要声明四个对应的临时基本类型变量,因为对软件语言的基本数据类型变量赋值,不会存在“求值-更新”的过程,是瞬间变化的,所以需要记录输入信号的值。
即第4个变量被赋值为第3个变量的值,第3个变量被赋值为第2个变量的值,第2个变量被赋值为第1个变量的值,直至第1个变量被赋值为输入信号的值。
之后每个时钟的上升沿,均会执行一次赋值,由于变量的使用先于被赋值,所以每一次循环均能够使有效数据转移到下一个变量。
另外,在本实施例中,高级语言基本数据类型T为bool类型。
由于C++等高级软件语言专长于描述串行执行的程序,本发明实施例为了实现非阻塞赋值等效的效果并且考虑到软件语言的顺序执行行为,需要对变量的赋值与使用有严格的顺序,比如上例就要变量使用先于赋值执行才能达到硬件非阻塞赋值“求值-更新”过程等效的效果。
并且由于SystemC内核注册进程的串行调度策略,即使声明为全局变量,也不可跨越进程使用,避免内核调度的不确定性带来的数据使用与赋值的竞争冒险现象发生。
采用以上精简的数据信号同步方式,相比采用SystemC基本通道类支持的“求值-更新”过程来说有如下几方面的优点。
1.耗费内存少。
基本通道类存在多个继承类,类中数据成员和成员函数调用都会占用较大的内存使用。
2.执行效率高,仿真速度快。
使用底层基本数据类型无疑会加快仿真速度。
3.基本通道类sc_signal<T> 在RTL建模中,一般用于不同模块端口间的连接信号,使用不当会造成信号的多驱动问题。
上述模拟硬件非阻塞赋值实现硬件电路设计中的基本物理特性,如信号同步、节拍延迟、状态转换,可以理解成对模块输入有效数据延迟了有限个节拍将数据传输到下一个模块,对于延迟数十节拍数的同步来讲,信号变量声明太多,造成代码冗余庞大因此并不合适。
为此,本发明实施例还提出了另外一种解决方法,可以采用C++ STL标准模板库中的先进先出queue队列实现硬件非阻塞赋值。
基本方案为:
步骤一、在模块构造函数初始化的时候根据预先设置的同步延迟节拍数填充queue队列为无效值。
步骤二、仿真开始时,接收进程收到一个有效数据则存入接收fifo队列,
步骤三、发送进程则每拍从queue队列中先弹出一个数据,如果数据有效则存入发送fifo,然后读出接收fifo的数据根据有效标识判断入哪一个queue队列,如果接收fifo为空,则queue队列入队无效值,补足队列中元素个数恒定。
由于queue队列是一种可以不指定大小的容器,因此更适合模拟延迟节拍可变的应用场景中。将延迟节拍作为模块模板类的参数,通过在对模块例化的时候可重入该参数来做到数据信号的读写同步。
模拟硬件非阻塞赋值中,根据同一个输入信号对应声明的寄存器变量(一个寄存器变量对应延迟一拍)个数多少,建模中可以选择上述两种方案之一。在应用场景上亦可有多种实施场景可实践。比如网络处理器不可编程单元某模块查片内SRAM表,可编程单元查片外SDRAM表等。这些在早期芯片建模架构验证的时候,不可能提供真实的查找片外表项管理控制单元只有通过等效的模拟来实现。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
其中,第一实施例即为查询片内SRAM应用场景实例,第二实施例即为查询片外SDRAM应用场景实例。
如图1所示,其展示了仿真时钟周期精准的寄存器传输级模型时,为了保持与硬件逻辑代码相同的输出处理结果节拍,通过S11步骤从前级模块收到一个待处理模块S12处理的描述符后,从描述符中提取关键值(key)发送查找请求到片内SRAM模块S14,片内SRAM模块S14找到匹配关键值的结果(result)后作适当的延迟发送给处理模块S12,处理模块S12根据查找结果修改描述符,然后通过发送通道S16发送给下级模块。
处理模块S12实现的主要处理逻辑就是:模拟硬件非阻塞赋值,用几个基本数据类型变量来存储流水线形式过来的描述符,假设我们变量命名为a1、a2、…、an,那么提取a1中的关键字发出查找请求,经过n个时钟节拍后,an的值已经更新为原来n拍之前a1的值,这时正好查找结果返回,修改an某些bit位的值,发送描述符至下级模块。链路S17以及S18用于配置管理表项,包括初始化、修改、写入、查询等具体操作。
实施例1
参考图3,其为本发明该实施例提供的基本数据类型实现非阻塞赋值方法的流程图,是对图1应用场景的更为详细的描述。
该实施例的详细处理过程见图3,其中:
S301表示从前一级模块发送的报文描述符,报文描述符的概念可以这样理解,为从原始报文中解析提取的后续模块将要逻辑处理的关键字段组成的数据结构。
S302,S305,S307共同完成图1中的应用业务模块的功能。其中在S302中,接收报文描述符并提取关键字发送给S303。S305实现非阻塞赋值,由于查找片内SRAM的延迟拍数较低,所采用的同步方式即为模拟非阻塞赋值的方法。S307接收查表返回的结果,修改并发送S305同步的数据。
S303,S304,S306共同完成图1中的片内SRAM模块的功能。片内SRAM模块存储表项内容,可以采用STL map关联式容器来建模key-value的对应关系。如果不采用S304延迟查找键值关键字,那么从S302发出查找请求到S307收到查找结果,对于受同一时钟驱动的同步电路来说,均为上升沿敏感,为固定两拍延迟。S304就是根据实际的SRAM属性,作适当的键值处理的,比如模拟内置TCAM,一般8拍才返回结果,这时候就需要S304用于非阻塞赋值了。由于S304根据SRAM属性设置延迟拍数,因此适合采用参数可重入的模板类实现。
实施例2
参考图4,其为本发明实施例提供的queue队列实现非阻塞赋值方法第二实施例的流程图,是对图2应用场景的更为详细的描述。
结合图2所示应用场景,在该实施例中,为模拟查找片外表,如hash、tree、tcam、eram、ddr3等,需要构造一个中间模块S209,用于模拟查询不同类型表项的管理控制。其中,图4既是对中间模块S209的详细的描述。
假设外挂逻辑表根据类型分为hash、tree、tcam、eram、ddr3五大类,那么我们需要5个STL queue队列来模拟实现数据延迟。所采用的方法如下:
模块建模为4个SC_THREAD进程,为了引用方便起见,命名thread_1为接收键值关键字缓存先入先出fifo队列的进程,命名thread_2为发送键值关键字的进程,命名thread_3为接收查找结果的进程,命名thread_4为发送查找结果的进程。
首先在启动仿真核,进行初始化的时候,构造函数中将根据设置的延迟拍数填充queue队列为无效键值0。
应用模块S403发出查找请求,在S404中,进程thread_1将接收到的请求存入fifo队列。由于SystemC内核串行调度策略,所有注册的进程在同一仿真时间节拍将调度一次,来模拟硬件上的并发性。S405示意为进程在同一节拍上是并行的。
thread_2进程做三件事,串行执行S406、S407、以及S408,其中:
S406,首先检测请求发送fifo中有无有效数据,有的话就发送给S409用于查表。
S407,各queue队列每拍均出队一个数据,根据数据的有效性,决定是否存入请求发送fifo中。
由于各queue队列每拍均出队一个数据,因此为了保持queue队列中元素数目恒定,需要每拍入队一个数据。S408,实现这个功能,入队的依据即为从接收请求的fifo中读取有效数据,根据数据的相关标识入队相应的queue,其余queue入队为无效键值0即可。
S411,S412分别表示thread_3、thread_4进程接收查表结果缓存并发送结果给S403的过程。
对于本发明实施例提供的所述的高级语言实现硬件非阻塞赋值的建模方法的用途,其可以仿真多个延迟参数不同的硬件原型,达到模拟实现查找乱序的功能行为。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种高级语言实现硬件非阻塞赋值的建模方法,其特征在于,包括:
对输入信号声明N个对应的临时基本数据类型变量,其中,第N个变量被赋值为第N-1个变量的值,第N-1个变量被赋值为第N-2个变量的值,依此类推,直至第1个变量被赋值为输入信号的值;
之后在每个时钟的上升沿,均执行一次赋值。
2.如权利要求1所述的高级语言实现硬件非阻塞赋值的建模方法,其特征在于,非阻塞赋值寄存器变量个数等价为延迟多少拍,在寄存器变量个数较少时,采用高级语言的基本数据类型变量组,变量的使用与赋值,必须在同一个注册为线程进程或方法进程的过程中。
3.如权利要求2所述的高级语言实现硬件非阻塞赋值的建模方法,其特征在于,方法进程不包含while循环,需要将变量声明为模块成员变量或者过程的静态变量。
4.如权利要求1所述的高级语言实现硬件非阻塞赋值的建模方法,其特征在于,一组基本数据类型变量的使用与赋值的顺序为:使用先于赋值。
5.一种高级语言实现硬件非阻塞赋值的建模方法,其特征在于,包括:
模块构造函数初始化的时候,根据延时填充queue队列为无效值;
仿真开始时,接收进程收到一个有效数据则存入接收先入先出fifo队列;
发送进程则每拍从queue队列中先弹出一个数据,如果数据有效,则存入发送fifo队列。
6.如权利要求5所述的高级语言实现硬件非阻塞赋值的建模方法,其特征在于,在执行所有步骤之后,所述方法还包括:
从queue队列中弹出一个元素后,紧接着需要入队一个元素,以保证队列大小恒定,读出接收fifo的数据,并根据有效标识判断将其填入相应的queue队列,如果接收fifo队列为空,则queue队列入队无效值。
7.如权利要求6所述的高级语言实现硬件非阻塞赋值的建模方法,其特征在于,将延迟节拍作为模块模板类的参数,通过在对模块例化的时候可重入该参数来做到数据信号的读写同步。
8.如权利要求6所述的高级语言实现硬件非阻塞赋值的建模方法,其特征在于,始终保持以queue队列的大小来模拟节拍延迟参数,以使得来一个数据a即入队queue队列末端,这样经过所设置的延迟拍数次出队元素后,恰好弹出元素a。
9.一种如权利要求5-8任一权利要求所述的高级语言实现硬件非阻塞赋值的建模方法的用途,其特征在于,可以仿真多个延迟参数不同的硬件原型。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210404828.4A CN102930090B (zh) | 2012-10-22 | 2012-10-22 | 高级语言实现硬件非阻塞赋值的建模方法 |
PCT/CN2013/082559 WO2014063531A1 (zh) | 2012-10-22 | 2013-08-29 | 高级语言实现硬件非阻塞赋值的建模方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210404828.4A CN102930090B (zh) | 2012-10-22 | 2012-10-22 | 高级语言实现硬件非阻塞赋值的建模方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102930090A true CN102930090A (zh) | 2013-02-13 |
CN102930090B CN102930090B (zh) | 2015-12-16 |
Family
ID=47644887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210404828.4A Active CN102930090B (zh) | 2012-10-22 | 2012-10-22 | 高级语言实现硬件非阻塞赋值的建模方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102930090B (zh) |
WO (1) | WO2014063531A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014063531A1 (zh) * | 2012-10-22 | 2014-05-01 | 中兴通讯股份有限公司 | 高级语言实现硬件非阻塞赋值的建模方法 |
CN108008981A (zh) * | 2016-10-27 | 2018-05-08 | 青岛海信电器股份有限公司 | 一种片上系统SoC中进行程序初始化的方法和装置 |
CN115658242A (zh) * | 2022-10-21 | 2023-01-31 | 芯华章科技股份有限公司 | 逻辑系统设计的任务处理方法及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060075367A1 (en) * | 2004-10-01 | 2006-04-06 | Chan Terence W | RaceCheck: A Race Logic Ana,yzer Program for Digital Integrated Circuits |
CN101145989A (zh) * | 2007-07-26 | 2008-03-19 | 中兴通讯股份有限公司 | 一种仿真单板及其仿真方法 |
CN101719177A (zh) * | 2009-11-02 | 2010-06-02 | 北京中星微电子有限公司 | 系统建模和仿真的方法及装置 |
US7990980B2 (en) * | 2007-12-27 | 2011-08-02 | International Business Machines Corporation | Modeling non-deterministic priority queues for efficient model checking |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102930090B (zh) * | 2012-10-22 | 2015-12-16 | 中兴通讯股份有限公司 | 高级语言实现硬件非阻塞赋值的建模方法 |
-
2012
- 2012-10-22 CN CN201210404828.4A patent/CN102930090B/zh active Active
-
2013
- 2013-08-29 WO PCT/CN2013/082559 patent/WO2014063531A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060075367A1 (en) * | 2004-10-01 | 2006-04-06 | Chan Terence W | RaceCheck: A Race Logic Ana,yzer Program for Digital Integrated Circuits |
CN101145989A (zh) * | 2007-07-26 | 2008-03-19 | 中兴通讯股份有限公司 | 一种仿真单板及其仿真方法 |
US7990980B2 (en) * | 2007-12-27 | 2011-08-02 | International Business Machines Corporation | Modeling non-deterministic priority queues for efficient model checking |
CN101719177A (zh) * | 2009-11-02 | 2010-06-02 | 北京中星微电子有限公司 | 系统建模和仿真的方法及装置 |
Non-Patent Citations (1)
Title |
---|
张文波: "Verilog HDL中阻塞赋值与非阻塞赋值的区别与应用", 《计算机与信息技术》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014063531A1 (zh) * | 2012-10-22 | 2014-05-01 | 中兴通讯股份有限公司 | 高级语言实现硬件非阻塞赋值的建模方法 |
CN108008981A (zh) * | 2016-10-27 | 2018-05-08 | 青岛海信电器股份有限公司 | 一种片上系统SoC中进行程序初始化的方法和装置 |
CN108008981B (zh) * | 2016-10-27 | 2020-12-08 | 海信视像科技股份有限公司 | 一种片上系统SoC中进行程序初始化的方法和装置 |
CN115658242A (zh) * | 2022-10-21 | 2023-01-31 | 芯华章科技股份有限公司 | 逻辑系统设计的任务处理方法及电子设备 |
CN115658242B (zh) * | 2022-10-21 | 2024-04-26 | 芯华章科技股份有限公司 | 逻辑系统设计的任务处理方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102930090B (zh) | 2015-12-16 |
WO2014063531A1 (zh) | 2014-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1885295B (zh) | 使用逻辑单元建置集成电路 | |
CN102637157B (zh) | 一种片上数字模板系统dtsoc | |
CN102760176B (zh) | 硬件事务级仿真方法、引擎及系统 | |
US8849644B2 (en) | Parallel simulation using an ordered priority of event regions | |
US20070150854A1 (en) | Method for specifying stateful, transaction-oriented systems for flexible mapping to structurally configurable, in-memory processing semiconductor device | |
CN102930090B (zh) | 高级语言实现硬件非阻塞赋值的建模方法 | |
CN107862155A (zh) | 对芯片进行功能覆盖率模型验证的方法和装置 | |
CN106997414A (zh) | 一种基于反射内存网络的多学科协同仿真实现方法 | |
CN110109658A (zh) | 一种基于形式化模型的ros代码生成器及代码生成方法 | |
CN106462386A (zh) | 并行归并排序 | |
US10055528B1 (en) | Methods, systems, and computer program product for implementing engineering change orders with figure groups and virtual hierarchies | |
TWI585602B (zh) | 與其他步驟同時地執行以覆蓋區爲基礎之優化的方法或裝置 | |
Zhou et al. | Quasi-delay-insensitive compiler: Automatic synthesis of asynchronous circuits from verilog specifications | |
CN104992032B (zh) | 一种多电压域设计中保持时间的修正方法 | |
CN104035896B (zh) | 一种适用于2.5d多核系统的融合存储器的片外加速器 | |
CN104426774A (zh) | 一种同时支持IPv4和IPv6的高速路由查找方法及装置 | |
CN109635072A (zh) | 舆情数据分布式存储方法、装置、存储介质和终端设备 | |
CN109885850B (zh) | 一种局部寄存器的生成方法及生成系统 | |
CN108388498B (zh) | 内存中计算的功率建模方法及功率管理方法 | |
Avasalcai et al. | Towards industry strength mapping of AUTOSAR automotive functionality on multicore architectures: work-in-progress | |
CN105608046A (zh) | 基于MapReduce编程模型的多核处理器架构 | |
CN109583051B (zh) | 一种基于SystemC的面向GPU硬件的glCallList TLM模型 | |
CN103473389A (zh) | 一种应用于hla分布式仿真技术的通用模型 | |
US7346482B1 (en) | Shared memory for co-simulation | |
Carmona et al. | Scheduling synchronous elastic designs |
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 |