1. /*
    2. -- ============================================================================
    3. -- FILE NAME : bus_addr_dec.v
    4. -- DESCRIPTION : 地址解码器
    5. -- ----------------------------------------------------------------------------
    6. -- Revision Date Coding_by Comment
    7. -- 1.0.0 2011/06/27 suito 新规作成
    8. -- ============================================================================
    9. */
    10. /********** 通用头文件 **********/
    11. `include "nettype.h"
    12. `include "stddef.h"
    13. `include "global_config.h"
    14. /********** 单个头文件 **********/
    15. `include "bus.h"
    16. /********** 模块 **********/
    17. module bus_addr_dec (
    18. /********** 地址 **********/
    19. input wire [`WordAddrBus] s_addr, // 地址
    20. /********** 片选 **********/
    21. output reg s0_cs_, // 0号总线从属
    22. output reg s1_cs_, // 1号总线从属
    23. output reg s2_cs_, // 2号总线从属
    24. output reg s3_cs_, // 3号总线从属
    25. output reg s4_cs_, // 4号总线从属
    26. output reg s5_cs_, // 5号总线从属
    27. output reg s6_cs_, // 6号总线从属
    28. output reg s7_cs_ // 7号总线从属
    29. );
    30. /********** 总线从属的索引 **********/
    31. wire [`BusSlaveIndexBus] s_index = s_addr[`BusSlaveIndexLoc];
    32. /********** 总线从属多路复用器 **********/
    33. always @(*) begin
    34. /* 初始化片选信号 */
    35. s0_cs_ = `DISABLE_;
    36. s1_cs_ = `DISABLE_;
    37. s2_cs_ = `DISABLE_;
    38. s3_cs_ = `DISABLE_;
    39. s4_cs_ = `DISABLE_;
    40. s5_cs_ = `DISABLE_;
    41. s6_cs_ = `DISABLE_;
    42. s7_cs_ = `DISABLE_;
    43. /* 选择地址对应的从属 */
    44. case (s_index)
    45. `BUS_SLAVE_0 : begin // 0号总线从属
    46. s0_cs_ = `ENABLE_;
    47. end
    48. `BUS_SLAVE_1 : begin // 1号总线从属
    49. s1_cs_ = `ENABLE_;
    50. end
    51. `BUS_SLAVE_2 : begin // 2号总线从属
    52. s2_cs_ = `ENABLE_;
    53. end
    54. `BUS_SLAVE_3 : begin // 3号总线从属
    55. s3_cs_ = `ENABLE_;
    56. end
    57. `BUS_SLAVE_4 : begin // 4号总线从属
    58. s4_cs_ = `ENABLE_;
    59. end
    60. `BUS_SLAVE_5 : begin // 5号总线从属
    61. s5_cs_ = `ENABLE_;
    62. end
    63. `BUS_SLAVE_6 : begin // 6号总线从属
    64. s6_cs_ = `ENABLE_;
    65. end
    66. `BUS_SLAVE_7 : begin // 7号总线从属
    67. s7_cs_ = `ENABLE_;
    68. end
    69. endcase
    70. end
    71. endmodule