FPGA入门教程 FPGA架构教程 Verilog教程 Verilog-2001SystemC教程
返回首页
当前位置: FPGA主页 > FPGA教程 > SystemC教程 >

2.10 SystemC中的绑定

时间:2010-03-26 00:06来源:未知 作者:admin 点击:
端口与信号的连接,以及端口到端口的直接连接在在SystemC中都称作绑定。绑定方法分为位置关联和名字关联。位置关联是一种隐含关联,节省代码但是在设计较为复杂时容易出错;而名

     端口与信号的连接,以及端口到端口的直接连接在在SystemC中都称作绑定。绑定方法分为位置关联和名字关联。位置关联是一种隐含关联,节省代码但是在设计较为复杂时容易出错;而名字是一种显式关联,代码量多但是能够保证正确性。在实际设计中,更多的使用名字关联。

     下面讲述这两种关联的具体用法。

     顾名思义,名字关联就是让端口和信号的名字一一对应来,比如pwb_slave_if->wr_en(sram_wr_en)就是将pwb_slave_if的端口wr_en与信号sram_wr_en连接在一起。使用名字关联,设计者可以任意顺序的创建信号和端口间的连接而不会产生错误。

     在位置关联中,所有端口都是按照声明的顺序位置进行一一对应的。如下面的例子:
 

  1. SC_CTOR(wb_sram)  
  2. {  
  3.  pwb_slave_if = new wb_slave_if("wb_slave_if");  
  4.  assert(pwb_slave_if);  
  5.  psram  = new sram6("sram");  
  6.  assert(psram);  
  7.  (*pwb_slave_if)(clk_i,stb_i,rst_i,cyc_i,we_i,ack_o,adr_i,dat_i,   
  8.  
  9.   dat_o,sram_wr_en,dat_wb_to_sram,sram_addr,dat_sram_to_wb);  
  10.  (*psram)(clk_i,sram_wr_en,dat_wb_to_sram,sram_addr,dat_sram_to_wb);         
  11. };                        
  12. ~wb_sram()                
  13. {                         
  14.   if(pwb_slave_if) delete pwb_slave_if;  
  15.   if(psram) delete psram;  
  16.  }  
  17.  };   

      在位置关联中在已经初始化的模块的关联里每一个信号都有一个相匹配的端口。在关联表中的第一个信号对应第一个端口,第二个信号对应第二个端口,以次类推。

(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名:密码: 验证码:点击我更换图片
推荐内容