From 425d9bb4acea3237a482cff403f2e432c55b30d3 Mon Sep 17 00:00:00 2001 From: Andrei Solodovnikov Date: Sun, 17 Dec 2023 19:47:31 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=B8=D1=87?= =?UTF-8?q?=D0=BA=D0=B8=2014=D0=BE=D0=B9=20=D0=BB=D0=B0=D0=B1=D1=8B=20?= =?UTF-8?q?=D0=B8=20=D0=BF=D1=83=D1=81=D1=82=D0=BE=D0=B3=D0=BE=20=D1=80?= =?UTF-8?q?=D0=B8=D0=B4=D0=BC=D0=B8=2015-=D0=BE=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/SUMMARY.md | 2 + .../Labs/lab_14_programming_device/fig_02.png | Bin 0 -> 14976 bytes .../fig_03.drawio.png | Bin 0 -> 65208 bytes .../fig_04.drawio.png | Bin 0 -> 306506 bytes Labs/14. Programming device/README.md | 509 +++++++++++++++++ Labs/14. Programming device/flash.py | 83 +++ Labs/14. Programming device/tb_bluster.sv | 540 ++++++++++++++++++ Labs/14. Programming device/tb_top_asic.sv | 453 +++++++++++++++ Labs/15. Coremark/README.md | 2 + Labs/README.md | 9 + 10 files changed, 1598 insertions(+) create mode 100644 .pic/Labs/lab_14_programming_device/fig_02.png create mode 100644 .pic/Labs/lab_14_programming_device/fig_03.drawio.png create mode 100644 .pic/Labs/lab_14_programming_device/fig_04.drawio.png create mode 100644 Labs/14. Programming device/README.md create mode 100644 Labs/14. Programming device/flash.py create mode 100644 Labs/14. Programming device/tb_bluster.sv create mode 100644 Labs/14. Programming device/tb_top_asic.sv create mode 100644 Labs/15. Coremark/README.md diff --git a/.github/SUMMARY.md b/.github/SUMMARY.md index fc1a624..5d03c73 100644 --- a/.github/SUMMARY.md +++ b/.github/SUMMARY.md @@ -21,6 +21,8 @@ - [Лабораторная №11. Интеграция подсистемы прерываний](Labs/11.%20Interrupt%20integration/README.md) - [Лабораторная №12. Периферийные устройства](Labs/12.%20Peripheral%20units/README.md) - [Лабораторная №13. Программирование](Labs/13.%20Programming/README.md) +- [Лабораторная №14. Программатор](Labs/14.%20Programming%20device/README.md) +- [Лабораторная №15. Оценка производительности](Labs/14.%20Coremark/README.md) --- diff --git a/.pic/Labs/lab_14_programming_device/fig_02.png b/.pic/Labs/lab_14_programming_device/fig_02.png new file mode 100644 index 0000000000000000000000000000000000000000..46f4673caa7058e256bb532765224f0ca70fdad1 GIT binary patch literal 14976 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 R;fR9bn5Mo)xw>8C{{cWZWc~mE literal 0 HcmV?d00001 diff --git a/.pic/Labs/lab_14_programming_device/fig_04.drawio.png b/.pic/Labs/lab_14_programming_device/fig_04.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..8e5c4d7fb999d9294fd279d26b458b0e0fb9832a GIT binary patch literal 306506 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%0DH&fug!#v}!Z&wEAw9@srtVo2`pYp8dX$O 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 bytes: + res_bytes=b'' + with open(fname, 'r') as fp: + for line in fp: + if line[0] == '@': + continue + for word in line.split(): + res_bytes += bytes(int(word,base).to_bytes(len(word)//word_size,"little")) + return res_bytes[::-1] + +def flash(data: bytes, port: serial.Serial, mem_name: str): + assert(len(mem_name) == 4) + + if data: + data_len = len(data) + else: + data_len = 0 + data_len_bytes = data_len.to_bytes(4, "big") + port.write(data_len_bytes) + + data_len_ack = port.read(4) + print(int.from_bytes(data_len_ack,"big")) + assert(data_len_ack == data_len_bytes) + + if(data): + port.write(data) + + print("finished write {} mem".format(mem_name)) + + data_flash_ack = port.read(10) + data_flash_ack_str = data_flash_ack.decode("ascii") + print(data_flash_ack_str) + assert(data_flash_ack_str == "{} done\n".format(mem_name)) + + + +# Main block + +inst_file = args.instr +data_file = args.data +tiff_file = args.tiff +com = args.comport + +instr = parse_file(inst_file) + +if data_file: + data = parse_file(data_file) +else: + data = b'' + +if tiff_file: + tiff = parse_file(tiff_file, 2, 8) +else: + tiff = b'' + + +ser = serial.Serial( + port=com, + baudrate=115200, + parity=serial.PARITY_EVEN, + stopbits=serial.STOPBITS_ONE, + bytesize=serial.EIGHTBITS, + timeout=None +) + +init_msg = ser.read(6) +print(init_msg.decode("ascii")) +assert(init_msg == b'ready\n') + +flash(instr, ser, "inst") +flash(data, ser, "data") +flash(tiff, ser, "tiff") diff --git a/Labs/14. Programming device/tb_bluster.sv b/Labs/14. Programming device/tb_bluster.sv new file mode 100644 index 0000000..e9b6696 --- /dev/null +++ b/Labs/14. Programming device/tb_bluster.sv @@ -0,0 +1,540 @@ +module tb_blaster(); + + logic clk_i; + logic rst_i; + logic rx_i; + logic tx_o; + logic [ 31:0] instr_addr_o; + logic [ 31:0] instr_wdata_o; + logic instr_write_enable_o; + logic [ 31:0] data_addr_o; + logic [ 31:0] data_wdata_o; + logic data_write_enable_o; + logic [ 31:0] tiff_addr_o; + logic [127:0] tiff_wdata_o; + logic tiff_write_enable_o; + logic core_reset_o; + + logic rx_busy, rx_valid, tx_busy, tx_valid; + logic [7:0] rx_data, tx_data; + + logic [31:0] instr_addr_i; + logic [31:0] instr_rdata_o; + logic [31:0] tiff_addr_i; + logic [127:0] tiff_rdata_o; + + logic [3:0] [7:0] flash_addr; + logic [3:0] [7:0] instr_size; + logic [3:0] [7:0] instr_size_ack; + logic [3:0] [7:0] data_size; + logic [3:0] [7:0] data_size_ack; + logic [3:0] [7:0] tiff_size; + logic [3:0] [7:0] tiff_size_ack; + + logic [7:0] instr_mem_byte[$]; + logic [7:0] data_mem_byte[$]; + logic [7:0] tiff_mem_byte [$]; + + localparam INIT_MSG_SIZE = 40; + localparam MSG_DONE_SIZE = 57; + localparam MSG_ACK_SIZE = 4; + + byte init_str[INIT_MSG_SIZE]; + byte done_str[MSG_DONE_SIZE]; + + always #50ns clk_i = !clk_i; + + initial begin + $timeformat(-9, 2, " ns", 3); + clk_i = 0; + rst_i <= 0; + @(posedge clk_i); + rst_i <= 1; + repeat(2) @(posedge clk_i); + rst_i <= 0; + instr_size = instr_mem_byte.size(); + data_size = data_mem_byte.size(); + tiff_size = tiff_mem_byte.size(); + +/* + INIT_MSG +*/ + for(int i = 0; i < INIT_MSG_SIZE; i++) begin + @(posedge clk_i); + while(!rx_valid)@(posedge clk_i); + init_str[i] = rx_data; + end + $display("%s", init_str); + wait(tx_o); +// ---------------------------------------------- + + repeat(10000)@(posedge clk_i); + +/* + RCV_INSTR_SIZE +*/ + for(int i = MSG_ACK_SIZE-1; i >= 0; i--) begin + tx_data = instr_size[i]; + tx_valid = 1'b1; + @(posedge clk_i); + tx_valid = 1'b0; + @(posedge clk_i); + while(tx_busy) @(posedge clk_i); + end +// ---------------------------------------------- + + +/* + INSTR_SIZE_ACK +*/ + for(int i = MSG_ACK_SIZE-1; i >= 0; i--) begin + while(!rx_valid) @(posedge clk_i); + instr_size_ack[i] = rx_data; + @(posedge clk_i); + end + $display("%h", instr_size); + assert(instr_size_ack == instr_size) + else $error("ack: %0h, size: %0h", instr_size_ack, instr_size); + wait(tx_o); +// ---------------------------------------------- + + + +/* + INSTR_FLASH +*/ + if(instr_size)repeat(10000)@(posedge clk_i); + for(int i = instr_size-1; i >=0; i--) begin + tx_data = instr_mem_byte[i]; + tx_valid = 1'b1; + @(posedge clk_i); + tx_valid = 1'b0; + @(posedge clk_i); + while(tx_busy) @(posedge clk_i); + end +// ---------------------------------------------- + + +/* + INSTR_FLASH_ACK +*/ + for(int i = 0; i < MSG_DONE_SIZE; i++) begin + @(posedge clk_i); + while(!rx_valid)@(posedge clk_i); + done_str[i] = rx_data; + end + $display("%t %s", $time, done_str); + wait(tx_o); +// ---------------------------------------------- + + + + repeat(10000)@(posedge clk_i); + +/* + RCV_NEXT_COMMAND +*/ flash_addr = 32'h4000; + for(int i = MSG_ACK_SIZE-1; i >= 0; i--) begin + tx_data = flash_addr[i]; + tx_valid = 1'b1; + @(posedge clk_i); + tx_valid = 1'b0; + @(posedge clk_i); + while(tx_busy) @(posedge clk_i); + end + + +/* + INIT_MSG +*/ + for(int i = 0; i < INIT_MSG_SIZE; i++) begin + @(posedge clk_i); + while(!rx_valid)@(posedge clk_i); + init_str[i] = rx_data; + end + $display("%s", init_str); + wait(tx_o); +// ---------------------------------------------- + +/* + RCV_DATA_SIZE +*/ + for(int i = MSG_ACK_SIZE-1; i >= 0; i--) begin + tx_data = data_size[i]; + tx_valid = 1'b1; + @(posedge clk_i); + tx_valid = 1'b0; + @(posedge clk_i); + while(tx_busy) @(posedge clk_i); + end +// ---------------------------------------------- + + +/* + DATA_SIZE_ACK +*/ + for(int i = MSG_ACK_SIZE-1; i >= 0; i--) begin + while(!rx_valid) @(posedge clk_i); + data_size_ack[i] = rx_data; + @(posedge clk_i); + end + $display("%h", data_size); + assert(data_size_ack == data_size) + else $error("ack: %0h, size: %0h", data_size_ack, data_size); + wait(tx_o); +// ---------------------------------------------- + + +/* + DATA_FLASH +*/ + if(data_size)repeat(10000)@(posedge clk_i); + for(int i = data_size-1; i >=0; i--) begin + tx_data = data_mem_byte[i]; + tx_valid = 1'b1; + @(posedge clk_i); + tx_valid = 1'b0; + @(posedge clk_i); + while(tx_busy) @(posedge clk_i); + end +// ---------------------------------------------- + + +/* + DATA_FLASH_ACK +*/ + for(int i = 0; i < MSG_DONE_SIZE; i++) begin + @(posedge clk_i); + while(!rx_valid)@(posedge clk_i); + done_str[i] = rx_data; + end + $display("%t %s", $time, done_str); + wait(tx_o); +// ---------------------------------------------- + repeat(10000)@(posedge clk_i); + + +/* + RCV_NEXT_COMMAND +*/ flash_addr = 32'h0800_0000; + for(int i = MSG_ACK_SIZE-1; i >= 0; i--) begin + tx_data = flash_addr[i]; + tx_valid = 1'b1; + @(posedge clk_i); + tx_valid = 1'b0; + @(posedge clk_i); + while(tx_busy) @(posedge clk_i); + end + +/* + INIT_MSG +*/ + for(int i = 0; i < INIT_MSG_SIZE; i++) begin + @(posedge clk_i); + while(!rx_valid)@(posedge clk_i); + init_str[i] = rx_data; + end + $display("%s", init_str); + wait(tx_o); +// ---------------------------------------------- + +/* + RCV_TIFF_SIZE +*/ + for(int i = MSG_ACK_SIZE-1; i >= 0; i--) begin + tx_data = tiff_size[i]; + tx_valid = 1'b1; + @(posedge clk_i); + tx_valid = 1'b0; + @(posedge clk_i); + while(tx_busy) @(posedge clk_i); + end +// ---------------------------------------------- + + +/* + TIFF_SIZE_ACK +*/ + for(int i = MSG_ACK_SIZE-1; i >= 0; i--) begin + while(!rx_valid) @(posedge clk_i); + tiff_size_ack[i] = rx_data; + @(posedge clk_i); + end + $display("%h", tiff_size); + assert(tiff_size_ack == tiff_size) + else $display("ack: %0h, size: %0h", tiff_size_ack, tiff_size); + wait(tx_o); +// ---------------------------------------------- + + + +/* + TIFF_FLASH +*/ + if(tiff_size)repeat(10000)@(posedge clk_i); + for(int i = tiff_size-1; i >=0; i--) begin + tx_data = tiff_mem_byte[i]; + tx_valid = 1'b1; + @(posedge clk_i); + tx_valid = 1'b0; + @(posedge clk_i); + while(tx_busy) @(posedge clk_i); + end +// ---------------------------------------------- + + +/* + TIFF_FLASH_ACK, FINISH +*/ + for(int i = 0; i < MSG_DONE_SIZE; i++) begin + @(posedge clk_i); + while(!rx_valid)@(posedge clk_i); + done_str[i] = rx_data; + end + $display("%t %s", $time, done_str); + wait(!rx_busy) + @(posedge clk_i) + +/* + RCV_NEXT_COMMAND +*/ flash_addr = 32'h0000_0000; + for(int i = MSG_ACK_SIZE-1; i >= 0; i--) begin + tx_data = flash_addr[i]; + tx_valid = 1'b1; + @(posedge clk_i); + tx_valid = 1'b0; + @(posedge clk_i); + while(tx_busy) @(posedge clk_i); + end + + assert(!pc_reset_o) + else $error("reset is not equal zero at the end"); +// ---------------------------------------------- + + repeat(10000)@(posedge clk_i); + + $finish(); + end + + + bluster blust(.*); + + uart_rx rx( + .clk_i (clk_i ), + .rst_i (rst_i ), + .rx_i (tx_o ), + .busy_o (rx_busy ), + .baudrate_i (17'd115200 ), + .parity_en_i(1'b1 ), + .stopbit_i (1'b1 ), + .rx_data_o (rx_data ), + .rx_valid_o (rx_valid ) +); + +uart_tx tx( + .clk_i (clk_i ), + .rst_i (rst_i ), + .tx_o (rx_i ), + .busy_o (tx_busy ), + .baudrate_i (17'd115200 ), + .parity_en_i(1'b1 ), + .stopbit_i (1'b1 ), + .tx_data_i (tx_data ), + .tx_valid_i (tx_valid ) +); + + rw_instr_mem imem( + .clk_i (clk_i ) , + .addr_i (instr_addr_i ) , + .read_data_o (instr_rdata_o ) , + .write_addr_i (instr_addr_o ) , + .write_data_i (instr_wdata_o ) , + .write_enable_i(instr_write_enable_o) + ); + + ext_mem dmem( + .clk_i (clk_i ), + .mem_req_i (data_addr_o[31:24] == 0), + .write_enable_i (data_write_enable_o), + .byte_enable_i (4'b1111 ), + .addr_i (data_addr_o ), + .write_data_i (data_wdata_o ), + .read_data_o (), + .ready_o () + ); + + ext_mem tmem( + .clk_i (clk_i ), + .mem_req_i (data_addr_o[31:24] == 8), + .write_enable_i (data_write_enable_o), + .byte_enable_i (4'b1111 ), + .addr_i (data_addr_o ), + .write_data_i (data_wdata_o ), + .read_data_o (), + .ready_o () + ); + +initial instr_mem_byte = { +8'h93, 8'h00, 8'h10, 8'h00, 8'h37, 8'h01, 8'h00, 8'h06, 8'hB7, 8'hC1, 8'h01, 8'h00, 8'h93, 8'h81, 8'h01, 8'h20, +8'h23, 8'h26, 8'h31, 8'h00, 8'h13, 8'h02, 8'h10, 8'h00, 8'h23, 8'h28, 8'h41, 8'h00, 8'h93, 8'h02, 8'h10, 8'h00, +8'h93, 8'h80, 8'h10, 8'h00, 8'h83, 8'h23, 8'h81, 8'h00, 8'h63, 8'h14, 8'h70, 8'h00, 8'h6F, 8'h00, 8'h00, 8'h00, +8'h6F, 8'h00, 8'h00, 8'h00, 8'h23, 8'h20, 8'h11, 8'h00, 8'h6F, 8'h00, 8'h00, 8'h00 +}; + +initial #1 data_mem_byte = instr_mem_byte; + +initial tiff_mem_byte = { +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000101, 8'b00000101, 8'b00000101, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00010010, 8'b00010010, 8'b00111111, 8'b00010010, 8'b00010010, 8'b00010010, 8'b00111111, 8'b00010010, 8'b00010010, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000100, 8'b00001110, 8'b00010001, 8'b00010001, 8'b00000001, 8'b00001110, 8'b00010000, 8'b00010000, 8'b00010001, 8'b00010001, 8'b00001110, 8'b00000100, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000010, 8'b00000101, 8'b01000101, 8'b00100010, 8'b00010000, 8'b00001000, 8'b00000100, 8'b00100010, 8'b01010001, 8'b01010000, 8'b00100000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00001100, 8'b00010010, 8'b00010010, 8'b00010010, 8'b01001100, 8'b01001010, 8'b00110001, 8'b00100001, 8'b00110001, 8'b01001110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000010, 8'b00000010, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000100, 8'b00000010, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000010, 8'b00000100, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000001, 8'b00000010, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000010, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00010010, 8'b00001100, 8'b00111111, 8'b00001100, 8'b00010010, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000100, 8'b00000100, 8'b00011111, 8'b00000100, 8'b00000100, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000010, 8'b00000010, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00001111, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00010000, 8'b00010000, 8'b00001000, 8'b00001000, 8'b00000100, 8'b00000100, 8'b00000010, 8'b00000010, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00110001, 8'b00101001, 8'b00101001, 8'b00100101, 8'b00100101, 8'b00100011, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00001000, 8'b00001100, 8'b00001010, 8'b00001001, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00100000, 8'b00010000, 8'b00001000, 8'b00000100, 8'b00000010, 8'b00000001, 8'b00000001, 8'b00111111, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00100000, 8'b00100000, 8'b00011100, 8'b00100000, 8'b00100000, 8'b00100000, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00010000, 8'b00011000, 8'b00010100, 8'b00010010, 8'b00010001, 8'b00111111, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00111111, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00011111, 8'b00100000, 8'b00100000, 8'b00100000, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011100, 8'b00000010, 8'b00000001, 8'b00000001, 8'b00011111, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00111111, 8'b00100000, 8'b00100000, 8'b00100000, 8'b00010000, 8'b00001000, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011110, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00111110, 8'b00100000, 8'b00100000, 8'b00100000, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000010, 8'b00000010, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000010, 8'b00000010, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00010000, 8'b00001000, 8'b00000100, 8'b00000010, 8'b00000001, 8'b00000010, 8'b00000100, 8'b00001000, 8'b00010000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00111111, 8'b00000000, 8'b00111111, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000001, 8'b00000010, 8'b00000100, 8'b00001000, 8'b00010000, 8'b00001000, 8'b00000100, 8'b00000010, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00100001, 8'b00100000, 8'b00010000, 8'b00001000, 8'b00000100, 8'b00000000, 8'b00000100, 8'b00000100, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00111100, 8'b01000010, 8'b10011001, 8'b10100001, 8'b10111001, 8'b10100101, 8'b01111001, 8'b00000010, 8'b01111100, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00111111, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011111, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011111, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011111, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00001111, 8'b00010001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00010001, 8'b00001111, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00111111, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00001111, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00111111, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00111111, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00001111, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00111001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00111111, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00100000, 8'b00100000, 8'b00100000, 8'b00100000, 8'b00100000, 8'b00100000, 8'b00100000, 8'b00100001, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00100001, 8'b00100001, 8'b00010001, 8'b00001001, 8'b00000111, 8'b00001001, 8'b00010001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00111111, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b01000001, 8'b01100011, 8'b01010101, 8'b01001001, 8'b01001001, 8'b01000001, 8'b01000001, 8'b01000001, 8'b01000001, 8'b01000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00100001, 8'b00100011, 8'b00100101, 8'b00101001, 8'b00110001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011111, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011111, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00101001, 8'b00110001, 8'b00111110, 8'b00100000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011111, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011111, 8'b00010001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00000001, 8'b00000010, 8'b00001100, 8'b00010000, 8'b00100000, 8'b00100000, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b01111111, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b01000001, 8'b01000001, 8'b01000001, 8'b01000001, 8'b00100010, 8'b00100010, 8'b00010100, 8'b00010100, 8'b00001000, 8'b00001000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b01000001, 8'b01000001, 8'b01000001, 8'b01000001, 8'b01001001, 8'b01001001, 8'b01001001, 8'b01010101, 8'b01100011, 8'b01000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00010010, 8'b00001100, 8'b00001100, 8'b00010010, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b01000001, 8'b01000001, 8'b00100010, 8'b00100010, 8'b00010100, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00111111, 8'b00100000, 8'b00100000, 8'b00010000, 8'b00001000, 8'b00000100, 8'b00000010, 8'b00000001, 8'b00000001, 8'b00111111, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000111, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000111, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000010, 8'b00000010, 8'b00000100, 8'b00000100, 8'b00001000, 8'b00001000, 8'b00010000, 8'b00010000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000111, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000111, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000100, 8'b00001010, 8'b00010001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00111111, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000010, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00100000, 8'b00111110, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00111110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00011111, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011111, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00100000, 8'b00100000, 8'b00100000, 8'b00111110, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00111110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00100001, 8'b00111111, 8'b00000001, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011100, 8'b00100010, 8'b00000010, 8'b00000010, 8'b00001111, 8'b00000010, 8'b00000010, 8'b00000010, 8'b00000010, 8'b00000010, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00110001, 8'b00101110, 8'b00100000, 8'b00100001, 8'b00011110, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00011111, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000001, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00010000, 8'b00000000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010001, 8'b00010001, 8'b00001110, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00100001, 8'b00100001, 8'b00010001, 8'b00001111, 8'b00010001, 8'b00100001, 8'b00100001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000010, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00110111, 8'b01001001, 8'b01001001, 8'b01001001, 8'b01001001, 8'b01001001, 8'b01000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011111, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011111, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011111, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00111110, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00111110, 8'b00100000, 8'b00100000, 8'b00100000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011101, 8'b00000011, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00000001, 8'b00011110, 8'b00100000, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000100, 8'b00000100, 8'b00011111, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00011000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00111110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b01000001, 8'b01000001, 8'b00100010, 8'b00100010, 8'b00010100, 8'b00010100, 8'b00001000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b01000001, 8'b01000001, 8'b01001001, 8'b01001001, 8'b01001001, 8'b01010101, 8'b00100010, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b01000001, 8'b00100010, 8'b00010100, 8'b00001000, 8'b00010100, 8'b00100010, 8'b01000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00110001, 8'b00101110, 8'b00100000, 8'b00010000, 8'b00001111, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00111111, 8'b00010000, 8'b00001000, 8'b00000100, 8'b00000010, 8'b00000001, 8'b00111111, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011000, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000011, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00011000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000011, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00011000, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000011, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00100110, 8'b00011001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000011, 8'b00000101, 8'b00000101, 8'b00000011, 8'b00000000, 8'b00001100, 8'b00001100, 8'b00000100, 8'b00101100, 8'b00100000, 8'b00100000, 8'b01100000, 8'b00000000, 8'b00000000, 8'b00000000 +}; + +endmodule + + +module rw_tiff_mem( + input logic clk_i, + input logic [ 31:0] addr_i, + output logic [127:0] read_data_o, + + input logic [ 31:0] write_addr_i, + input logic [127:0] write_data_i, + input logic write_enable_i +); + +logic [127:0] rom [256]; + +assign read_data_o = rom[addr_i]; + +always_ff @(posedge clk_i) begin + if(write_enable_i) begin + rom[write_addr_i] <= write_data_i; + end +end + +endmodule \ No newline at end of file diff --git a/Labs/14. Programming device/tb_top_asic.sv b/Labs/14. Programming device/tb_top_asic.sv new file mode 100644 index 0000000..dd15168 --- /dev/null +++ b/Labs/14. Programming device/tb_top_asic.sv @@ -0,0 +1,453 @@ +module tb_top_asic(); + + logic clk10mhz_i; + logic aresetn_i; + logic rx_i; + logic tx_o; + logic clk_i; + logic rst_i; + + assign aresetn_i = !rst_i; + assign clk10mhz_i = clk_i; + + logic rx_busy, rx_valid, tx_busy, tx_valid; + logic [7:0] rx_data, tx_data; + + logic [3:0] [7:0] instr_size_ack; + logic [3:0] [7:0] data_size_ack; + logic [3:0] [7:0] tiff_size = 32'd0; + logic [3:0] [7:0] tiff_size_ack; + byte init_str[6]; + byte done_str[10]; + logic [7:0] instr_mem_byte[]; + logic [7:0] data_mem_byte[]; + logic [3:0] [7:0] instr_size; + logic [3:0] [7:0] data_size; + + initial begin + // $readmemh("tb_coremark_instr.mem", instr_mem_byte); + // $readmemh("tb_coremark_data.mem", data_mem_byte); + // instr_size = instr_mem_byte.size(); + // data_size = data_mem_byte.size(); + instr_size = 0; + data_size = 0; + end + + logic [7:0] tiff_mem_byte [2048]; + + localparam INIT_MSG_SIZE = 6; + localparam MSG_DONE_SIZE = 10; + localparam MSG_ACK_SIZE = 4; + + always #50ns clk_i = !clk_i; + + byte coremark_msg[103]; + integer coremark_cntr; + + initial begin + $timeformat(-9, 2, " ns", 3); + clk_i = 0; + rst_i <= 0; + @(posedge clk_i); + rst_i <= 1; + repeat(2) @(posedge clk_i); + rst_i <= 0; + +/* + INIT_MSG +*/ + for(int i = 0; i < INIT_MSG_SIZE; i++) begin + @(posedge clk_i); + while(!rx_valid)@(posedge clk_i); + init_str[i] = rx_data; + end + $display("%s", init_str); + wait(tx_o); +// ---------------------------------------------- + + repeat(10000)@(posedge clk_i); + +/* + IDLE, RCV_INSTR_SIZE +*/ + for(int i = MSG_ACK_SIZE-1; i >= 0; i--) begin + tx_data = instr_size[i]; + tx_valid = 1'b1; + @(posedge clk_i); + tx_valid = 1'b0; + @(posedge clk_i); + while(tx_busy) @(posedge clk_i); + end +// ---------------------------------------------- + + +/* + INSTR_SIZE_ACK +*/ + for(int i = MSG_ACK_SIZE-1; i >= 0; i--) begin + while(!rx_valid) @(posedge clk_i); + instr_size_ack[i] = rx_data; + @(posedge clk_i); + end + assert(instr_size_ack == instr_size) + else $error("ack: %0h, size: %0h", instr_size_ack, instr_size); + wait(tx_o); +// ---------------------------------------------- + + + +/* + INSTR_FLASH +*/ + if(instr_size)repeat(10000)@(posedge clk_i); + for(int i = instr_size-1; i >=0; i--) begin + tx_data = instr_mem_byte[i]; + tx_valid = 1'b1; + @(posedge clk_i); + tx_valid = 1'b0; + @(posedge clk_i); + while(tx_busy) @(posedge clk_i); + end +// ---------------------------------------------- + + +/* + INSTR_FLASH_ACK +*/ + for(int i = 0; i < MSG_DONE_SIZE; i++) begin + @(posedge clk_i); + while(!rx_valid)@(posedge clk_i); + done_str[i] = rx_data; + end + $display("%t %s", $time, done_str); + wait(tx_o); +// ---------------------------------------------- + + + + repeat(10000)@(posedge clk_i); + + + +/* + RCV_DATA_SIZE +*/ + for(int i = MSG_ACK_SIZE-1; i >= 0; i--) begin + tx_data = data_size[i]; + tx_valid = 1'b1; + @(posedge clk_i); + tx_valid = 1'b0; + @(posedge clk_i); + while(tx_busy) @(posedge clk_i); + end +// ---------------------------------------------- + + +/* + DATA_SIZE_ACK +*/ + for(int i = MSG_ACK_SIZE-1; i >= 0; i--) begin + while(!rx_valid) @(posedge clk_i); + data_size_ack[i] = rx_data; + @(posedge clk_i); + end + assert(data_size_ack == data_size) + else $error("ack: %0h, size: %0h", data_size_ack, data_size); + wait(tx_o); +// ---------------------------------------------- + + +/* + DATA_FLASH +*/ + if(data_size)repeat(10000)@(posedge clk_i); + for(int i = data_size-1; i >=0; i--) begin + tx_data = data_mem_byte[i]; + tx_valid = 1'b1; + @(posedge clk_i); + tx_valid = 1'b0; + @(posedge clk_i); + while(tx_busy) @(posedge clk_i); + end +// ---------------------------------------------- + + +/* + DATA_FLASH_ACK +*/ + for(int i = 0; i < MSG_DONE_SIZE; i++) begin + @(posedge clk_i); + while(!rx_valid)@(posedge clk_i); + done_str[i] = rx_data; + end + $display("%t %s", $time, done_str); + wait(tx_o); +// ---------------------------------------------- + repeat(10000)@(posedge clk_i); + + + + + +/* + RCV_TIFF_SIZE +*/ + for(int i = MSG_ACK_SIZE-1; i >= 0; i--) begin + tx_data = tiff_size[i]; + tx_valid = 1'b1; + @(posedge clk_i); + tx_valid = 1'b0; + @(posedge clk_i); + while(tx_busy) @(posedge clk_i); + end +// ---------------------------------------------- + + +/* + TIFF_SIZE_ACK +*/ + for(int i = MSG_ACK_SIZE-1; i >= 0; i--) begin + while(!rx_valid) @(posedge clk_i); + tiff_size_ack[i] = rx_data; + @(posedge clk_i); + end + assert(tiff_size_ack == tiff_size) + else $display("ack: %0h, size: %0h", tiff_size_ack, tiff_size); + wait(tx_o); +// ---------------------------------------------- + + + +/* + TIFF_FLASH +*/ + if(tiff_size)repeat(10000)@(posedge clk_i); + for(int i = tiff_size-1; i >=0; i--) begin + tx_data = tiff_mem_byte[i]; + tx_valid = 1'b1; + @(posedge clk_i); + tx_valid = 1'b0; + @(posedge clk_i); + while(tx_busy) @(posedge clk_i); + end +// ---------------------------------------------- + + +/* + TIFF_FLASH_ACK, FINISH +*/ + for(int i = 0; i < MSG_DONE_SIZE; i++) begin + @(posedge clk_i); + while(!rx_valid)@(posedge clk_i); + done_str[i] = rx_data; + end + $display("%t %s", $time, done_str); + wait(!rx_busy) + @(posedge clk_i) + // assert(!pc_stall_o) + // else $error("stall is not equal zero at the end"); +// ---------------------------------------------- + + repeat(10000)@(posedge clk_i); + coremark_cntr = 0; + coremark_msg = {32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32}; + forever begin + @(posedge clk_i); + if(rx_valid) begin + if((rx_data == 10) | (rx_data == 13)) begin + $display("%s", coremark_msg); + coremark_cntr = 0; + coremark_msg = {32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32}; + end + else begin + coremark_msg[coremark_cntr] = rx_data; + coremark_cntr++; + end + end + end + // $finish(); + end + + + riscv_top_asic DUT(.clk10mhz_i, .aresetn_i, .rx_i, .tx_o); + + uart_rx rx( + .clk_i (clk_i ), + .rst_i (rst_i ), + .rx_i (tx_o ), + .busy_o (rx_busy ), + .baudrate_i (17'd115200 ), + .parity_en_i(1'b1 ), + .stopbit_i (1'b1 ), + .rx_data_o (rx_data ), + .rx_valid_o (rx_valid ) +); + +uart_tx tx( + .clk_i (clk_i ), + .rst_i (rst_i ), + .tx_o (rx_i ), + .busy_o (tx_busy ), + .baudrate_i (17'd115200 ), + .parity_en_i(1'b1 ), + .stopbit_i (1'b1 ), + .tx_data_i (tx_data ), + .tx_valid_i (tx_valid ) +); + + +initial tiff_mem_byte = { +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00011110, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000101, 8'b00000101, 8'b00000101, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00010010, 8'b00010010, 8'b00111111, 8'b00010010, 8'b00010010, 8'b00010010, 8'b00111111, 8'b00010010, 8'b00010010, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000100, 8'b00001110, 8'b00010001, 8'b00010001, 8'b00000001, 8'b00001110, 8'b00010000, 8'b00010000, 8'b00010001, 8'b00010001, 8'b00001110, 8'b00000100, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000010, 8'b00000101, 8'b01000101, 8'b00100010, 8'b00010000, 8'b00001000, 8'b00000100, 8'b00100010, 8'b01010001, 8'b01010000, 8'b00100000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00001100, 8'b00010010, 8'b00010010, 8'b00010010, 8'b01001100, 8'b01001010, 8'b00110001, 8'b00100001, 8'b00110001, 8'b01001110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000010, 8'b00000010, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000100, 8'b00000010, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000010, 8'b00000100, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000001, 8'b00000010, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000010, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00010010, 8'b00001100, 8'b00111111, 8'b00001100, 8'b00010010, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000100, 8'b00000100, 8'b00011111, 8'b00000100, 8'b00000100, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000010, 8'b00000010, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00001111, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00010000, 8'b00010000, 8'b00001000, 8'b00001000, 8'b00000100, 8'b00000100, 8'b00000010, 8'b00000010, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00110001, 8'b00101001, 8'b00101001, 8'b00100101, 8'b00100101, 8'b00100011, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00001000, 8'b00001100, 8'b00001010, 8'b00001001, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00100000, 8'b00010000, 8'b00001000, 8'b00000100, 8'b00000010, 8'b00000001, 8'b00000001, 8'b00111111, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00100000, 8'b00100000, 8'b00011100, 8'b00100000, 8'b00100000, 8'b00100000, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00010000, 8'b00011000, 8'b00010100, 8'b00010010, 8'b00010001, 8'b00111111, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00111111, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00011111, 8'b00100000, 8'b00100000, 8'b00100000, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011100, 8'b00000010, 8'b00000001, 8'b00000001, 8'b00011111, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00111111, 8'b00100000, 8'b00100000, 8'b00100000, 8'b00010000, 8'b00001000, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011110, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00111110, 8'b00100000, 8'b00100000, 8'b00100000, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000010, 8'b00000010, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000010, 8'b00000010, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00010000, 8'b00001000, 8'b00000100, 8'b00000010, 8'b00000001, 8'b00000010, 8'b00000100, 8'b00001000, 8'b00010000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00111111, 8'b00000000, 8'b00111111, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000001, 8'b00000010, 8'b00000100, 8'b00001000, 8'b00010000, 8'b00001000, 8'b00000100, 8'b00000010, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00100001, 8'b00100000, 8'b00010000, 8'b00001000, 8'b00000100, 8'b00000000, 8'b00000100, 8'b00000100, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00111100, 8'b01000010, 8'b10011001, 8'b10100001, 8'b10111001, 8'b10100101, 8'b01111001, 8'b00000010, 8'b01111100, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00111111, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011111, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011111, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011111, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00001111, 8'b00010001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00010001, 8'b00001111, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00111111, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00001111, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00111111, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00111111, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00001111, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00111001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00111111, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00100000, 8'b00100000, 8'b00100000, 8'b00100000, 8'b00100000, 8'b00100000, 8'b00100000, 8'b00100001, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00100001, 8'b00100001, 8'b00010001, 8'b00001001, 8'b00000111, 8'b00001001, 8'b00010001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00111111, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b01000001, 8'b01100011, 8'b01010101, 8'b01001001, 8'b01001001, 8'b01000001, 8'b01000001, 8'b01000001, 8'b01000001, 8'b01000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00100001, 8'b00100011, 8'b00100101, 8'b00101001, 8'b00110001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011111, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011111, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00101001, 8'b00110001, 8'b00111110, 8'b00100000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011111, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011111, 8'b00010001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00000001, 8'b00000010, 8'b00001100, 8'b00010000, 8'b00100000, 8'b00100000, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b01111111, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b01000001, 8'b01000001, 8'b01000001, 8'b01000001, 8'b00100010, 8'b00100010, 8'b00010100, 8'b00010100, 8'b00001000, 8'b00001000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b01000001, 8'b01000001, 8'b01000001, 8'b01000001, 8'b01001001, 8'b01001001, 8'b01001001, 8'b01010101, 8'b01100011, 8'b01000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00010010, 8'b00001100, 8'b00001100, 8'b00010010, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b01000001, 8'b01000001, 8'b00100010, 8'b00100010, 8'b00010100, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00001000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00111111, 8'b00100000, 8'b00100000, 8'b00010000, 8'b00001000, 8'b00000100, 8'b00000010, 8'b00000001, 8'b00000001, 8'b00111111, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000111, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000111, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000010, 8'b00000010, 8'b00000100, 8'b00000100, 8'b00001000, 8'b00001000, 8'b00010000, 8'b00010000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000111, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000111, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000100, 8'b00001010, 8'b00010001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00111111, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000010, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00100000, 8'b00111110, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00111110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00011111, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011111, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00100000, 8'b00100000, 8'b00100000, 8'b00111110, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00111110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00100001, 8'b00111111, 8'b00000001, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011100, 8'b00100010, 8'b00000010, 8'b00000010, 8'b00001111, 8'b00000010, 8'b00000010, 8'b00000010, 8'b00000010, 8'b00000010, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00110001, 8'b00101110, 8'b00100000, 8'b00100001, 8'b00011110, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00011111, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000001, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00010000, 8'b00000000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010000, 8'b00010001, 8'b00010001, 8'b00001110, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00100001, 8'b00100001, 8'b00010001, 8'b00001111, 8'b00010001, 8'b00100001, 8'b00100001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000010, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00110111, 8'b01001001, 8'b01001001, 8'b01001001, 8'b01001001, 8'b01001001, 8'b01000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011111, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011111, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00011111, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00111110, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00111110, 8'b00100000, 8'b00100000, 8'b00100000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011101, 8'b00000011, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00011110, 8'b00100001, 8'b00000001, 8'b00011110, 8'b00100000, 8'b00100001, 8'b00011110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000100, 8'b00000100, 8'b00011111, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00011000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00111110, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b01000001, 8'b01000001, 8'b00100010, 8'b00100010, 8'b00010100, 8'b00010100, 8'b00001000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b01000001, 8'b01000001, 8'b01001001, 8'b01001001, 8'b01001001, 8'b01010101, 8'b00100010, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b01000001, 8'b00100010, 8'b00010100, 8'b00001000, 8'b00010100, 8'b00100010, 8'b01000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00100001, 8'b00110001, 8'b00101110, 8'b00100000, 8'b00010000, 8'b00001111, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00111111, 8'b00010000, 8'b00001000, 8'b00000100, 8'b00000010, 8'b00000001, 8'b00111111, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00011000, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000011, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00011000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00000011, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00011000, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000100, 8'b00000011, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000000, 8'b00100110, 8'b00011001, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, 8'b00000000, +8'b00000000, 8'b00000011, 8'b00000101, 8'b00000101, 8'b00000011, 8'b00000000, 8'b00001100, 8'b00001100, 8'b00000100, 8'b00101100, 8'b00100000, 8'b00100000, 8'b01100000, 8'b00000000, 8'b00000000, 8'b00000000 +}; + +endmodule + + +module rw_tiff_mem( + input logic clk_i, + input logic [ 31:0] addr_i, + output logic [127:0] read_data_o, + + input logic [ 31:0] write_addr_i, + input logic [127:0] write_data_i, + input logic write_enable_i +); + +logic [127:0] rom [256]; + +assign read_data_o = rom[addr_i]; + +always_ff @(posedge clk_i) begin + if(write_enable_i) begin + rom[write_addr_i] <= write_data_i; + end +end + +endmodule \ No newline at end of file diff --git a/Labs/15. Coremark/README.md b/Labs/15. Coremark/README.md new file mode 100644 index 0000000..2d2be7f --- /dev/null +++ b/Labs/15. Coremark/README.md @@ -0,0 +1,2 @@ +# Лабораторная работа 15 "Оценка производительности" + diff --git a/Labs/README.md b/Labs/README.md index c69f08c..f079bb9 100644 --- a/Labs/README.md +++ b/Labs/README.md @@ -23,6 +23,7 @@ - [11. Интеграция подсистемы прерывания](#11-интеграция-подсистемы-прерывания) - [12. Периферийные устройства (PU)](#12-периферийные-устройства-pu) - [13. Программирование на языке высокого уровня](#13-программирование-на-языке-высокого-уровня) + - [14. Программатор](#14-программатор) ## Полезное @@ -168,3 +169,11 @@ ![../.pic/Labs/l10.png](../.pic/Labs/l10.png) В рамках данной лабораторной настраивается компилятор GCC для RISC-V и для разработанной системы пишется программное обеспечение на языке программирования C++. + +## 14. Программатор + +До этого момента, исполняемая процессором программа попадала в память инструкций через магический вызов `$readmemh`. Однако реальные микроконтроллеры не обладают такими возможностями. Программа из внешнего мира попадает в них посредством так называемого **программатора** — устройства, обеспечивающего запись программы в память микроконтроллера. Программатор записывает данные в постоянное запоминающее устройство (ПЗУ). Для того, чтобы программа попала из ПЗУ в память инструкций, после запуска контроллера сперва начинает исполняться **загрузчик** (**bootloader**) — небольшая программа, вшитая в память микроконтроллера на этапе изготовления, которая отвечает за первичную инициализацию и подготовку микроконтроллера к выполнению основной программы (включая её перенос из ПЗУ в память инструкций). + +В рамках данной лабораторной работы мы немного упростим процесс передачи программы: вместо записи в ПЗУ, программатор будет записывать её сразу в память инструкций, минуя загрузчик. + +![../.pic/Labs/lab_14_programming_device/fig_04.drawio.png](../.pic/Labs/lab_14_programming_device/fig_04.drawio.png)