CONSTANTc_ram_data_size:NATURAL:=g_nof_data*g_data_size*c_nof_blocks+g_data_size;-- Size is g_data_size addresses more than needed, to check for oversized blocks.
ASSERTstop_address=TO_UINT(wr_mosi.wrdata(c_ram.dat_w-1DOWNTO0))REPORT"wrong data at mm_done signal, must be same as stop_address"SEVERITYERROR;
ASSERTstop_address=TO_UINT(wr_mosi.wrdata(c_ram.dat_w-1DOWNTO0))-c_initREPORT"wrong data at mm_done signal, must be same as stop_address + c_init"SEVERITYERROR;
ENDIF;
ENDLOOP;
WAIT;
...
...
@@ -179,22 +181,20 @@ BEGIN
ram_prev_rd_val<=ram_rd_valWHENrising_edge(clk);
rd_data<=TO_UINT(ram_rd_dat);
p_verify_read_ram_data:PROCESS
BEGIN
rd_nxt_data<=1;
rd_nxt_data<=c_init;
proc_common_wait_until_high(clk,transfer_done);
WHILEtb_end='0'LOOP
WAITUNTILrising_edge(clk);
rd_data<=TO_UINT(ram_rd_dat);
IFrd_data>0THEN
IFram_rd_val='1'THEN
ASSERTrd_data=rd_nxt_dataREPORT"wrong order of RAM values"SEVERITYERROR;
ASSERTrd_data<=stop_addressREPORT"wrong RAM values, greater then block size"SEVERITYERROR;
rd_nxt_data<=rd_nxt_data+1;
ENDIF;
IFram_rd_val='0'ANDram_prev_rd_val='1'THEN-- If ram_rd_val goes from hi tot lo.
ASSERTrd_data=stop_addressREPORT"wrong last RAM values, not same as block size"SEVERITYERROR;
ENDIF;
IFram_rd_val='1'THEN
ASSERTrd_data=rd_nxt_dataREPORT"wrong order of RAM values"SEVERITYERROR;
ASSERTrd_data-c_init<=stop_addressREPORT"wrong RAM values, greater than block size"SEVERITYERROR;
rd_nxt_data<=rd_nxt_data+1;
ENDIF;
IFram_rd_val='0'ANDram_prev_rd_val='1'THEN-- If ram_rd_val goes from hi tot lo.
ASSERTrd_data-c_init=stop_addressREPORT"wrong last RAM values, not same as block size"SEVERITYERROR;