clash-vhdl-0.6: primitives/CLaSH.Prelude.ROM.File.json
[ { "BlackBox" :
{ "name" : "CLaSH.Prelude.ROM.File.asyncRomFile#"
, "type" :
"asyncRomFile# :: KnownNat m -- ARG[0]
=> SNat n -- sz, ARG[1]
-> FilePath -- file, ARG[2]
-> Int -- rd, ARG[3]
-> BitVector m"
, "templateD" :
"-- asyncRomFile begin
asyncROMFile_~SYM[0] : block
type RomType is array(natural range <>) of bit_vector(~LIT[0]-1 downto 0);
impure function InitRomFromFile (RomFileName : in string) return RomType is
FILE RomFile : text open read_mode is RomFileName;
variable RomFileLine : line;
variable ROM : RomType(0 to ~LIT[1]-1);
begin
for i in ROM'range loop
readline(RomFile,RomFileLine);
read(RomFileLine,ROM(i));
end loop;
return ROM;
end function;
signal ROM_~SYM[1] : RomType(0 to ~LIT[1]-1) := InitRomFromFile(~FILE[~LIT[2]]);
signal rd_~SYM[2] : integer range 0 to ~LIT[1]-1;
begin
rd_~SYM[2] <= ~ARG[3]
-- pragma translate_off
mod ~LIT[1]
-- pragma translate_on
;
~RESULT <= to_stdlogicvector(ROM_~SYM[1](rd_~SYM[2]));
end block;
-- asyncRomFile end"
}
}
, { "BlackBox" :
{ "name" : "CLaSH.Prelude.ROM.File.romFile#"
, "type" :
"romFile# :: KnownNat m -- ARG[0]
=> SClock clk -- clk, ARG[1]
-> SNat n -- sz, ARG[2]
-> FilePath -- file, ARG[3]
-> Signal' clk Int -- rd, ARG[4]
-> Signal' clk (BitVector m)"
, "templateD" :
"-- romFile begin
romFile_~COMPNAME_~SYM[0] : block
type RomType is array(natural range <>) of bit_vector(~LIT[0]-1 downto 0);
impure function InitRomFromFile (RomFileName : in string) return RomType is
FILE RomFile : text open read_mode is RomFileName;
variable RomFileLine : line;
variable ROM : RomType(0 to ~LIT[2]-1);
begin
for i in ROM'range loop
readline(RomFile,RomFileLine);
read(RomFileLine,ROM(i));
end loop;
return ROM;
end function;
signal ROM_~SYM[1] : RomType(0 to ~LIT[2]-1) := InitRomFromFile(~FILE[~LIT[3]]);
signal rd_~SYM[2] : integer range 0 to ~LIT[2]-1;
signal dout_~SYM[3] : ~TYPO;
begin
rd_~SYM[2] <= ~ARG[4]
-- pragma translate_off
mod ~LIT[2]
-- pragma translate_on
;
romFileSync : process (~CLK[1])
begin
if (rising_edge(~CLK[1])) then
dout_~SYM[3] <= to_stdlogicvector(ROM_~SYM[1](rd_~SYM[2]));
end if;
end process;
~RESULT <= dout_~SYM[3];
end block;
-- romFile end"
}
}
]