-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathswitch.sv
28 lines (26 loc) · 929 Bytes
/
switch.sv
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
`include "HEAD.svh"
module Switch (
input clk,
input rst,
input SwitchCtrlLow,
input SwitchCtrlMid,
input SwitchCtrlHigh,
input [23:0] switch_rdata,
output [15:0] switch_wdata // 传入给memorio的data
);
reg [15:0] sw_data;
assign switch_wdata = sw_data;
always @(negedge clk or posedge rst) begin
if (rst) begin
sw_data <= 0;
end else if (SwitchCtrlLow) begin
sw_data[15:0] <= {8'h00, switch_rdata[7:0]}; // data output,lower 8 bits extended with zero
end else if (SwitchCtrlMid) begin
sw_data[15:0] <= {8'h00, switch_rdata[15:8]}; //data output, mid 8 bits extended with zero
end else if (SwitchCtrlHigh == 1'b1) begin
sw_data[15:0] <= {8'h00, switch_rdata[23:16]}; //data output, upper 8 bits extended with zero
end else begin
sw_data <= sw_data;
end
end
endmodule