本帖最后由 GoldSunMonkey 于 2013-3-14 19:39 编辑
1. Virtual Signals Virtual Signal 可以将多个信号绑定在一起,从而生成一个新的信号。 选择信号,在 wave菜单中选择Combine Signals命令即可,如下图所示: 注:Virtual Signal 与 Group 是不一样的,Group只是在信号排列时将多个信号放到一个组下。 2. Virtual Type 使用 Virtual Type 可以创建一个枚举类型,而该枚举类型可以在随后的仿真中使用。其命令格式如下: Virtual type { {val1 s1} {val2 s2} … {valn sn} } newVirtualType; 如上所示,val 表示枚举值, s 表示枚举名。而 newVirtualType 表示新的枚举类型的名称。 注: Virtual type 与 { 之间一定要有空格。 3. Virtual Function Virtual Function 与 Virtual Signals 有些类似,但虚拟函数不是单纯的对原信号进行合并或取子集,它可以对原信号进行运算或标记,并可以随之时间更改。其命令格式如下: Virtual function {<expressionStrings>} <name> 命令中的 <expression Strings> 是表达式字符串,即函数的执行功能。 <name> 是指定的输出名称。 例:如下命令是对一个信号进行取反操作 Virtual function {not sim:/tb_demux/uut/wrcache_we} not_wrcache_we 4. 如何使用虚拟对象显示状态机名称? · 使用 virtual type 创建一个新的枚举类型,如下: virtual type { {12′b000000000001 s_wait_chn_cache_rdy} {12′b000000000010 s_read_chn_data} {12′b000000000100 s_data_load} {12′b000000001000 s_data_shift} {12′b000000010000 s_check_blk_ct} {12′b000000100000 s_clr_chn_cache} {12′b000001000000 s_wait_fifo_not_full} {12′b000010000000 s_copy_data_to_sdr_fifo} {12′b000100000000 s_launch_sdr_wr_cmd} {12′b001000000000 s_chk_end_of_chn} } DEMUX_FSM_TYPE; 注:在 12′b000000000001 值中是不允许出现 ‘_’ 分隔符的,否则会报错 · 使用 vritual function 命令对状态寄存器进行类型转换以生成一个新的信号,如下:
virtual function {(DEMUX_FSM_TYPE)/tb_demux/uut/s_reg} s_state; · 在 wave 窗口中添加 virtual function 生成的新信号,如下图所示: · 如果希望定义一次,以后多次使用,可以将 wave 窗口保存到 .do 文件中 5. 联系我 |