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] - Diff between revs 131 and 133

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 131 Rev 133
Line 1... Line 1...
 
 reg mem_cs_r;
 
 
 
 
always@(*)
always@(*)
 begin
 begin
 if(addr_in[15:8] == 8'h00)     mem_cs         = 1'b1;
 if(addr_in[15:8] == 8'h00)     mem_cs         = 1'b1;
 else                            mem_cs         = 1'b0;
 else                            mem_cs         = 1'b0;
 end
 end
 
 
 reg CS0_r;
 
 
 
 
 
 
 
always@(posedge clk)
always@(posedge clk)
 
 
begin
begin
     CS0_r  <=     mem_cs;
     mem_cs_r  <=     mem_cs;
end
end
 
 
 
 
 
assign mem_addr   = addr_in;
 
assign mem_rd     = rd_in;
 
assign mem_wr     = wr_in;
 
assign mem_wdata  = {wdata_in,wdata_in};
 
assign enable     = ~( ext_mem_wait || io_reg_wait  );
 
 
 
 
 
 
 
 
 reg mem_cs2;
 
 reg CSP_r;
 
 
 
always@(*)
 
 begin
 
 if(addr_in[15:12] == 4'b1111)  mem_cs2         = 1'b1;
 
 else                            mem_cs2         = 1'b0;
 
 end
 
 
 
always@(posedge clk)
 
     begin
 
     CSP_r  <=     mem_cs2;
 
     end
 
 
 
 
 
 
 
 
 
 
 
 reg mem_cs3;
reg data_cs_r;
 reg CSI_r;
 
 
 
always@(*)
always@(*)
 begin
 begin
 if(addr_in[15:12] == 4'b1000)  mem_cs3         = 1'b1;
 if(addr_in[15:12] == 4'b0000)   data_cs           = 1'b1;
 else                            mem_cs3         = 1'b0;
 else                            data_cs           = 1'b0;
 end
 end
 
 
always@(posedge clk)
always@(posedge clk)
 
 
begin
begin
     CSI_r  <=    mem_cs3 ;
     data_cs_r  <=     data_cs;
end
end
 
 
 
assign data_addr            = addr_in[11:1];
 
assign data_rd              = rd_in;
 
assign data_wr              = wr_in;
 
assign data_wdata           = {wdata_in,wdata_in};
 
assign data_be[0]           = !addr_in[0];
 
assign data_be[1]           =  addr_in[0];
 
 
 
 
 
 
 reg mem_cs4;
 
 reg CSB_r;
 
 
 
 
 
 
 
 
 
 
reg io_reg_cs_r;
 
 
always@(*)
always@(*)
 begin
 begin
 if(addr_in[15:12] == 4'b1100)  mem_cs4          = 1'b1;
 if(addr_in[15:8] == 8'b10000000)   io_reg_cs           = 1'b1;
 else                            mem_cs4          = 1'b0;
 else                               io_reg_cs           = 1'b0;
 end
 end
 
 
always@(posedge clk)
always@(posedge clk)
 
 
begin
begin
     CSB_r  <=     mem_cs4;
     io_reg_cs_r  <=     io_reg_cs;
end
end
 
 
 
 
 
assign io_reg_addr            = addr_in[7:0];
 
assign io_reg_rd              = rd_in;
 
assign io_reg_wr              = wr_in;
 
assign io_reg_wdata           = wdata_in;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 reg mem_cs5;
reg ext_mem_cs_r;
 reg CSE_r;
 
 
 
always@(*)
always@(*)
 begin
 begin
 if(addr_in[15:14] == 2'b01)    mem_cs5         = 1'b1;
 if(addr_in[15:14] == 2'b01)     ext_mem_cs            = 1'b1;
 else                            mem_cs5         = 1'b0;
 else                            ext_mem_cs            = 1'b0;
 end
 end
 
 
 
 
 
 
 
 
always@(posedge clk)
always@(posedge clk)
 
 
begin
begin
     CSE_r  <=     mem_cs5;
     ext_mem_cs_r  <=     ext_mem_cs;
end
end
 
 
 
 
 
 
 
assign ext_mem_addr            = addr_in[13:0];
 
assign ext_mem_rd              = rd_in;
 
assign ext_mem_wr              = wr_in;
 
assign ext_mem_wdata           = {wdata_in,wdata_in};
 
 
 
 
 
 
 
 
 
 
 
reg prog_rom_mem_cs_r;
 
 
 
 
 
 
 
 
 
 
assign mem_addr   = addr_in;
 
assign mem_rd     = rd_in;
 
assign mem_wr     = wr_in;
 
assign mem_wdata  = {wdata_in,wdata_in};
 
assign enable     = ~( ext_mem_wait || io_reg_wait  );
 
 
 
 
 
 
 
reg data_cs_r;
 
 
 
always@(*)
always@(*)
 begin
 begin
 if(addr_in[15:12] == 4'b0000)   data_cs           = 1'b1;
 if(addr_in[15:12] == 4'b1100)   prog_rom_mem_cs          = 1'b1;
 else                            data_cs           = 1'b0;
 else                            prog_rom_mem_cs          = 1'b0;
 end
 end
 
 
always@(posedge clk)
always@(posedge clk)
 
 
begin
begin
     data_cs_r  <=     data_cs;
     prog_rom_mem_cs_r  <=     prog_rom_mem_cs;
end
end
 
 
assign data_addr            = addr_in[11:1];
 
assign data_rd              = rd_in;
 
assign data_wr              = wr_in;
 
assign data_wdata           = {wdata_in,wdata_in};
 
assign data_be[0]           = !addr_in[0];
 
assign data_be[1]           =  addr_in[0];
 
 
 
 
assign prog_rom_mem_addr            = addr_in[11:0];
 
assign prog_rom_mem_rd              = rd_in;
 
assign prog_rom_mem_wr              = wr_in;
 
assign prog_rom_mem_wdata           = {wdata_in,wdata_in};
 
 
 
 
always@(*)
 
 begin
 
 if(addr_in[15:12] == 4'b1000)   io_reg_cs           = 1'b1;
 
 else                            io_reg_cs           = 1'b0;
 
 end
 
assign io_reg_addr            = addr_in[11:0];
 
assign io_reg_rd              = rd_in;
 
assign io_reg_wr              = wr_in;
 
assign io_reg_wdata           = wdata_in;
 
 
 
 
 
always@(*)
 
 begin
 
 if(addr_in[15:14] == 2'b01)     ext_mem_cs            = 1'b1;
 
 else                            ext_mem_cs            = 1'b0;
 
 end
 
 
 
assign ext_mem_addr            = addr_in[13:0];
 
assign ext_mem_rd              = rd_in;
 
assign ext_mem_wr              = wr_in;
 
assign ext_mem_wdata           = {wdata_in,wdata_in};
 
 
 
 
 
 
 
 
 
always@(*)
reg sh_prog_rom_mem_cs_r;
 begin
 
 if(addr_in[15:12] == 4'b1100)   prog_rom_mem_cs          = 1'b1;
 
 else                            prog_rom_mem_cs          = 1'b0;
 
 end
 
 
 
 
 
assign prog_rom_mem_addr            = addr_in[11:0];
 
assign prog_rom_mem_rd              = rd_in;
 
assign prog_rom_mem_wr              = wr_in;
 
assign prog_rom_mem_wdata           = {wdata_in,wdata_in};
 
 
 
 
 
 
 
always@(*)
always@(*)
 begin
 begin
 if(addr_in[15:12] == 4'b1111)  sh_prog_rom_mem_cs         = 1'b1;
 if(addr_in[15:12] == 4'b1111)  sh_prog_rom_mem_cs         = 1'b1;
 else                           sh_prog_rom_mem_cs         = 1'b0;
 else                           sh_prog_rom_mem_cs         = 1'b0;
 end
 end
 
 
 
 
 
always@(posedge clk)
 
 
 
begin
 
     sh_prog_rom_mem_cs_r  <=     sh_prog_rom_mem_cs;
 
end
 
 
assign sh_prog_rom_mem_addr            = addr_in[11:0];
assign sh_prog_rom_mem_addr            = addr_in[11:0];
assign sh_prog_rom_mem_rd              = rd_in;
assign sh_prog_rom_mem_rd              = rd_in;
assign sh_prog_rom_mem_wr              = wr_in;
assign sh_prog_rom_mem_wr              = wr_in;
assign sh_prog_rom_mem_wdata           = {wdata_in,wdata_in};
assign sh_prog_rom_mem_wdata           = {wdata_in,wdata_in};
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
always@(*)
always@(*)
if ( CS0_r )       rdata_out = mem_rdata;
if ( mem_cs_r )                   rdata_out = mem_rdata;
else
else
if ( data_cs_r )   rdata_out = data_rdata;
if ( data_cs_r )   rdata_out = data_rdata;
else
else
if ( CSB_r )       rdata_out = prog_rom_mem_rdata;
if ( prog_rom_mem_cs_r )          rdata_out = prog_rom_mem_rdata;
else
else
if ( CSI_r )       rdata_out = io_reg_rdata;
if ( io_reg_cs_r )                rdata_out = io_reg_rdata;
else
else
if ( CSP_r )       rdata_out = sh_prog_rom_mem_rdata;
if ( sh_prog_rom_mem_cs_r )       rdata_out = sh_prog_rom_mem_rdata;
else               rdata_out = ext_mem_rdata;
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.