library IEEE; use IEEE.std_logic_1164.all; use IEEE.numeric_std.all; use work.common_pkg.all; use work.alu_pkg.all; architecture behaviour of gpm is type gpm_internal is record status : status_rec; end record gpm_internal; signal reg, reg_nxt : gpm_internal; begin syn : process (clk, reset) begin if (reset = RESET_VALUE) then reg.status <= ('0','0','0','0'); elsif rising_edge(clk) then reg <= reg_nxt; end if; end process syn; asyn : process (clk, reset, alu_nxt) begin reg_nxt.status <= alu_nxt.status; end process asyn; psw <= reg.status; end architecture behaviour;