packages feed

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"
    }
  }
]