|
|
- library ieee;
- use ieee.std_logic_1164.all;
- use ieee.numeric_std.all;
-
-
-
- entity WishBoneCheckerE is
- port (
- --+ wishbone system if
- WbRst_i : in std_logic;
- WbClk_i : in std_logic;
- --+ wishbone outputs
- WbMCyc_i : in std_logic;
- WbMStb_i : in std_logic;
- WbMWe_i : in std_logic;
- WbMAdr_i : in std_logic_vector;
- WbMDat_i : in std_logic_vector;
- --+ wishbone inputs
- WbSDat_i : in std_logic_vector;
- WbSAck_i : in std_logic;
- WbSErr_i : in std_logic
- );
- end entity WishBoneCheckerE;
-
-
-
- architecture check of WishBoneCheckerE is
-
- begin
-
-
- -- psl default clock is rising_edge(WbClk_i);
- --
- -- Wishbone protocol checks
- --
- -- psl property initialize(boolean init_state) is
- -- always ({WbRst_i} |=> {init_state[+] && {WbRst_i[*]; not(WbRst_i)}});
- --
- -- psl RULE_3_00 : assert initialize(not(WbMCyc_i) and not(WbMStb_i) and not(WbMWe_i))
- -- report "Wishbone rule 3.00 violated";
- --
- -- psl property reset_signal is
- -- always {not(WbRst_i); WbRst_i} |=> {(WbRst_i and not(WbClk_i))[*]; WbRst_i and WbClk_i};
- --
- -- psl RULE_3_05 : assert reset_signal
- -- report "Wishbone rule 3.05 violated";
- --
- -- -- psl property master_cycle_signal(boolean master_strobe, master_cyc) is
- -- -- always {master_strobe} |-> {master_cyc[+] && {not(master_strobe)[->]:WbClk_i}};
- -- --
- -- -- psl RULE_3_25 : assert master_cycle_signal(WbMStb_i, WbMCyc_i)
- -- -- report "Wishbone rule 3.25 violated";
-
-
- end architecture check;
|