ASIC设计方法学——C_systemc.ppt

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ASIC设计方法学——C_systemc

If we hear, we forget; if we see, we remember; if we do, we understand. - Proverb 用两个计数器记录event数。 注意在trace中可以跟踪module内部变量。 跟踪channel的函数。参见第90页的methods。 定义一个fifo channel 从fifo_a读一个数据赋值给a 向fifo_a写一个数据a 使用方法num_avaibale()的例子。 定义一个port out,连接fifo channel。定义一个port out1,连接sc_signal channel 内部变量n_free 两个process 注意没有敏感信号表 Main_action:等待1ns Val的值先加1,再写入fifo,连续写10次 在等待10ns Output_num_free 每1ns将fifo的num_free写入n_free 两个port,一个内部变量 Main_action:等待15ns 每一ns从in port读取channel的数据,连续读5次。 Output_num_available:等待1ns 每1ns从channel读取num_available 定义一个fifo channel aaa,深度15 SC_signal sig1 和sig2 Writer每20ns写10个数据,reader每20ns读5个数据 Port in连接计数器,从计数器读数后写入内部变量data. Proc_a与前例一样 Read_data在每个时钟沿读数据 sc_fixed 和 sc_ufixed: 其参数必须是确定的数。 sc_fix 和 sc_ufix: 其参数可以是变量。例如,可以将浮点数的字长定义为一个变量。 Gate Level Model SystemC不适于描述门级模型,但是在你需要的时候也可以实现门级模型。 Register Transfer Level (RTL) Model RTL模型用于描述硬件的细节。接口时序精度为PCA,模型的主体为RT。以硬件描述语言(如Verilog或VHDL)写成的模型通常都是RTL模型。 System Level Model 指的是抽象级别高于RTL级的模型。包括System Architecture, System Performance, 以及 TLM 模型。 由于out-write(val++);是先write后++,所以在当write_val的值为1时,channel的值sig_transfered仍为0 由于在reader.h中有dont_initialize(); 所以在sig_transfered由0变1时,它才被激励,开始执行wait(); 等到sig_transfered由1变2时,才结束wait,等待10ns后从channel读取数据。 在系统级设计中不考虑时序、数据格式等细节 Writer模块有两个port:clk和out 进程main_action被clk激励,从out输出数据 等待两次时钟上升沿时从out输出数据,由0开始递增。 注意,由于没有dont_initialize(); 初始化时先执行到第一个wait(); write( val ++ );表示先write然后val加1。所以到下一个时钟上升沿时,out向channel输出0,同时val变为1。 所以每两个时钟,channel和writer中的val同时改变数值,但总是不同,后者大1。 Reader有两个port:in和out Ib是数据输入的端口,同时也是process的触发信号。 注意这里的dont_initialize(); 等待channel有数据后再过10ns(一个时钟周期)reader中的val接收由channel发来的数值。 同时输出到out 所以,reader中的val总是和out同时改变数值。 两个输出port,每个时钟上升沿向channel发送一次数据。 数据是以ns为单位的时间除以2。 1. 端口Port 2. 内部信号和函数,packin和tpackold是内部寄存器 3. // Constructor 敏感表 1 timeout 2 clock 内部寄存器:输入输出寄存器各两个 敏感表:收到数据 加入噪声 内部信号:packin, packold,S 注意:process:sc_thread 端口sta

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档