[发明专利]高级语言实现硬件非阻塞赋值的建模方法有效
申请号: | 201210404828.4 | 申请日: | 2012-10-22 |
公开(公告)号: | CN102930090A | 公开(公告)日: | 2013-02-13 |
发明(设计)人: | 张传奇;刘自强;王志忠 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F17/50 | 分类号: | G06F17/50 |
代理公司: | 深圳市世纪恒程知识产权代理事务所 44287 | 代理人: | 胡海国 |
地址: | 518057 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 高级 语言 实现 硬件 阻塞 赋值 建模 方法 | ||
技术领域
本发明涉及电子系统设计建模领域,更为具体地,涉及在对时钟周期精准的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个变量被赋值为输入信号的值;
之后在每个时钟的上升沿,均执行一次赋值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210404828.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:弹性体纳米复合材料制造
- 下一篇:车辆的门构造