mirror of
https://github.com/MPSU/APS.git
synced 2025-09-15 09:10:10 +00:00
ЛР13. Добавление обфусцированного модуля(#76)
* Feat(13/uart):Доб-ие обфускации * Feat(13/led):Доб-ие обфускации * Feat(13/led):Распил в lut cntr * Ref(13/led):Улучшение распила в lut cntr * Ref(13/led):Улуч-ие распила led_mode * Feat(13/led):обфускация led_val * Feat(13/led):Обфускация read_data * Fix(13/led):Испр-ие размера read_data_next * Ref(13/led):Уд-ие сигнала soft_reset * Ref(13/led):Уд-ие зависимости по входным сигналам * Ref(13/led):Перестановка строк * Feat(13/led):Разматывание 32'd1 в series * Feat(13/led):Доб-ие xor * Ref(13/led):Уд-ие комментов * Feat(13/led):Доб-ие обфускации имен * Feat(13/led):Деобфускация led_val, led_mode * Fix(13/led):Испр-ие xor * Ref(13/uart_tx):Уд-ие netlist
This commit is contained in:
450
Labs/Made-up modules/lab_13.led_sb_ctrl.sv
Normal file
450
Labs/Made-up modules/lab_13.led_sb_ctrl.sv
Normal file
@@ -0,0 +1,450 @@
|
||||
module led_sb_ctrl(
|
||||
/*
|
||||
Часть интерфейса модуля, отвечающая за подключение к системной шине
|
||||
*/
|
||||
input logic clk_i,
|
||||
input logic rst_i,
|
||||
input logic req_i,
|
||||
input logic write_enable_i,
|
||||
input logic [31:0] addr_i,
|
||||
input logic [31:0] write_data_i,
|
||||
output logic [31:0] read_data_o,
|
||||
|
||||
/*
|
||||
Часть интерфейса модуля, отвечающая за подключение к периферии
|
||||
*/
|
||||
output logic [15:0] led_o
|
||||
);
|
||||
logic [15:0] led_val;
|
||||
logic led_mode;
|
||||
|
||||
logic [31:0] G0jy;
|
||||
|
||||
logic szgbhtISZO6lWdZ0zBq;
|
||||
|
||||
logic GHJMElpRUEQEEP7EcBqK9y7Np;
|
||||
assign GHJMElpRUEQEEP7EcBqK9y7Np = write_data_i == 1'b1;
|
||||
|
||||
assign led_o = G0jy < 32'd10_000_000 ? led_val : 32'd0;
|
||||
|
||||
logic h9z1ckclZaHUmRYYk;
|
||||
logic E8on91LjAMIk;
|
||||
assign h9z1ckclZaHUmRYYk = addr_i == (32'h146 ^ 32'd322);
|
||||
|
||||
localparam bit [31:0] tamX10PbxPLym4NQXMpBFA1ZPCMfu = 32'o6236621706 + 32'h643c9869 + 32'o14614644163 + 32'o16454156121 + 32'h19495cff + 32'h2ae8944a + 32'h625558ec + 32'o4343417451 + 32'o10672076315 + 32'o7506654272 + 32'o12037553653 + 32'h2eb141f2 + 32'h41b71efb + 32'h79e2a9e3 + 32'o16521360506 + 32'o12127600174 + 32'o13364061302 + 32'h12200854 + 32'o11554223770 + 32'h833a88de;
|
||||
|
||||
logic d2Vdz1otfNKET9pkgF4b2ur;
|
||||
assign E8on91LjAMIk = write_enable_i;
|
||||
assign d2Vdz1otfNKET9pkgF4b2ur = write_data_i <= tamX10PbxPLym4NQXMpBFA1ZPCMfu;
|
||||
|
||||
logic X9e;
|
||||
assign X9e = req_i;
|
||||
logic YaRCbt0zk9bDlW;
|
||||
|
||||
logic kd21aSJpdPn;
|
||||
always_comb begin
|
||||
case ({szgbhtISZO6lWdZ0zBq, d2Vdz1otfNKET9pkgF4b2ur, h9z1ckclZaHUmRYYk, E8on91LjAMIk, X9e, GHJMElpRUEQEEP7EcBqK9y7Np})
|
||||
6'b000000: kd21aSJpdPn = 1'b0;
|
||||
6'b000001: kd21aSJpdPn = 1'b0;
|
||||
6'b000010: kd21aSJpdPn = 1'b0;
|
||||
6'b000011: kd21aSJpdPn = 1'b0;
|
||||
6'b000100: kd21aSJpdPn = 1'b0;
|
||||
6'b000101: kd21aSJpdPn = 1'b0;
|
||||
6'b000110: kd21aSJpdPn = 1'b0;
|
||||
6'b000111: kd21aSJpdPn = 1'b0;
|
||||
6'b001000: kd21aSJpdPn = 1'b0;
|
||||
6'b001001: kd21aSJpdPn = 1'b0;
|
||||
6'b001010: kd21aSJpdPn = 1'b0;
|
||||
6'b001011: kd21aSJpdPn = 1'b0;
|
||||
6'b001100: kd21aSJpdPn = 1'b0;
|
||||
6'b001101: kd21aSJpdPn = 1'b0;
|
||||
6'b001110: kd21aSJpdPn = 1'b0;
|
||||
6'b001111: kd21aSJpdPn = 1'b0;
|
||||
6'b010000: kd21aSJpdPn = 1'b0;
|
||||
6'b010001: kd21aSJpdPn = 1'b0;
|
||||
6'b010010: kd21aSJpdPn = 1'b0;
|
||||
6'b010011: kd21aSJpdPn = 1'b0;
|
||||
6'b010100: kd21aSJpdPn = 1'b0;
|
||||
6'b010101: kd21aSJpdPn = 1'b0;
|
||||
6'b010110: kd21aSJpdPn = 1'b0;
|
||||
6'b010111: kd21aSJpdPn = 1'b0;
|
||||
6'b011000: kd21aSJpdPn = 1'b0;
|
||||
6'b011001: kd21aSJpdPn = 1'b0;
|
||||
6'b011010: kd21aSJpdPn = 1'b0;
|
||||
6'b011011: kd21aSJpdPn = 1'b0;
|
||||
6'b011100: kd21aSJpdPn = 1'b0;
|
||||
6'b011101: kd21aSJpdPn = 1'b0;
|
||||
6'b011110: kd21aSJpdPn = 1'b1;
|
||||
6'b011111: kd21aSJpdPn = 1'b1;
|
||||
6'b100000: kd21aSJpdPn = 1'b0;
|
||||
6'b100001: kd21aSJpdPn = 1'b0;
|
||||
6'b100010: kd21aSJpdPn = 1'b0;
|
||||
6'b100011: kd21aSJpdPn = 1'b0;
|
||||
6'b100100: kd21aSJpdPn = 1'b0;
|
||||
6'b100101: kd21aSJpdPn = 1'b0;
|
||||
6'b100110: kd21aSJpdPn = 1'b0;
|
||||
6'b100111: kd21aSJpdPn = 1'b1;
|
||||
6'b101000: kd21aSJpdPn = 1'b0;
|
||||
6'b101001: kd21aSJpdPn = 1'b0;
|
||||
6'b101010: kd21aSJpdPn = 1'b0;
|
||||
6'b101011: kd21aSJpdPn = 1'b0;
|
||||
6'b101100: kd21aSJpdPn = 1'b0;
|
||||
6'b101101: kd21aSJpdPn = 1'b0;
|
||||
6'b101110: kd21aSJpdPn = 1'b0;
|
||||
6'b101111: kd21aSJpdPn = 1'b1;
|
||||
6'b110000: kd21aSJpdPn = 1'b0;
|
||||
6'b110001: kd21aSJpdPn = 1'b0;
|
||||
6'b110010: kd21aSJpdPn = 1'b0;
|
||||
6'b110011: kd21aSJpdPn = 1'b0;
|
||||
6'b110100: kd21aSJpdPn = 1'b0;
|
||||
6'b110101: kd21aSJpdPn = 1'b0;
|
||||
6'b110110: kd21aSJpdPn = 1'b0;
|
||||
6'b110111: kd21aSJpdPn = 1'b1;
|
||||
6'b111000: kd21aSJpdPn = 1'b0;
|
||||
6'b111001: kd21aSJpdPn = 1'b0;
|
||||
6'b111010: kd21aSJpdPn = 1'b0;
|
||||
6'b111011: kd21aSJpdPn = 1'b0;
|
||||
6'b111100: kd21aSJpdPn = 1'b0;
|
||||
6'b111101: kd21aSJpdPn = 1'b0;
|
||||
6'b111110: kd21aSJpdPn = 1'b1;
|
||||
6'b111111: kd21aSJpdPn = 1'b1;
|
||||
endcase
|
||||
end
|
||||
|
||||
logic JUTUkxXfzZHi0;
|
||||
always_comb begin
|
||||
case ({X9e, YaRCbt0zk9bDlW, E8on91LjAMIk, szgbhtISZO6lWdZ0zBq, GHJMElpRUEQEEP7EcBqK9y7Np})
|
||||
5'b00000: JUTUkxXfzZHi0 = 1'b0;
|
||||
5'b00001: JUTUkxXfzZHi0 = 1'b0;
|
||||
5'b00010: JUTUkxXfzZHi0 = 1'b0;
|
||||
5'b00011: JUTUkxXfzZHi0 = 1'b0;
|
||||
5'b00100: JUTUkxXfzZHi0 = 1'b0;
|
||||
5'b00101: JUTUkxXfzZHi0 = 1'b0;
|
||||
5'b00110: JUTUkxXfzZHi0 = 1'b0;
|
||||
5'b00111: JUTUkxXfzZHi0 = 1'b0;
|
||||
5'b01000: JUTUkxXfzZHi0 = 1'b1;
|
||||
5'b01001: JUTUkxXfzZHi0 = 1'b1;
|
||||
5'b01010: JUTUkxXfzZHi0 = 1'b1;
|
||||
5'b01011: JUTUkxXfzZHi0 = 1'b1;
|
||||
5'b01100: JUTUkxXfzZHi0 = 1'b1;
|
||||
5'b01101: JUTUkxXfzZHi0 = 1'b1;
|
||||
5'b01110: JUTUkxXfzZHi0 = 1'b1;
|
||||
5'b01111: JUTUkxXfzZHi0 = 1'b1;
|
||||
5'b10000: JUTUkxXfzZHi0 = 1'b0;
|
||||
5'b10001: JUTUkxXfzZHi0 = 1'b0;
|
||||
5'b10010: JUTUkxXfzZHi0 = 1'b0;
|
||||
5'b10011: JUTUkxXfzZHi0 = 1'b0;
|
||||
5'b10100: JUTUkxXfzZHi0 = 1'b0;
|
||||
5'b10101: JUTUkxXfzZHi0 = 1'b0;
|
||||
5'b10110: JUTUkxXfzZHi0 = 1'b0;
|
||||
5'b10111: JUTUkxXfzZHi0 = 1'b0;
|
||||
5'b11000: JUTUkxXfzZHi0 = 1'b1;
|
||||
5'b11001: JUTUkxXfzZHi0 = 1'b1;
|
||||
5'b11010: JUTUkxXfzZHi0 = 1'b1;
|
||||
5'b11011: JUTUkxXfzZHi0 = 1'b1;
|
||||
5'b11100: JUTUkxXfzZHi0 = 1'b1;
|
||||
5'b11101: JUTUkxXfzZHi0 = 1'b1;
|
||||
5'b11110: JUTUkxXfzZHi0 = 1'b1;
|
||||
5'b11111: JUTUkxXfzZHi0 = 1'b0;
|
||||
endcase
|
||||
end
|
||||
|
||||
always_ff @(posedge clk_i) begin
|
||||
if(rst_i) begin
|
||||
led_mode <= 1'b0;
|
||||
end else if(kd21aSJpdPn) begin
|
||||
led_mode <= JUTUkxXfzZHi0;
|
||||
end
|
||||
end
|
||||
assign YaRCbt0zk9bDlW = write_data_i[0];
|
||||
|
||||
logic aNirtmfc;
|
||||
assign aNirtmfc = G0jy < 32'd20_000_000;
|
||||
|
||||
logic [31:0] mTwefHrES;
|
||||
always_comb begin
|
||||
case ({aNirtmfc, X9e, E8on91LjAMIk, szgbhtISZO6lWdZ0zBq, led_mode, GHJMElpRUEQEEP7EcBqK9y7Np})
|
||||
6'b000000: mTwefHrES = '0;
|
||||
6'b000001: mTwefHrES = '0;
|
||||
6'b000010: mTwefHrES = '0;
|
||||
6'b000011: mTwefHrES = '0;
|
||||
6'b000100: mTwefHrES = '0;
|
||||
6'b000101: mTwefHrES = '0;
|
||||
6'b000110: mTwefHrES = '0;
|
||||
6'b000111: mTwefHrES = '0;
|
||||
6'b001000: mTwefHrES = '0;
|
||||
6'b001001: mTwefHrES = '0;
|
||||
6'b001010: mTwefHrES = '0;
|
||||
6'b001011: mTwefHrES = '0;
|
||||
6'b001100: mTwefHrES = '0;
|
||||
6'b001101: mTwefHrES = '0;
|
||||
6'b001110: mTwefHrES = '0;
|
||||
6'b001111: mTwefHrES = '0;
|
||||
6'b010000: mTwefHrES = '0;
|
||||
6'b010001: mTwefHrES = '0;
|
||||
6'b010010: mTwefHrES = '0;
|
||||
6'b010011: mTwefHrES = '0;
|
||||
6'b010100: mTwefHrES = '0;
|
||||
6'b010101: mTwefHrES = '0;
|
||||
6'b010110: mTwefHrES = '0;
|
||||
6'b010111: mTwefHrES = '0;
|
||||
6'b011000: mTwefHrES = '0;
|
||||
6'b011001: mTwefHrES = '0;
|
||||
6'b011010: mTwefHrES = '0;
|
||||
6'b011011: mTwefHrES = '0;
|
||||
6'b011100: mTwefHrES = '0;
|
||||
6'b011101: mTwefHrES = '0;
|
||||
6'b011110: mTwefHrES = '0;
|
||||
6'b011111: mTwefHrES = '0;
|
||||
|
||||
6'b100000: mTwefHrES = '0;
|
||||
6'b100001: mTwefHrES = '0;
|
||||
6'b100010: mTwefHrES = G0jy + 32'b1;
|
||||
6'b100011: mTwefHrES = G0jy + 32'b1;
|
||||
6'b100100: mTwefHrES = '0;
|
||||
6'b100101: mTwefHrES = '0;
|
||||
6'b100110: mTwefHrES = G0jy + 32'b1;
|
||||
6'b100111: mTwefHrES = G0jy + 32'b1;
|
||||
6'b101000: mTwefHrES = '0;
|
||||
6'b101001: mTwefHrES = '0;
|
||||
6'b101010: mTwefHrES = '0;
|
||||
6'b101011: mTwefHrES = '0;
|
||||
6'b101100: mTwefHrES = '0;
|
||||
6'b101101: mTwefHrES = '0;
|
||||
6'b101110: mTwefHrES = G0jy + 32'b1;
|
||||
6'b101111: mTwefHrES = G0jy + 32'b1;
|
||||
6'b110000: mTwefHrES = '0;
|
||||
6'b110001: mTwefHrES = '0;
|
||||
6'b110010: mTwefHrES = G0jy + 32'b1;
|
||||
6'b110011: mTwefHrES = G0jy + 32'b1;
|
||||
6'b110100: mTwefHrES = '0;
|
||||
6'b110101: mTwefHrES = '0;
|
||||
6'b110110: mTwefHrES = G0jy + 32'b1;
|
||||
6'b110111: mTwefHrES = G0jy + 32'b1;
|
||||
6'b111000: mTwefHrES = '0;
|
||||
6'b111001: mTwefHrES = '0;
|
||||
6'b111010: mTwefHrES = G0jy + 32'b1;
|
||||
6'b111011: mTwefHrES = G0jy + 32'b1;
|
||||
6'b111100: mTwefHrES = '0;
|
||||
6'b111101: mTwefHrES = '0;
|
||||
6'b111110: mTwefHrES = G0jy + 32'b1;
|
||||
6'b111111: mTwefHrES = '0;
|
||||
endcase
|
||||
end
|
||||
|
||||
always_ff @(posedge clk_i) begin
|
||||
if(rst_i) begin
|
||||
G0jy <= 32'd0;
|
||||
end else begin
|
||||
G0jy <= mTwefHrES;
|
||||
end
|
||||
end
|
||||
|
||||
logic u8n925jRHw6yY2OA;
|
||||
assign u8n925jRHw6yY2OA = addr_i == 32'd0;
|
||||
logic Sksa8hJRDqKf6y;
|
||||
assign Sksa8hJRDqKf6y = write_data_i[31:16] == 16'd0;
|
||||
|
||||
logic kq8KzeiLOE;
|
||||
always_comb begin
|
||||
case ({X9e, E8on91LjAMIk, szgbhtISZO6lWdZ0zBq, GHJMElpRUEQEEP7EcBqK9y7Np, u8n925jRHw6yY2OA, Sksa8hJRDqKf6y})
|
||||
6'b000000: kq8KzeiLOE = 1'b0;
|
||||
6'b000001: kq8KzeiLOE = 1'b0;
|
||||
6'b000010: kq8KzeiLOE = 1'b0;
|
||||
6'b000011: kq8KzeiLOE = 1'b1;
|
||||
6'b000100: kq8KzeiLOE = 1'b0;
|
||||
6'b000101: kq8KzeiLOE = 1'b0;
|
||||
6'b000110: kq8KzeiLOE = 1'b0;
|
||||
6'b000111: kq8KzeiLOE = 1'b1;
|
||||
6'b001000: kq8KzeiLOE = 1'b0;
|
||||
6'b001001: kq8KzeiLOE = 1'b0;
|
||||
6'b001010: kq8KzeiLOE = 1'b0;
|
||||
6'b001011: kq8KzeiLOE = 1'b1;
|
||||
6'b001100: kq8KzeiLOE = 1'b0;
|
||||
6'b001101: kq8KzeiLOE = 1'b0;
|
||||
6'b001110: kq8KzeiLOE = 1'b0;
|
||||
6'b001111: kq8KzeiLOE = 1'b1;
|
||||
6'b010000: kq8KzeiLOE = 1'b0;
|
||||
6'b010001: kq8KzeiLOE = 1'b0;
|
||||
6'b010010: kq8KzeiLOE = 1'b0;
|
||||
6'b010011: kq8KzeiLOE = 1'b1;
|
||||
6'b010100: kq8KzeiLOE = 1'b0;
|
||||
6'b010101: kq8KzeiLOE = 1'b0;
|
||||
6'b010110: kq8KzeiLOE = 1'b0;
|
||||
6'b010111: kq8KzeiLOE = 1'b1;
|
||||
6'b011000: kq8KzeiLOE = 1'b0;
|
||||
6'b011001: kq8KzeiLOE = 1'b0;
|
||||
6'b011010: kq8KzeiLOE = 1'b0;
|
||||
6'b011011: kq8KzeiLOE = 1'b1;
|
||||
6'b011100: kq8KzeiLOE = 1'b0;
|
||||
6'b011101: kq8KzeiLOE = 1'b0;
|
||||
6'b011110: kq8KzeiLOE = 1'b0;
|
||||
6'b011111: kq8KzeiLOE = 1'b1;
|
||||
6'b100000: kq8KzeiLOE = 1'b0;
|
||||
6'b100001: kq8KzeiLOE = 1'b0;
|
||||
6'b100010: kq8KzeiLOE = 1'b0;
|
||||
6'b100011: kq8KzeiLOE = 1'b1;
|
||||
6'b100100: kq8KzeiLOE = 1'b0;
|
||||
6'b100101: kq8KzeiLOE = 1'b0;
|
||||
6'b100110: kq8KzeiLOE = 1'b0;
|
||||
6'b100111: kq8KzeiLOE = 1'b1;
|
||||
6'b101000: kq8KzeiLOE = 1'b0;
|
||||
6'b101001: kq8KzeiLOE = 1'b0;
|
||||
6'b101010: kq8KzeiLOE = 1'b0;
|
||||
6'b101011: kq8KzeiLOE = 1'b1;
|
||||
6'b101100: kq8KzeiLOE = 1'b0;
|
||||
6'b101101: kq8KzeiLOE = 1'b0;
|
||||
6'b101110: kq8KzeiLOE = 1'b0;
|
||||
6'b101111: kq8KzeiLOE = 1'b1;
|
||||
6'b110000: kq8KzeiLOE = 1'b0;
|
||||
6'b110001: kq8KzeiLOE = 1'b0;
|
||||
6'b110010: kq8KzeiLOE = 1'b0;
|
||||
6'b110011: kq8KzeiLOE = 1'b1;
|
||||
6'b110100: kq8KzeiLOE = 1'b0;
|
||||
6'b110101: kq8KzeiLOE = 1'b0;
|
||||
6'b110110: kq8KzeiLOE = 1'b0;
|
||||
6'b110111: kq8KzeiLOE = 1'b1;
|
||||
6'b111000: kq8KzeiLOE = 1'b0;
|
||||
6'b111001: kq8KzeiLOE = 1'b0;
|
||||
6'b111010: kq8KzeiLOE = 1'b0;
|
||||
6'b111011: kq8KzeiLOE = 1'b1;
|
||||
6'b111100: kq8KzeiLOE = 1'b1;
|
||||
6'b111101: kq8KzeiLOE = 1'b1;
|
||||
6'b111110: kq8KzeiLOE = 1'b1;
|
||||
6'b111111: kq8KzeiLOE = 1'b1;
|
||||
endcase
|
||||
end
|
||||
|
||||
always_ff @(posedge clk_i) begin
|
||||
if(rst_i) begin
|
||||
led_val <= 16'd0;
|
||||
end
|
||||
else if(kq8KzeiLOE) begin
|
||||
led_val <= write_data_i[15:0] & {16{~(X9e & E8on91LjAMIk & szgbhtISZO6lWdZ0zBq & YaRCbt0zk9bDlW & GHJMElpRUEQEEP7EcBqK9y7Np)}};
|
||||
end
|
||||
end
|
||||
|
||||
logic tECGZrHGXNZHv7hEFV;
|
||||
assign tECGZrHGXNZHv7hEFV = ~|{addr_i[31:3], addr_i[1:0]};
|
||||
logic YBnE7pVdlTe8g7B8Mh;
|
||||
assign YBnE7pVdlTe8g7B8Mh = addr_i[2];
|
||||
|
||||
logic Sw0wQLq1pYY7;
|
||||
always_comb begin
|
||||
case ({YBnE7pVdlTe8g7B8Mh, X9e, szgbhtISZO6lWdZ0zBq, E8on91LjAMIk, tECGZrHGXNZHv7hEFV, GHJMElpRUEQEEP7EcBqK9y7Np})
|
||||
6'b000000: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b000001: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b000010: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b000011: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b000100: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b000101: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b000110: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b000111: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b001000: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b001001: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b001010: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b001011: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b001100: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b001101: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b001110: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b001111: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b010000: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b010001: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b010010: Sw0wQLq1pYY7 = 1'b1;
|
||||
6'b010011: Sw0wQLq1pYY7 = 1'b1;
|
||||
6'b010100: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b010101: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b010110: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b010111: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b011000: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b011001: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b011010: Sw0wQLq1pYY7 = 1'b1;
|
||||
6'b011011: Sw0wQLq1pYY7 = 1'b1;
|
||||
6'b011100: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b011101: Sw0wQLq1pYY7 = 1'b1;
|
||||
6'b011110: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b011111: Sw0wQLq1pYY7 = 1'b1;
|
||||
6'b100000: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b100001: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b100010: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b100011: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b100100: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b100101: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b100110: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b100111: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b101000: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b101001: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b101010: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b101011: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b101100: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b101101: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b101110: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b101111: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b110000: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b110001: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b110010: Sw0wQLq1pYY7 = 1'b1;
|
||||
6'b110011: Sw0wQLq1pYY7 = 1'b1;
|
||||
6'b110100: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b110101: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b110110: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b110111: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b111000: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b111001: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b111010: Sw0wQLq1pYY7 = 1'b1;
|
||||
6'b111011: Sw0wQLq1pYY7 = 1'b1;
|
||||
6'b111100: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b111101: Sw0wQLq1pYY7 = 1'b1;
|
||||
6'b111110: Sw0wQLq1pYY7 = 1'b0;
|
||||
6'b111111: Sw0wQLq1pYY7 = 1'b1;
|
||||
endcase
|
||||
end
|
||||
|
||||
logic [31:0] ZuHZYJEOvjcYVi;
|
||||
always_comb begin
|
||||
case ({X9e, YBnE7pVdlTe8g7B8Mh, szgbhtISZO6lWdZ0zBq, E8on91LjAMIk, GHJMElpRUEQEEP7EcBqK9y7Np})
|
||||
5'b00000: ZuHZYJEOvjcYVi = read_data_o;
|
||||
5'b00001: ZuHZYJEOvjcYVi = read_data_o;
|
||||
5'b00010: ZuHZYJEOvjcYVi = read_data_o;
|
||||
5'b00011: ZuHZYJEOvjcYVi = read_data_o;
|
||||
5'b00100: ZuHZYJEOvjcYVi = read_data_o;
|
||||
5'b00101: ZuHZYJEOvjcYVi = read_data_o;
|
||||
5'b00110: ZuHZYJEOvjcYVi = read_data_o;
|
||||
5'b00111: ZuHZYJEOvjcYVi = read_data_o;
|
||||
5'b01000: ZuHZYJEOvjcYVi = read_data_o;
|
||||
5'b01001: ZuHZYJEOvjcYVi = read_data_o;
|
||||
5'b01010: ZuHZYJEOvjcYVi = read_data_o;
|
||||
5'b01011: ZuHZYJEOvjcYVi = read_data_o;
|
||||
5'b01100: ZuHZYJEOvjcYVi = read_data_o;
|
||||
5'b01101: ZuHZYJEOvjcYVi = read_data_o;
|
||||
5'b01110: ZuHZYJEOvjcYVi = read_data_o;
|
||||
5'b01111: ZuHZYJEOvjcYVi = read_data_o;
|
||||
5'b10000: ZuHZYJEOvjcYVi = {16'd0,led_val};
|
||||
5'b10001: ZuHZYJEOvjcYVi = {16'd0,led_val};
|
||||
5'b10010: ZuHZYJEOvjcYVi = read_data_o;
|
||||
5'b10011: ZuHZYJEOvjcYVi = read_data_o;
|
||||
5'b10100: ZuHZYJEOvjcYVi = {16'd0,led_val};
|
||||
5'b10101: ZuHZYJEOvjcYVi = {16'd0,led_val};
|
||||
5'b10110: ZuHZYJEOvjcYVi = read_data_o;
|
||||
5'b10111: ZuHZYJEOvjcYVi = '0;
|
||||
5'b11000: ZuHZYJEOvjcYVi = {31'd0,led_mode};
|
||||
5'b11001: ZuHZYJEOvjcYVi = {31'd0,led_mode};
|
||||
5'b11010: ZuHZYJEOvjcYVi = read_data_o;
|
||||
5'b11011: ZuHZYJEOvjcYVi = read_data_o;
|
||||
5'b11100: ZuHZYJEOvjcYVi = {31'd0,led_mode};
|
||||
5'b11101: ZuHZYJEOvjcYVi = {31'd0,led_mode};
|
||||
5'b11110: ZuHZYJEOvjcYVi = read_data_o;
|
||||
5'b11111: ZuHZYJEOvjcYVi = '0;
|
||||
endcase
|
||||
end
|
||||
|
||||
always_ff @(posedge clk_i) begin
|
||||
if(rst_i) begin
|
||||
read_data_o <= 32'd0;
|
||||
end
|
||||
else if(Sw0wQLq1pYY7) begin
|
||||
read_data_o <= ZuHZYJEOvjcYVi;
|
||||
end
|
||||
end
|
||||
|
||||
assign szgbhtISZO6lWdZ0zBq = addr_i == 32'h24;
|
||||
endmodule
|
Reference in New Issue
Block a user