Library of reusable VHDL components
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.5 KiB

  1. library ieee;
  2. use ieee.std_logic_1164.all;
  3. use ieee.numeric_std.all;
  4. entity WishBoneCheckerE is
  5. port (
  6. --+ wishbone system if
  7. WbRst_i : in std_logic;
  8. WbClk_i : in std_logic;
  9. --+ wishbone outputs
  10. WbMCyc_i : in std_logic;
  11. WbMStb_i : in std_logic;
  12. WbMWe_i : in std_logic;
  13. WbMAdr_i : in std_logic_vector;
  14. WbMDat_i : in std_logic_vector;
  15. --+ wishbone inputs
  16. WbSDat_i : in std_logic_vector;
  17. WbSAck_i : in std_logic;
  18. WbSErr_i : in std_logic
  19. );
  20. end entity WishBoneCheckerE;
  21. architecture check of WishBoneCheckerE is
  22. begin
  23. -- psl default clock is rising_edge(WbClk_i);
  24. --
  25. -- Wishbone protocol checks
  26. --
  27. -- psl property initialize(boolean init_state) is
  28. -- always ({WbRst_i} |=> {init_state[+] && {WbRst_i[*]; not(WbRst_i)}});
  29. --
  30. -- psl RULE_3_00 : assert initialize(not(WbMCyc_i) and not(WbMStb_i) and not(WbMWe_i))
  31. -- report "Wishbone rule 3.00 violated";
  32. --
  33. -- psl property reset_signal is
  34. -- always {not(WbRst_i); WbRst_i} |=> {(WbRst_i and not(WbClk_i))[*]; WbRst_i and WbClk_i};
  35. --
  36. -- psl RULE_3_05 : assert reset_signal
  37. -- report "Wishbone rule 3.05 violated";
  38. --
  39. -- -- psl property master_cycle_signal(boolean master_strobe, master_cyc) is
  40. -- -- always {master_strobe} |-> {master_cyc[+] && {not(master_strobe)[->]:WbClk_i}};
  41. -- --
  42. -- -- psl RULE_3_25 : assert master_cycle_signal(WbMStb_i, WbMCyc_i)
  43. -- -- report "Wishbone rule 3.25 violated";
  44. end architecture check;