1、事件 event 中的@与 wait 的不同:
@:若->event 触发线程先于@event 阻塞线程之前,则 event 会被阻塞住,因为@操作符
是边沿敏感的;
wait:若->event 触发线程在当前时间已经被触发, 先于 wait(evnet.triggered())阻塞线
程之前,不会引起阻塞住,因为 wait(evnet.triggered())是电平敏感的;
(注:事件作为同步对象的句柄,可传递给子程序,在对象间共享,一般会将事件传递到对
象的构造器中;)
2、dp835 项目中,背光模块中含有 glb_pwr_val 变量,在 bl_smul_model.svh 文件中分别有 desc
文件中的随机的变量 bl_glb_pwr_val 与接口文件中的 glb_pwr_val_comp,虽然两个变量命名
不同,但实际表示的是模块中的同一个变量,那么为什么也会将 bl_glb_pwr_val 赋值给
cmodel,一会将 bl_glb_pwr_val 赋值给 cmodel 呢?
问题解答:
rtl 中不是赋值就立刻改变的,值在寄存器中,要等到相应信号使能时才能改变,为了让
cmodel 与 dut 同步,在信号使能时将 glb_pwr_val_comp 传递给 cmodel,即在 dut 的值改
变时,将 dut 改变的值同时传递给 cmodel,让两者行为相似;
/**********************************************************************************************/
1、iff
在 qv_clk_in 的上升沿时,会判断 iff 后的条件是否成立,若成立则会执行后面代码,否则不
执行;这里主要用于调节不同线程间的通信,文件中具体的表现,线程 1:在 fi_vde==0 时,
给 cmodel 准备 cfe 的数据;线程 2:等到 fi_vde==1 并且 fi_hde==1 时,cfe 准备好后,才
进行背光补偿的计算函数;
2、-:
num -:32 表 示 num 到 num-31 共 32 个数字,上式表示 led_lum_map[8*(i+1)-1] 到
led_lum_map[8*(i+1)-32]的拼接,一共 32bit;
/**********************************************************************************************/
1、crc 校验:
这里的校验函数不是单次调用,而是不断的循环调用,两个参数分别为当前需要校验的 32bit
数据,上一个 32bit 数据的校验值,输出为当前 32bit 数据校验值,一帧图像循环调用此函
数,最后输出一个 crc 的值;