OpenCores
URL https://opencores.org/ocsvn/socgen/socgen/trunk

Subversion Repositories socgen

[/] [socgen/] [trunk/] [Projects/] [opencores.org/] [logic/] [ip/] [micro_bus/] [rtl/] [verilog/] [top.body] - Blame information for rev 133

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 133 jt_eaton
 reg mem_cs_r;
2 131 jt_eaton
 
3
 
4
always@(*)
5
 begin
6 133 jt_eaton
 if(addr_in[15:8] == 8'h00)      mem_cs         = 1'b1;
7 131 jt_eaton
 else                            mem_cs         = 1'b0;
8
 end
9
 
10
 
11
always@(posedge clk)
12
 
13
begin
14 133 jt_eaton
     mem_cs_r  <=     mem_cs;
15 131 jt_eaton
end
16
 
17 133 jt_eaton
 
18
assign mem_addr   = addr_in;
19
assign mem_rd     = rd_in;
20
assign mem_wr     = wr_in;
21
assign mem_wdata  = {wdata_in,wdata_in};
22
assign enable     = ~( ext_mem_wait || io_reg_wait  );
23 131 jt_eaton
 
24
 
25
 
26
 
27
 
28
 
29 133 jt_eaton
reg data_cs_r;
30
 
31 131 jt_eaton
always@(*)
32
 begin
33 133 jt_eaton
 if(addr_in[15:12] == 4'b0000)   data_cs           = 1'b1;
34
 else                            data_cs           = 1'b0;
35 131 jt_eaton
 end
36
 
37
always@(posedge clk)
38
 
39 133 jt_eaton
begin
40
     data_cs_r  <=     data_cs;
41
end
42 131 jt_eaton
 
43 133 jt_eaton
assign data_addr            = addr_in[11:1];
44
assign data_rd              = rd_in;
45
assign data_wr              = wr_in;
46
assign data_wdata           = {wdata_in,wdata_in};
47
assign data_be[0]           = !addr_in[0];
48
assign data_be[1]           =  addr_in[0];
49 131 jt_eaton
 
50
 
51
 
52
 
53
 
54
 
55
 
56 133 jt_eaton
reg io_reg_cs_r;
57 131 jt_eaton
 
58
always@(*)
59
 begin
60 133 jt_eaton
 if(addr_in[15:8] == 8'b10000000)   io_reg_cs           = 1'b1;
61
 else                               io_reg_cs           = 1'b0;
62
 end
63 131 jt_eaton
 
64
always@(posedge clk)
65
 
66
begin
67 133 jt_eaton
     io_reg_cs_r  <=     io_reg_cs;
68 131 jt_eaton
end
69
 
70
 
71 133 jt_eaton
assign io_reg_addr            = addr_in[7:0];
72
assign io_reg_rd              = rd_in;
73
assign io_reg_wr              = wr_in;
74
assign io_reg_wdata           = wdata_in;
75 131 jt_eaton
 
76
 
77
 
78
 
79
 
80
 
81 133 jt_eaton
 
82
reg ext_mem_cs_r;
83
 
84 131 jt_eaton
always@(*)
85
 begin
86 133 jt_eaton
 if(addr_in[15:14] == 2'b01)     ext_mem_cs            = 1'b1;
87
 else                            ext_mem_cs            = 1'b0;
88 131 jt_eaton
 end
89
 
90
 
91
always@(posedge clk)
92
 
93
begin
94 133 jt_eaton
     ext_mem_cs_r  <=     ext_mem_cs;
95 131 jt_eaton
end
96
 
97
 
98
 
99 133 jt_eaton
assign ext_mem_addr            = addr_in[13:0];
100
assign ext_mem_rd              = rd_in;
101
assign ext_mem_wr              = wr_in;
102
assign ext_mem_wdata           = {wdata_in,wdata_in};
103 131 jt_eaton
 
104
 
105
 
106
 
107
 
108 133 jt_eaton
reg prog_rom_mem_cs_r;
109 131 jt_eaton
 
110
 
111
always@(*)
112
 begin
113 133 jt_eaton
 if(addr_in[15:12] == 4'b1100)   prog_rom_mem_cs          = 1'b1;
114
 else                            prog_rom_mem_cs          = 1'b0;
115
 end
116 131 jt_eaton
 
117
always@(posedge clk)
118
 
119
begin
120 133 jt_eaton
     prog_rom_mem_cs_r  <=     prog_rom_mem_cs;
121 131 jt_eaton
end
122
 
123
 
124 133 jt_eaton
assign prog_rom_mem_addr            = addr_in[11:0];
125
assign prog_rom_mem_rd              = rd_in;
126
assign prog_rom_mem_wr              = wr_in;
127
assign prog_rom_mem_wdata           = {wdata_in,wdata_in};
128 131 jt_eaton
 
129
 
130
 
131
 
132
 
133
 
134
 
135
 
136
 
137 133 jt_eaton
reg sh_prog_rom_mem_cs_r;
138 131 jt_eaton
 
139
 
140
always@(*)
141
 begin
142
 if(addr_in[15:12] == 4'b1111)  sh_prog_rom_mem_cs         = 1'b1;
143
 else                           sh_prog_rom_mem_cs         = 1'b0;
144
 end
145
 
146
 
147 133 jt_eaton
always@(posedge clk)
148
 
149
begin
150
     sh_prog_rom_mem_cs_r  <=     sh_prog_rom_mem_cs;
151
end
152
 
153 131 jt_eaton
assign sh_prog_rom_mem_addr            = addr_in[11:0];
154
assign sh_prog_rom_mem_rd              = rd_in;
155
assign sh_prog_rom_mem_wr              = wr_in;
156
assign sh_prog_rom_mem_wdata           = {wdata_in,wdata_in};
157
 
158
 
159
 
160
 
161 133 jt_eaton
 
162
 
163
 
164
 
165 131 jt_eaton
always@(*)
166 133 jt_eaton
if ( mem_cs_r )                   rdata_out = mem_rdata;
167 131 jt_eaton
else
168 133 jt_eaton
if ( data_cs_r )                  rdata_out = data_rdata;
169 131 jt_eaton
else
170 133 jt_eaton
if ( prog_rom_mem_cs_r )          rdata_out = prog_rom_mem_rdata;
171 131 jt_eaton
else
172 133 jt_eaton
if ( io_reg_cs_r )                rdata_out = io_reg_rdata;
173 131 jt_eaton
else
174 133 jt_eaton
if ( sh_prog_rom_mem_cs_r )       rdata_out = sh_prog_rom_mem_rdata;
175
else                              rdata_out = ext_mem_rdata;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.