第三部分-SystemC行为建模基础-《SystemC片上系统设计》-教学-系统级设计描述语言-Sy.ppt
《第三部分-SystemC行为建模基础-《SystemC片上系统设计》-教学-系统级设计描述语言-Sy.ppt》由会员分享,可在线阅读,更多相关《第三部分-SystemC行为建模基础-《SystemC片上系统设计》-教学-系统级设计描述语言-Sy.ppt(72页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、系统级设计描述语言系统级设计描述语言SystemCXuny smth东主楼东主楼9区区324房间房间版权所有版权所有 2004第三部分第三部分 SystemC行为建模基础行为建模基础教材:教材:陈曦陈曦 徐宁仪徐宁仪SystemC片上系统设计片上系统设计,科学出版社科学出版社,2003本本ppt课程主要内容课程主要内容p共讲共讲4次次,争取讲清楚,争取讲清楚Why&How,重点是重点是Conceptp 内容包括:内容包括:n为什么用为什么用SystemC做片上系统设计?做片上系统设计?nSystemC基本语法基本语法*nSystemC行为建模基础行为建模基础*nSystemC交易级建模与通信细
2、化交易级建模与通信细化*nSystemC 方法库方法库pMaster/Slave库库p验证库验证库第三部分第三部分SystemC行为建模基础行为建模基础一些重要概念回顾一些重要概念回顾pSystemC是一种系统描述语言,而不仅仅是一种是一种系统描述语言,而不仅仅是一种新的硬件描述语言。新的硬件描述语言。pSystemC 的主要目的是实现用单一语言完成设计规范、的主要目的是实现用单一语言完成设计规范、系统体系结构分析、验证平台和行为模型。系统体系结构分析、验证平台和行为模型。p用用SystemC的行为模型描述的算法模块比的行为模型描述的算法模块比RTL模块快模块快10100倍。倍。pSystem
3、C的更大价值在于其提供高层次设计流程。行为级综合的更大价值在于其提供高层次设计流程。行为级综合工具经过多年的发展渐渐成熟,工具经过多年的发展渐渐成熟,SystemC和行为综合工具结合的和行为综合工具结合的设计方法将会大大提高设计和验证效率设计方法将会大大提高设计和验证效率.SystemC特别为行为综特别为行为综合设计的语法将使它成为非常适合行为级综合的设计语言。合设计的语法将使它成为非常适合行为级综合的设计语言。SystemC 行为建模行为建模pSystemC行为级建模中一个很重要的概念被称为行为级建模中一个很重要的概念被称为交易级建模交易级建模(Transaction Level Model
4、ing或者或者TLM)。(。(稍后讲述)稍后讲述)pSystemC的的接口接口(Interface)、端口端口(Port)和和通通道道(Channel)三个概念是进行三个概念是进行SystemC 行为建模行为建模的基础的基础。(本部分的重点是理解这三个概念)。(本部分的重点是理解这三个概念)系统抽象:行为,通信和时序p系统抽象的三个关键元素n行为:算法(运算,控制)n通信:各个算法模块之间的数据交互,控制配合n时序:行为和通信的在时间域上的协调p举例系统抽象的三个元素举例存储器p存储器的行为n读:read(address)n写:write(address,data)n复位:resetp存储器的
5、通信nRTL级:地址总线,数据总线,读信号,写信号,复位信号n交易级:目的地址,数据p时序n信号配合时序n读写速度n复位时间系统抽象的三个元素举例嵌入式处理器p行为:完成汇编语言描述的程序p通信:nFlash CPUnCPURAMnDMARAMnIOCPUp时序:n系统总线行为建模对语言的要求(1 of 2)p行为和通信分离(分开描述,时序隐含)n系统体系结构探索,需要对行为和通信的各种组合进行探索(1CPU?3CPU?共享总线?直接通道?)n嵌入式软件开发与调试(软件开发不关心具体硬件通信细节)n优点p行为(或者计算)和通信分开,称为正交化处理正交化处理。可以分别在各自的部分进行修改,而不影
6、响另外一部分的功能和完整性。p处理复杂问题的方法 分而治之时间:分步骤细节:分层本质:正交SystemC的行为建模语言支持p模块(module)是系统行为行为的主要载体。p通道(channel)是通信通信的主要载体。p时序时序隐含在模块和通道的描述中。p特点n行为和通信分开n支持接口方法调用端口通道绑定端口通道绑定端口通道绑定端口通道绑定接口(接口(Interface)p接口的实现:接口的实现:nC+中的抽象类中的抽象类。(抽象类和纯虚函数抽象类和纯虚函数)p接口的特性是不牵扯具体实现;所以它能够联接口的特性是不牵扯具体实现;所以它能够联系行为与通信系行为与通信接口接口(Interface)p
7、抽象类的特点是它定义了一组抽象方法(这里抽象类的特点是它定义了一组抽象方法(这里”方法方法”是是C+中的一个名词,通常理解为类的成中的一个名词,通常理解为类的成员函数),但不定义这些方法的具体实现(这里员函数),但不定义这些方法的具体实现(这里实现指的是给出成员函数的函数体部分)实现指的是给出成员函数的函数体部分)p通道(通道(channelchannel)实现一个或者多个接口)实现一个或者多个接口。存储器接口实例存储器接口实例存储器写接口:存储器写接口:templateclassmem_write_if:publicsc_interfacepublic:virtualtransfer_sta
8、tuswrite(unsignedintaddress,T&data)=0;存储器接口实例复位接口:复位接口:classreset_if:publicsc_interfacepublic:virtualboolreset()=0;存储器接口实例完整的完整的RAM接口:接口:templateclassram_if:publicmem_write_if,mem_read_if,reset_ifpublic:virtualunsignedintstart_address()const=0;virtualunsignedintend_address()const=0;结论结论p我们将我们将mem_re
9、ad_if和和mem_write_if定义为模板类定义为模板类是因为抽象的存储器的每一个单元可以存储的内是因为抽象的存储器的每一个单元可以存储的内容可以是任何类,如存储一个字节容可以是任何类,如存储一个字节char,一个半一个半字字short,一个字一个字int,一个一个packet。p接口是可以分层的,复杂的接口可以由多个简单接口是可以分层的,复杂的接口可以由多个简单的接口继承而得到的接口继承而得到。p类类sc_interface是所有接口类的父类,所有其它类是所有接口类的父类,所有其它类都直接或者间接的从类都直接或者间接的从类sc_interface继承而来。继承而来。端口端口(port)
10、(port)p基本的基本的SystemC端口类型:端口类型:sc_in、sc_out、sc_inout p为了满足行为建模的需要,为了满足行为建模的需要,SystemC允许用户自允许用户自己定义端口类型。己定义端口类型。sc_port p连接模块内的进程(行为)和通道(通信)连接模块内的进程(行为)和通道(通信)端口端口p端口必须与特定的通道接口相连,或者同父模块端口必须与特定的通道接口相连,或者同父模块的端口相连。一个模块的端口连接到零个、一个的端口相连。一个模块的端口连接到零个、一个或者多个通道,或者零个、一个或者多个父模块或者多个通道,或者零个、一个或者多个父模块的端口,但必须至少连接到
11、的端口,但必须至少连接到1个通道或者父模块的个通道或者父模块的端口上端口上。p类类sc_port是所有端口的基类,它是一个模是所有端口的基类,它是一个模板类。板类。IF是接口类型,是接口类型,N是所连接的同一类型的是所连接的同一类型的通道数目,也就是接口数,它的缺省值是通道数目,也就是接口数,它的缺省值是1。端口实例端口实例-RAM读写端口读写端口SC_MODULE(Master)sc_in_clkclk;sc_portram_ifram_port;/端口实例端口实例voidmain_action();/见下一页见下一页intdata;unsignedintaddress;SC_CTOR()S
12、C_CTHREAD(main_action,clk.pos();端口实例端口实例-RAM读写端口读写端口voidMaster:main_action()wait();inti=0;address=0;/anyvalidaddresswhile(i+write(address,data)/DisplaydataelsecoutRAMwritefailread(address,data)/DisplaydataelsecoutRAMreadfailendl;wait();address+;端口与通道的关联#includesource.h#includesink.h“#definePERIOD20c
13、lassTop:publicsc_modulepublic:sc_clockclk;sc_fifofifo1;sourcesource1;sinksink1;Top(sc_module_namename,intsize):sc_module(name),fifo1(Fifo1,size),source1(source1),sink1(sink1),clk(Clk,PERIOD,SC_NS)/端口与通道的关联端口与通道的关联source1.write_port(fifo1);source1.clk(clk);sink1.read_port(fifo1);sink1.clk(clk);基本通道基本
14、通道p基本通道基本通道不包含任何进程,也不对外展现出任何不包含任何进程,也不对外展现出任何可见结构,它们也不能够直接的或者间接的调用可见结构,它们也不能够直接的或者间接的调用其它基本通道其它基本通道。pSystemC2.01中中定义了若干基本通道类型,它们定义了若干基本通道类型,它们是是 :psc_signal,sc_signal_rvpsc_mutexpsc_fifopsc_semaphorepsc_buffer基本通道基本通道-sc_signal_rvpsc_signal_rv是所谓是所谓“解析的解析的”信号通道,与信号通道,与sc_signal的不同之处是的不同之处是它允许同时有多个端口
15、它允许同时有多个端口连接到其上并进行写操作连接到其上并进行写操作。基本通道基本通道-sc_bufferpsc_buffer继承于继承于sc_signal,并重载了并重载了write()和和update()函数函数。psc_buffer不管不管write()写的数据是否与原数据相写的数据是否与原数据相同,都要求进行数据更新;而同,都要求进行数据更新;而sc_signal首先要首先要检查新数据是否与原数据相同,如果不同才进行检查新数据是否与原数据相同,如果不同才进行更新。更新。基本通道基本通道-sc_fifo pFIFO示意图示意图基本通道基本通道-sc_fifopsc_fifo是是SystemC
16、核心语言库中已经实现了的核心语言库中已经实现了的FIFO通道通道。pwrite(&T)代表写代表写FIFO的方法。的方法。pread()是读是读FIFO的方法,的方法,它返回队头单元的数据。它返回队头单元的数据。pnum_free()用于查询用于查询FIFO还有多少空单元。还有多少空单元。pnum_available()查询查询FIFO还有多少个数据可以读。还有多少个数据可以读。pSize代表代表FIFO的总单元数的总单元数,对于对于sc_fifo,Size的默认值的默认值为为16。sc_fifo例化的例子例化的例子 sc_fifo fifo1;/一一个个可可以以存存储储整整型型数数据据的深度
17、为的深度为16的的FIFO sc_fifo fifo2(64);/一一个个可可以以存存储储64个个packet类型数据的类型数据的FIFOsc_fifo实现的接口实现的接口psc_fifo实现的是接口实现的是接口sc_fifo_in_if和和sc_fifo_out_if sc_fifo_in_iftemplateclasssc_fifo_in_if:virtualpublicsc_interfacepublic:/blockingreadvirtualvoidread(T&)=0;virtualTread()=0;/non-blockingreadvirtualboolnb_read(T&)=
18、0;/getthenumberofavailablesamplesvirtualintnum_available()const=0;/getthedatawritteneventvirtualconstsc_event&data_written_event()const=0;sc_fifo_out_iftemplateclasssc_fifo_out_if:virtualpublicsc_interfacepublic:/blockingwritevirtualvoidwrite(constT&)=0;/non-blockingwritevirtualboolnb_write(constT&)
19、=0;/getthenumberoffreespacesvirtualintnum_free()const=0;/getthedatareadeventvirtualconstsc_event&data_read_event()const=0;使用使用sc_fifo的例子信源信宿通过的例子信源信宿通过FIFO通信通信p信源信源(Source)和信宿和信宿(Sink)通过通过FIFO通信。通信。信源模块信源模块classsource:publicsc_modulepublic:sc_in_clkclk;sc_portsc_fifo_out_ifwrite_port;SC_HAS_PROCESS(
20、source);source(sc_module_namename):sc_module(name)SC_CTHREAD(main,clk.neg();voidmain();/Seeinnextslide;信源模块信源模块voidsource:main()inti=0;constcharstr=Foranyproblems,feelfreetocontacttheauthorviaEmail:!n;wait();while(true)if(rand()&1)if(stri)write_port-write(stri+);wait();信宿模块信宿模块#includeclasssink:publ
21、icsc_modulepublic:sc_in_clkclk;sc_portsc_fifo_in_ifread_port;SC_HAS_PROCESS(sink);sink(sc_module_namename):sc_module(name)SC_CTHREAD(main,clk.neg();voidmain();/Seeinnextslice;信宿模块voidsink:main()charc;while(true)if(rand()&1)read_port-read(c);coutc;wait();Top模块模块#includesource.h#includesink.h“#defineP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SystemC片上系统设计 第三 部分 SystemC 行为 建模 基础 系统 设计 教学 描述 语言 Sy
链接地址:https://www.taowenge.com/p-72963253.html
限制150内