-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathSignalSelect.v
More file actions
61 lines (57 loc) · 1.76 KB
/
SignalSelect.v
File metadata and controls
61 lines (57 loc) · 1.76 KB
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////
// IonControl 1.0: Copyright 2016 Sandia Corporation
// This Software is released under the GPL license detailed
// in the file "license.txt" in the top-level pyGSTi directory
//////////////////////////////////////////////////////////////////
module SignalSelect(
input wire clk,
input wire [bitwidth*channels-1:0] signal_in,
input wire [channels-1:0] available_in,
input wire [7:0] channel_select,
output reg [bitwidth-1:0] signal_out,
output reg available_out
);
parameter bitwidth = 16;
parameter channels = 8;
always @(posedge clk) begin
case (channel_select)
default: begin
signal_out[bitwidth-1:0] <= 0;
available_out <= 0;
end
8'h0: begin
signal_out[bitwidth-1:0] <= signal_in[ 0*bitwidth +: bitwidth ];
available_out <= available_in[0];
end
8'h1: begin
signal_out[bitwidth-1:0] <= signal_in[ 1*bitwidth +: bitwidth ];
available_out <= available_in[1];
end
8'h2: begin
signal_out[bitwidth-1:0] <= signal_in[ 2*bitwidth +: bitwidth ];
available_out <= available_in[2];
end
8'h3: begin
signal_out[bitwidth-1:0] <= signal_in[ 3*bitwidth +: bitwidth ];
available_out <= available_in[3];
end
8'h4: begin
signal_out[bitwidth-1:0] <= signal_in[ 4*bitwidth +: bitwidth ];
available_out <= available_in[4];
end
8'h5: begin
signal_out[bitwidth-1:0] <= signal_in[ 5*bitwidth +: bitwidth ];
available_out <= available_in[5];
end
8'h6: begin
signal_out[bitwidth-1:0] <= signal_in[ 6*bitwidth +: bitwidth ];
available_out <= available_in[6];
end
8'h7: begin
signal_out[bitwidth-1:0] <= signal_in[ 7*bitwidth +: bitwidth ];
available_out <= available_in[7];
end
endcase
end
endmodule