source: PlatformSupport/Deprecated/pcores/SPI_Controller/hdl/verilog/ourspi.v

Last change on this file was 52, checked in by murphpo, 19 years ago

setting mime type on verilog file

File size: 3.4 KB
Line 
1module ourspi (
2    OPB_Clk,
3    rst,
4    opb_abus,
5    opb_be,
6    opb_dbus,
7    opb_rnw,
8    opb_select,
9    opb_seqaddr,
10    sl_dbus,
11    sl_errack,
12    sl_retry,
13    sl_toutsup,
14    sl_xferack,
15    radio1_sclk,
16    radio1_dout,
17    radio1_cs,
18    radio2_sclk,
19    radio2_dout,
20    radio2_cs,
21    radio3_sclk,
22    radio3_dout,
23    radio3_cs,
24    radio4_sclk,
25    radio4_dout,
26    radio4_cs,
27    dac1_sclk,
28    dac1_dout,
29    dac1_cs,
30    dac2_sclk,
31    dac2_dout,
32    dac2_cs,
33    dac3_sclk,
34    dac3_dout,
35    dac3_cs,
36    dac4_sclk,
37    dac4_dout,
38    dac4_cs
39);
40
41    parameter C_BASEADDR = 32'h8000_0000, C_HIGHADDR = 32'h8000_00ff;
42
43    input   OPB_Clk;
44    input   rst;
45
46    input   [31:0]  opb_abus;
47    input   [3:0]   opb_be;
48    input   [31:0]  opb_dbus;
49    input   opb_rnw;
50    input   opb_select;
51    input   opb_seqaddr;
52
53    output  [31:0]  sl_dbus;
54    output  sl_errack;
55    output  sl_retry;
56    output  sl_toutsup;
57    output  sl_xferack;
58   
59    output radio1_sclk;
60    output radio1_dout;
61    output radio1_cs;
62    output radio2_sclk;
63    output radio2_dout;
64    output radio2_cs;
65    output radio3_sclk;
66    output radio3_dout;
67    output radio3_cs;
68    output radio4_sclk;
69    output radio4_dout;
70    output radio4_cs;
71    output dac1_sclk;
72    output dac1_dout;
73    output dac1_cs;
74    output dac2_sclk;
75    output dac2_dout;
76    output dac2_cs;
77    output dac3_sclk;
78    output dac3_dout;
79    output dac3_cs;
80    output dac4_sclk;
81    output dac4_dout;
82    output dac4_cs;
83
84
85   
86    wire [4:0] spi_wb_adr_i;
87    wire [31:0] spi_wb_dat_i;
88    wire [31:0] spi_wb_dat_o;
89    wire [3:0] spi_wb_sel_i;
90    wire spi_wb_we_i;
91    wire spi_wb_stb_i;
92    wire spi_wb_cyc_i;
93    wire spi_wb_ack_o;
94    wire spi_wb_err_o;
95    wire spi_wb_int_o;
96   
97    wire [7:0] spi_cs;
98    wire spi_sclk;
99    wire spi_dout;
100   
101    assign radio1_sclk = spi_sclk;
102    assign radio2_sclk = spi_sclk;
103    assign radio3_sclk = spi_sclk;
104    assign radio4_sclk = spi_sclk;
105    assign dac1_sclk = spi_sclk;
106    assign dac2_sclk = spi_sclk;
107    assign dac3_sclk = spi_sclk;
108    assign dac4_sclk = spi_sclk;
109   
110    assign radio1_dout = spi_dout;
111    assign radio2_dout = spi_dout;
112    assign radio3_dout = spi_dout;
113    assign radio4_dout = spi_dout;
114    assign dac1_dout = spi_dout;
115    assign dac2_dout = spi_dout;
116    assign dac3_dout = spi_dout;
117    assign dac4_dout = spi_dout;
118   
119    assign radio1_cs = spi_cs[0];
120    assign radio2_cs = spi_cs[1];
121    assign radio3_cs = spi_cs[2];
122    assign radio4_cs = spi_cs[3];
123    assign dac1_cs = spi_cs[4];
124    assign dac2_cs = spi_cs[5];
125    assign dac3_cs = spi_cs[6];
126    assign dac4_cs = spi_cs[7];
127
128    spi_top wishboneSPIController (
129        .wb_clk_i(OPB_Clk),
130        .wb_rst_i(rst),
131        .wb_adr_i(spi_wb_adr_i),
132        .wb_dat_i(spi_wb_dat_i),
133        .wb_dat_o(spi_wb_dat_o),
134        .wb_sel_i(spi_wb_sel_i),
135        .wb_we_i(spi_wb_we_i),
136        .wb_stb_i(spi_wb_stb_i),
137        .wb_cyc_i(spi_wb_cyc_i),
138        .wb_ack_o(spi_wb_ack_o),
139        .wb_err_o(spi_wb_err_o),
140        .wb_int_o(spi_wb_int_o),
141
142        // SPI signals
143        .ss_pad_o(spi_cs),
144        .sclk_pad_o(spi_sclk),
145        .mosi_pad_o(spi_dout),
146        .miso_pad_i(1'b0)
147    );
148
149
150
151    opb2wb opb2wb_0 (
152        .OPB_Clk(OPB_Clk),
153        .rst(rst),
154        .opb_abus(opb_abus),
155        .opb_be(opb_be),
156        .opb_dbus(opb_dbus),
157        .opb_rnw(opb_rnw),
158        .opb_select(opb_select),
159        .opb_seqaddr(opb_seqaddr),
160        .sl_dbus(sl_dbus),
161        .sl_errack(sl_errack),
162        .sl_retry(sl_retry),
163        .sl_toutsup(sl_toutsup),
164        .sl_xferack(sl_xferack),
165
166        .wb_data_o(spi_wb_dat_i),
167        .wb_data_i(spi_wb_dat_o),
168        .wb_addr_o(spi_wb_adr_i),
169        .wb_cyc_o(spi_wb_cyc_i),
170        .wb_stb_o(spi_wb_stb_i),
171        .wb_sel_o(spi_wb_sel_i),
172        .wb_we_o(spi_wb_we_i),
173        .wb_ack_i(spi_wb_ack_o),
174        .wb_err_i(spi_wb_err_o),
175        .wb_rty_i(1'b0)
176    );
177
178endmodule
Note: See TracBrowser for help on using the repository browser.