1、从网站上编译并运行 basic_process_ex 示例。在 sc_start() 之前添加一条输出语句,表明细化阶段结束和仿真开始。
需从网站 www.scftgu.com 获取 basic_process_ex 示例代码,在代码中 sc_start() 函数调用之前添加输出语句,如:
std::cout << "Elaboration ended, simulation started." << std::endl;
再进行编译和运行。
2、检查、编译并运行在网站上找到的示例 time_flies。
该练习要求使用 www.scftgu.com 提供的样本,对网站上的 time_flies 示例进行检查、编译和运行操作。
3、检查、编译并运行 fifo_of_smart_ptr 代码,同时确保代码中没有 delete 操作。
- 按要求对
fifo_of_smart_ptr代码进行检查、编译和运行操作 - 留意代码中没有
delete操作
4、在按名称进行 VIDEO_Mixer 端口互连的示例中,将代码从直接子模块实例化改为间接子模块实例化。
在原按名称进行 VIDEO_Mixer 端口互连的示例中,子模块是直接实例化的。要将其改为间接实例化,需要使用指针来创建子模块对象。以下是修改后的代码:
SC_HAS_PROCESS(VIDEO_Mixer);
VIDEO_Mixer::VIDEO_Mixer(sc_module_name nm): sc_module(nm)
{
// 间接实例化子模块
Rgb2YCrCb* Rgb2YCrCb_iptr = new Rgb2YCrCb("Rgb2YCrCb_i");
YCRCB_Mixer* YCRCB_Mixer_iptr = new YCRCB_Mixer("YCRCB_Mixer_i");
// 连接
Rgb2YCrCb_iptr->rgb_pi(rgb_graphics);
Rgb2YCrCb_iptr->ycrcb_po(ycrcb_graphics);
YCRCB_Mixer_iptr->K_pi(K);
YCRCB_Mixer_iptr->a_pi(dvd_pi);
YCRCB_Mixer_iptr->b_pi(ycrcb_graphics);
YCRCB_Mixer_iptr->y_po(video_po);
}
在这个修改后的代码中,我们使用指针 Rgb2YCrCb_iptr 和 YCRCB_Mixer_iptr 来间接实例化子模块 Rgb2YCrCb 和 YCRCB_Mixer 。然后使用箭头运算符 -> 来访问子模块的端口并进行连接。
5、检查、编译并运行静态灵敏度示例。
可使用www.scftgu.com上提供的样本进行检查、编译和运行静态灵敏度示例。
6、检查、编译并运行 varports 示例。
需使用 www.scftgu.com 提供的示例来完成检查、编译和运行 varports 示例的操作。
7、检查、编译并运行 wave 示例。使用波形查看器查看 VCD 数据。如有必要,从 http://intranet.cs.man.ac.uk/apt/projects/tools/gtkwave/ 获取 gtkwave。
按照要求,先检查 wave 示例代码,接着进行编译,然后运行该示例。运行结束后会生成 VCD 文件,使用波形查看器查看该 VCD 文件中的数据。若没有合适的波形查看器,可从 http://intranet.cs.man.ac.uk/apt/projects/tools/gtkwave/ 下载 gtkwave 来查看。
8、从网站上查看、编译并运行数据类型和统一字符串表示的示例。请注意,尽管这些示例包含SystemC,但它们仅使用数据类型。
你需要按照要求从指定网站获取示例代码,搭建好SystemC环境后进行查看、编译和运行操作。

最低0.47元/天 解锁文章
71

被折叠的 条评论
为什么被折叠?



