Read text image data -Error

Status
Not open for further replies.

symlet

Member level 1
Joined
Oct 12, 2012
Messages
41
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,288
Activity points
1,616
Hi,

I try simulate testbench code for read text image data. I have includes all the package required (textio), but I get this error:

"Error (10482): VHDL error at INPIMAGE.VHD(150): object "HREAD" is used but not declared"

Below is the pieces of the code. Anyone know/familiar with this, please advise.Thank You

library IEEE;
use IEEE.STD_LOGIC_1164.all;
use ieee.numeric_std.all;
use IEEE.STD_LOGIC_TEXTIO.all;

library STD;
use STD.TEXTIO.all;

library WORK;
use WORK.MDCT_PKG.all;
use WORK.MDCTTB_PKG.all;
use WORK.RNG.all;

entity INPIMAGE is
port (
clk : in STD_LOGIC;
odv1 : in STD_LOGIC;
dcto1 : in STD_LOGIC_VECTOR(OP_W-1 downto 0);
odv : in STD_LOGIC;
dcto : in STD_LOGIC_VECTOR(COE_W-1 downto 0);

rst : out STD_LOGIC;
imageo : out STD_LOGIC_VECTOR(IP_W-1 downto 0);
dv : out STD_LOGIC;
testend : out BOOLEAN
);
end INPIMAGE;

--**************************************************************************--

architecture SIM of INPIMAGE is

constant PERIOD : TIME := 1 us /(CLK_FREQ_C);

signal rst_s : STD_LOGIC;
signal test_inp : INTEGER;
signal test_stim : INTEGER;
signal test_out : INTEGER;
signal xcon_s : INTEGER;
signal ycon_s : INTEGER;
signal error_dct_matrix_s : I_MATRIX_TYPE;
signal error_dcto1_matrix_s : I_MATRIX_TYPE;
signal imageo_s : STD_LOGIC_VECTOR(IP_W-1 downto 0);
signal dv_s : STD_LOGIC;

begin

rst <= rst_s after HOLD_TIME;

imageo <= imageo_s after HOLD_TIME;
dv <= dv_s after HOLD_TIME;

--------------------------
-- input image stimuli
--------------------------
INPIMAGE_PROC: process
variable i : INTEGER := 0;
variable j : INTEGER := 0;
variable INSERT_DELAYS : BOOLEAN := FALSE;
variable unf: Uniform := InitUniform(7, 0.0, 2.0);
variable rnd: real := 0.0;
variable xi : INTEGER := 0;

-------------------------------------
-- wait for defined number of clock cycles
-------------------------------------
procedure waitposedge(clocks : in INTEGER) is
begin
for i in 1 to clocks loop
wait until clk='1' and clk'event;
end loop;
end waitposedge;

-------------------------------------
-- wait on clock rising edge
-------------------------------------
procedure waitposedge is
begin
wait until clk='1' and clk'event;
end waitposedge;

--------------------------------------
-- read text image data
--------------------------------------
procedure read_image is
file infile : TEXT open read_mode is FILEIN_NAME_C;
variable inline : LINE;
variable tmp_int : INTEGER := 0;
variable y_size : INTEGER := 0;
variable x_size : INTEGER := 0;
variable x_blocks8 : INTEGER := 0;
variable y_blocks8 : INTEGER := 0;
variable matrix : I_MATRIX_TYPE;
variable x_blk_cnt : INTEGER := 0;
variable y_blk_cnt : INTEGER := 0;
variable n_lines_arr : N_LINES_TYPE;
variable line_n : INTEGER := 0;
variable pix_n : INTEGER := 0;
variable x_n : INTEGER := 0;
variable y_n : INTEGER := 0;
begin
READLINE(infile,inline);
READ(inline,y_size);
READLINE(infile,inline);
READ(inline,x_size);

y_blocks8 := y_size / N;
x_blocks8 := x_size / N;

assert MAX_IMAGE_SIZE_X > x_size
report "E02: Input image x size exceeds maximum value!"
severity Failure;

if y_size rem N > 0 then
assert false
report "E03: Image height dimension is not multiply of N!"
severity Failure;
end if;
if x_size rem N > 0 then
assert false
report "E03: Image width dimension is not multiply of N!"
severity Failure;
end if;

for y_blk_cnt in 0 to y_blocks8-1 loop

-- read N input lines and store them to buffer
for y_n in 0 to N-1 loop
READLINE(infile,inline);
HREAD(inline,n_lines_arr(y_n)(0 to x_size*IP_W-1));
end loop;
y_n := 0;
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…