编辑: Cerise银子 2019-07-03

Node Interfaces. (b)在Node types 列表中,将mobile 和satellite 项的 Supported 值改为 no. (c)除了 gen.Packet Interarrival Time 属性之外,将其他属性的 Status 值都改为 hidden. (d)单击 OK,关闭对话框. 9) 将节点模型保存为_cct_tx,然后关闭节点模型编辑器. 2.3.创建接收节点的进程模型 1) 选择 File >

New?,从下拉菜单中选择 Process Model,然后单击 OK. 2) 使用 Create State 在编辑窗口中放置两个状态,分别命名为 init 和idle, 并将 init 状态设置为 forced. 3) 按照下图方式连接转移线 图2-12 idle 状态到自身的转移线有三条: (a) 第一条 (最上面) 转移线的 condition 属性改为 PKT_RCVD, executive 属性改为 proc_pkt(). (b)第二条(中间)转移线的 condition 属性改为 default. (c)第三条(最下面)转移线的 condition 属性改为 END_SIM,executive 属性改为 record_stats(). 4) 在Header Block 中添加如下代码 /* Input stream from bus receiver */ #define IN_STRM

0 /* Conditional macros */ #define PKT_RCVD (op_intrpt_type () == OPC_INTRPT_STRM) #define END_SIM (op_intrpt_type () == OPC_INTRPT_ENDSIM) /* Global variable */ int subm_pkts = 0;

宏IN_STRM 表示来自 bus receiver 模块的输入流;

宏PKT_RCVD 用于判断流中断 是否到来;

宏END_SIM 用于判断仿真结束中断(在仿真结束时,由仿真内核自动 触发)是否到来. 全局变量 subm_pkts 用于记录所有节点发送的总的数据包数. 在HB 里面定义的变量为全局变量,网络中的所有节点都可以访问. 5) 定义状态变量 SV(State Variables) 打开 State Variables block,输入下图所示信息,然后保存. 图2-13 6)打开 Function Block,添加如下代码 /* This function gets the received packet, destroys */ /* it, and logs the incremented received packet total */ static void proc_pkt (void) { Packet* in_pkt;

FIN (proc_pkt());

/* Get packet from bus receiver input stream */ in_pkt = op_pk_get (IN_STRM);

/*Destroy the received packet */ op_pk_destroy (in_pkt);

/* Increment the count of received packet */ ++rcvd_pkts;

FOUT;

} /* This function writes the end-of-simulation channel */ /* traffic and channel throughput statistics to a */ /* vector file static void record_stats (void) { double cur_time;

FIN (record_stats());

cur_time = op_sim_time();

/* Record final statistics */ op_stat_scalar_write ( Channel Traffic G , (double) subm_pkts / cur_time);

op_stat_scalar_write ( Channel Throughput S , (double) rcvd_pkts / cur_time);

FOUT;

} 7)双击 init 状态打开 Enter Executives block,添加如下代码 /* Initialize accumulator */ rcvd_pkts = 0;

8) 设置进程接口 (a)选择 Interfaces >

Process Interfaces. (b)将begsim intrpt 和endsim intrpt 属性的 initial value 值都改为 enabled. (c)将所有属性的 Status 值都改为 hidden. (d)单击 OK,关闭对话框. 图2-14 9) 编译进程模型 (a)单击 Compile Process Model 工具按钮. (b)将进程模型保存为_cct_rx,然后单击 Save 按钮. (c)关闭编译对话框和进程模型编辑器. 2.4.创建接收节点的节点模型 1) 选择 File >

New? 然后从下拉菜单中选择 Node Model 然后单击 OK. 2) 在编辑窗口放置一个 processor 模块和一个 bus receiver 模块,并分别改名 为rx_proc 和bus_rx. 图2-15 3) 按照上图方式使用包流线连接这两个模块.其中输入包流线的索引号默认为 0,这和 cct_rx 进程的 HB 中定义的一致. 4) 右键单击 rx_proc 模块,打开其属性对话框,将process model 属性设置为 _cct_rx. 5) 设置节点模型接口 (a)选择 Interfaces >

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题