clash-vhdl-0.6: primitives/CLaSH.Prelude.Testbench.json
[ { "BlackBox" :
{ "name" : "CLaSH.Prelude.Testbench.assert'"
, "type" :
"assert' :: (Eq a,Show a) -- (ARG[0],ARG[1])
=> SClock t -- ^ ARG[2]
-> String -- ^ ARG[3]
-> Signal' t a -- ^ Checked value (ARG[4])
-> Signal' t a -- ^ Expected value (ARG[5])
-> Signal' t b -- ^ Return valued (ARG[6])
-> Signal' t b"
, "templateD" :
"-- assert begin
assert_~SYM[0] : block
-- pragma translate_off
function slv2string (slv : std_logic_vector) return STRING is
variable result : string (1 to slv'length);
variable res_l : string (1 to 3);
variable r : integer;
begin
r := 1;
for i in slv'range loop
res_l := std_logic'image(slv(i));
result(r) := res_l(2);
r := r + 1;
end loop;
return result;
end;
signal actual_~SYM[1] : ~TYP[4];
signal expected_~SYM[2] : ~TYP[5];
-- pragma translate_on
begin
-- pragma translate_off
actual_~SYM[1] <= ~ARG[4];
expected_~SYM[2] <= ~ARG[5];
process(~CLK[2],~RST[2]) is
begin
if (rising_edge(~CLK[2]) or rising_edge(~RST[2])) then
assert (actual_~SYM[1] = expected_~SYM[2]) report (~LIT[3] & \", expected: \" & slv2string(toSLV(expected_~SYM[2])) & \", actual: \" & slv2string(toSLV(actual_~SYM[1]))) severity error;
end if;
end process;
-- pragma translate_on
~RESULT <= ~ARG[6];
end block;
-- assert end"
}
}
]