-- system
signal sys_clk, sys_res_n : std_logic;
-- history
- signal p_rw, p_rget, p_rdone, p_wtake, p_wdone, p_finished : std_logic;
+ signal p_rget, p_rdone, p_wtake, p_wdone, p_finished : std_logic;
signal p_read, p_write : hbyte;
- signal p_spalte : hspalte;
-
- -- alu
- signal opcode : alu_ops;
- signal op1, op2, op3 : csigned;
- signal do_calc, calc_done : std_logic;
-
--scanner
signal do_it : std_logic;
signal finished : std_logic;
signal stop : boolean := false;
begin
- inst : entity work.parser(beh)
- port map
- (
+ inst : parser
+ port map (
sys_clk => sys_clk,
sys_res_n => sys_res_n,
- p_rw => p_rw,
- p_spalte => p_spalte,
+ -- history
p_rget => p_rget,
p_rdone => p_rdone,
p_read => p_read,
p_wdone => p_wdone,
p_write => p_write,
p_finished => p_finished,
- -- ALU
- opcode => opcode,
- op1 => op1,
- op2 => op2,
- op3 => op3,
- do_calc => do_calc,
- calc_done => calc_done,
- -- TODO: calc_error : in std_logic;
-- Scanner
do_it => do_it,
finished => finished
);
- instalu : entity work.alu(beh)
- port map
- (
- sys_clk => sys_clk,
- sys_res_n => sys_res_n,
- do_calc => do_calc,
- calc_done => calc_done,
- op1 => op1,
- op2 => op2,
- op3 => op3,
- opcode => opcode
- );
-
process
begin
sys_clk <= '0';
i := 1;
f_loop : while not endfile(f) loop
- realresult := (71 => character'val(0), others => character'val(32));
+ realresult := (HSPALTE_MAX+1 => nul, others => ' ');
f1_loop : while not endfile(f) loop
readline (f, l);
- input := (others => character'val(0));
- if (l'length <= 72) then
+ input := (others => nul);
+ if (l'length <= HSPALTE_MAX+1) then
input(1 to l'length) := l.all;
if (input(1) = '#') then
next f1_loop;
f2_loop : while not endfile(f) loop
readline (f, l);
- expectedresult := (others => character'val(0));
- if (l'length <= 72) then
+ expectedresult := (others => nul);
+ if (l'length <= HSPALTE_MAX+1) then
expectedresult(1 to l'length) := l.all;
if (expectedresult(1) = '#') then
next f2_loop;
-- ergebnis string richtig formatieren
hstrtmp := expectedresult;
- expectedresult := (71 => character'val(0), others => character'val(32));
- for x in 1 to 70 loop
- if hstrtmp(x) /= character'val(0) then
- expectedresult((70-y) + x) := hstrtmp(x);
+ expectedresult := (HSPALTE_MAX+1 => nul, others => ' ');
+ for x in 1 to HSPALTE_MAX loop
+ if hstrtmp(x) /= nul then
+ expectedresult((HSPALTE_MAX-y) + x) := hstrtmp(x);
end if;
end loop;
icwait(sys_clk, 5);
do_it <= '1';
run_tc := true;
- j := 1; k := 70;
+ j := 1; k := HSPALTE_MAX;
while run_tc loop
wait on p_rget, p_wtake, p_finished, finished;