Line 35... |
Line 35... |
reg ata_out_muxctrl;
|
reg ata_out_muxctrl;
|
|
|
assign internal_bus_addr[9:0] = bus_addr[11:2];
|
assign internal_bus_addr[9:0] = bus_addr[11:2];
|
assign internal_ata_addr[9:0] = ata_addr[11:2];
|
assign internal_ata_addr[9:0] = ata_addr[11:2];
|
|
|
assign lo_din_bus = bus_din[15:0];
|
assign lo_din_bus = { bus_din[7:0], bus_din[15:8] };
|
assign hi_din_bus = bus_din[31:16];
|
assign hi_din_bus = { bus_din[23:16], bus_din[31:24] };
|
assign lo_din_ata = ata_din;
|
assign lo_din_ata = ata_din;
|
assign hi_din_ata = ata_din;
|
assign hi_din_ata = ata_din;
|
|
|
// pipeline register for ata output mux control
|
// pipeline register for ata output mux control
|
always @(posedge clk) begin
|
always @(posedge clk) begin
|
ata_out_muxctrl <= ata_addr[1];
|
ata_out_muxctrl <= ata_addr[1];
|
end
|
end
|
|
|
assign bus_dout = { hi_dout_bus, lo_dout_bus };
|
assign bus_dout = { hi_dout_bus[7:0], hi_dout_bus[15:8],
|
|
lo_dout_bus[7:0], lo_dout_bus[15:8] };
|
assign ata_dout = ata_out_muxctrl ? lo_dout_ata : hi_dout_ata;
|
assign ata_dout = ata_out_muxctrl ? lo_dout_ata : hi_dout_ata;
|
|
|
assign lo_write_bus = bus_write;
|
assign lo_write_bus = bus_write;
|
assign hi_write_bus = bus_write;
|
assign hi_write_bus = bus_write;
|
assign lo_write_ata = ata_write & ata_addr[1];
|
assign lo_write_ata = ata_write & ata_addr[1];
|