alu works on fpga

This commit is contained in:
Nicholas Orlowsky 2024-04-08 08:54:48 -05:00
parent 7fdf4e7739
commit 0ba56bc41e
Signed by: nickorlow
GPG key ID: 838827D8C4611687
75 changed files with 2771 additions and 2316 deletions

View file

@ -1,14 +1,29 @@
|chip8
fpga_clk => fpga_clk.IN2
rst_in => ~NO_FANOUT~
lcd_clk << cpu:cpu.port7
lcd_data << cpu:cpu.port8
led[0] << cpu:cpu.port9
led[1] << cpu:cpu.port9
led[2] << cpu:cpu.port9
led[3] << cpu:cpu.port9
led[4] << cpu:cpu.port9
led[5] << cpu:cpu.port9
lcd_clk << cpu:cpu.port8
lcd_data << cpu:cpu.port9
led[0] << cpu:cpu.port10
led[1] << cpu:cpu.port10
led[2] << cpu:cpu.port10
led[3] << cpu:cpu.port10
led[4] << cpu:cpu.port10
led[5] << cpu:cpu.port10
|chip8|downclocker:dc
clk_in => counter[0].CLK
clk_in => counter[1].CLK
clk_in => counter[2].CLK
clk_in => counter[3].CLK
clk_in => counter[4].CLK
clk_in => counter[5].CLK
clk_in => counter[6].CLK
clk_in => counter[7].CLK
clk_in => counter[8].CLK
clk_in => counter[9].CLK
clk_in => clk_out~reg0.CLK
clk_out <= clk_out~reg0.DB_MAX_OUTPUT_PORT_TYPE
|chip8|memory:mem
@ -107,7 +122,7 @@ data_out[7] <= data_out[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE
|chip8|cpu:cpu
clk_in => st7920_serial_driver:gpu.sys_clk
clk_in => alu:alu.clk_in
clk_in => cycle_counter[0]~reg0.CLK
clk_in => cycle_counter[1]~reg0.CLK
clk_in => cycle_counter[2]~reg0.CLK
@ -173,6 +188,7 @@ clk_in => wr_memory_address[8]~reg0.CLK
clk_in => wr_memory_address[9]~reg0.CLK
clk_in => wr_memory_address[10]~reg0.CLK
clk_in => wr_memory_address[11]~reg0.CLK
clk_in => alu_rst.CLK
clk_in => vram[1023][0].CLK
clk_in => vram[1023][1].CLK
clk_in => vram[1023][2].CLK
@ -8535,6 +8551,7 @@ clk_in => draw_state.stage[28].CLK
clk_in => draw_state.stage[29].CLK
clk_in => draw_state.stage[30].CLK
clk_in => draw_state.stage[31].CLK
clk_in => compute_of.CLK
clk_in => instr.src_sprite_idx[0].CLK
clk_in => instr.src_sprite_idx[1].CLK
clk_in => instr.src_sprite_idx[2].CLK
@ -8721,6 +8738,54 @@ clk_in => instr.src_byte[8].CLK
clk_in => instr.src_byte[9].CLK
clk_in => instr.src_byte[10].CLK
clk_in => instr.src_byte[11].CLK
clk_in => instr.alu_i.op[0].CLK
clk_in => instr.alu_i.op[1].CLK
clk_in => instr.alu_i.op[2].CLK
clk_in => instr.alu_i.op[3].CLK
clk_in => instr.alu_i.op[4].CLK
clk_in => instr.alu_i.op[5].CLK
clk_in => instr.alu_i.op[6].CLK
clk_in => instr.alu_i.op[7].CLK
clk_in => instr.alu_i.op[8].CLK
clk_in => instr.alu_i.op[9].CLK
clk_in => instr.alu_i.op[10].CLK
clk_in => instr.alu_i.op[11].CLK
clk_in => instr.alu_i.op[12].CLK
clk_in => instr.alu_i.op[13].CLK
clk_in => instr.alu_i.op[14].CLK
clk_in => instr.alu_i.op[15].CLK
clk_in => instr.alu_i.op[16].CLK
clk_in => instr.alu_i.op[17].CLK
clk_in => instr.alu_i.op[18].CLK
clk_in => instr.alu_i.op[19].CLK
clk_in => instr.alu_i.op[20].CLK
clk_in => instr.alu_i.op[21].CLK
clk_in => instr.alu_i.op[22].CLK
clk_in => instr.alu_i.op[23].CLK
clk_in => instr.alu_i.op[24].CLK
clk_in => instr.alu_i.op[25].CLK
clk_in => instr.alu_i.op[26].CLK
clk_in => instr.alu_i.op[27].CLK
clk_in => instr.alu_i.op[28].CLK
clk_in => instr.alu_i.op[29].CLK
clk_in => instr.alu_i.op[30].CLK
clk_in => instr.alu_i.op[31].CLK
clk_in => instr.alu_i.operand_b[0].CLK
clk_in => instr.alu_i.operand_b[1].CLK
clk_in => instr.alu_i.operand_b[2].CLK
clk_in => instr.alu_i.operand_b[3].CLK
clk_in => instr.alu_i.operand_b[4].CLK
clk_in => instr.alu_i.operand_b[5].CLK
clk_in => instr.alu_i.operand_b[6].CLK
clk_in => instr.alu_i.operand_b[7].CLK
clk_in => instr.alu_i.operand_a[0].CLK
clk_in => instr.alu_i.operand_a[1].CLK
clk_in => instr.alu_i.operand_a[2].CLK
clk_in => instr.alu_i.operand_a[3].CLK
clk_in => instr.alu_i.operand_a[4].CLK
clk_in => instr.alu_i.operand_a[5].CLK
clk_in => instr.alu_i.operand_a[6].CLK
clk_in => instr.alu_i.operand_a[7].CLK
clk_in => instr.dst_reg[0].CLK
clk_in => instr.dst_reg[1].CLK
clk_in => instr.dst_reg[2].CLK
@ -8897,6 +8962,7 @@ clk_in => rd_memory_address[8]~reg0.CLK
clk_in => rd_memory_address[9]~reg0.CLK
clk_in => rd_memory_address[10]~reg0.CLK
clk_in => rd_memory_address[11]~reg0.CLK
fpga_clk => st7920_serial_driver:gpu.sys_clk
rd_memory_data[0] => instr.DATAB
rd_memory_data[0] => src_sprite.DATAB
rd_memory_data[0] => src_sprite.DATAB
@ -8914,7 +8980,7 @@ rd_memory_data[0] => src_sprite.DATAB
rd_memory_data[0] => src_sprite.DATAB
rd_memory_data[0] => src_sprite.DATAB
rd_memory_data[0] => src_sprite.DATAB
rd_memory_data[0] => Selector79.IN4
rd_memory_data[0] => Selector171.IN4
rd_memory_data[0] => opcode[8].DATAIN
rd_memory_data[1] => instr.DATAB
rd_memory_data[1] => src_sprite.DATAB
@ -8933,7 +8999,7 @@ rd_memory_data[1] => src_sprite.DATAB
rd_memory_data[1] => src_sprite.DATAB
rd_memory_data[1] => src_sprite.DATAB
rd_memory_data[1] => src_sprite.DATAB
rd_memory_data[1] => Selector78.IN4
rd_memory_data[1] => Selector170.IN4
rd_memory_data[1] => opcode[9].DATAIN
rd_memory_data[2] => instr.DATAB
rd_memory_data[2] => src_sprite.DATAB
@ -8952,7 +9018,7 @@ rd_memory_data[2] => src_sprite.DATAB
rd_memory_data[2] => src_sprite.DATAB
rd_memory_data[2] => src_sprite.DATAB
rd_memory_data[2] => src_sprite.DATAB
rd_memory_data[2] => Selector77.IN4
rd_memory_data[2] => Selector169.IN4
rd_memory_data[2] => opcode[10].DATAIN
rd_memory_data[3] => instr.DATAB
rd_memory_data[3] => src_sprite.DATAB
@ -8971,7 +9037,7 @@ rd_memory_data[3] => src_sprite.DATAB
rd_memory_data[3] => src_sprite.DATAB
rd_memory_data[3] => src_sprite.DATAB
rd_memory_data[3] => src_sprite.DATAB
rd_memory_data[3] => Selector76.IN4
rd_memory_data[3] => Selector168.IN4
rd_memory_data[3] => opcode[11].DATAIN
rd_memory_data[4] => instr.DATAB
rd_memory_data[4] => src_sprite.DATAB
@ -8990,7 +9056,7 @@ rd_memory_data[4] => src_sprite.DATAB
rd_memory_data[4] => src_sprite.DATAB
rd_memory_data[4] => src_sprite.DATAB
rd_memory_data[4] => src_sprite.DATAB
rd_memory_data[4] => Selector75.IN4
rd_memory_data[4] => Selector167.IN4
rd_memory_data[4] => opcode[12].DATAIN
rd_memory_data[5] => instr.DATAB
rd_memory_data[5] => src_sprite.DATAB
@ -9009,7 +9075,7 @@ rd_memory_data[5] => src_sprite.DATAB
rd_memory_data[5] => src_sprite.DATAB
rd_memory_data[5] => src_sprite.DATAB
rd_memory_data[5] => src_sprite.DATAB
rd_memory_data[5] => Selector74.IN4
rd_memory_data[5] => Selector166.IN4
rd_memory_data[5] => opcode[13].DATAIN
rd_memory_data[6] => instr.DATAB
rd_memory_data[6] => src_sprite.DATAB
@ -9028,7 +9094,7 @@ rd_memory_data[6] => src_sprite.DATAB
rd_memory_data[6] => src_sprite.DATAB
rd_memory_data[6] => src_sprite.DATAB
rd_memory_data[6] => src_sprite.DATAB
rd_memory_data[6] => Selector73.IN4
rd_memory_data[6] => Selector165.IN4
rd_memory_data[6] => opcode[14].DATAIN
rd_memory_data[7] => instr.DATAB
rd_memory_data[7] => src_sprite.DATAB
@ -9047,7 +9113,7 @@ rd_memory_data[7] => src_sprite.DATAB
rd_memory_data[7] => src_sprite.DATAB
rd_memory_data[7] => src_sprite.DATAB
rd_memory_data[7] => src_sprite.DATAB
rd_memory_data[7] => Selector72.IN4
rd_memory_data[7] => Selector164.IN4
rd_memory_data[7] => opcode[15].DATAIN
cycle_counter[0] <= cycle_counter[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE
cycle_counter[1] <= cycle_counter[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE
@ -9116,12 +9182,157 @@ wr_memory_data[7] <= wr_memory_data[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE
wr_go <= wr_go~reg0.DB_MAX_OUTPUT_PORT_TYPE
lcd_clk <= st7920_serial_driver:gpu.lcd_clk
lcd_data <= st7920_serial_driver:gpu.lcd_data
led[0] <= st7920_serial_driver:gpu.led[0]
led[1] <= st7920_serial_driver:gpu.led[1]
led[2] <= st7920_serial_driver:gpu.led[2]
led[3] <= st7920_serial_driver:gpu.led[3]
led[4] <= st7920_serial_driver:gpu.led[4]
led[5] <= st7920_serial_driver:gpu.led[5]
led[0] <= state[0].DB_MAX_OUTPUT_PORT_TYPE
led[1] <= state[1].DB_MAX_OUTPUT_PORT_TYPE
led[2] <= state[2].DB_MAX_OUTPUT_PORT_TYPE
led[3] <= state[3].DB_MAX_OUTPUT_PORT_TYPE
led[4] <= state[4].DB_MAX_OUTPUT_PORT_TYPE
led[5] <= state[5].DB_MAX_OUTPUT_PORT_TYPE
|chip8|cpu:cpu|alu:alu
rst_in => done.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
rst_in => cnt.OUTPUTSELECT
clk_in => cnt[0].CLK
clk_in => cnt[1].CLK
clk_in => cnt[2].CLK
clk_in => cnt[3].CLK
clk_in => cnt[4].CLK
clk_in => cnt[5].CLK
clk_in => cnt[6].CLK
clk_in => cnt[7].CLK
clk_in => cnt[8].CLK
clk_in => cnt[9].CLK
clk_in => cnt[10].CLK
clk_in => cnt[11].CLK
clk_in => cnt[12].CLK
clk_in => cnt[13].CLK
clk_in => cnt[14].CLK
clk_in => cnt[15].CLK
clk_in => cnt[16].CLK
clk_in => cnt[17].CLK
clk_in => cnt[18].CLK
clk_in => cnt[19].CLK
clk_in => cnt[20].CLK
clk_in => cnt[21].CLK
clk_in => cnt[22].CLK
clk_in => cnt[23].CLK
clk_in => cnt[24].CLK
clk_in => cnt[25].CLK
clk_in => cnt[26].CLK
clk_in => cnt[27].CLK
clk_in => cnt[28].CLK
clk_in => cnt[29].CLK
clk_in => cnt[30].CLK
clk_in => cnt[31].CLK
clk_in => result_int[0].CLK
clk_in => result_int[1].CLK
clk_in => result_int[2].CLK
clk_in => result_int[3].CLK
clk_in => result_int[4].CLK
clk_in => result_int[5].CLK
clk_in => result_int[6].CLK
clk_in => result_int[7].CLK
clk_in => result_int[8].CLK
clk_in => result[0]~reg0.CLK
clk_in => result[1]~reg0.CLK
clk_in => result[2]~reg0.CLK
clk_in => result[3]~reg0.CLK
clk_in => result[4]~reg0.CLK
clk_in => result[5]~reg0.CLK
clk_in => result[6]~reg0.CLK
clk_in => result[7]~reg0.CLK
clk_in => overflow~reg0.CLK
clk_in => done~reg0.CLK
in.op[0] => ~NO_FANOUT~
in.op[1] => ~NO_FANOUT~
in.op[2] => ~NO_FANOUT~
in.op[3] => ~NO_FANOUT~
in.op[4] => ~NO_FANOUT~
in.op[5] => ~NO_FANOUT~
in.op[6] => ~NO_FANOUT~
in.op[7] => ~NO_FANOUT~
in.op[8] => ~NO_FANOUT~
in.op[9] => ~NO_FANOUT~
in.op[10] => ~NO_FANOUT~
in.op[11] => ~NO_FANOUT~
in.op[12] => ~NO_FANOUT~
in.op[13] => ~NO_FANOUT~
in.op[14] => ~NO_FANOUT~
in.op[15] => ~NO_FANOUT~
in.op[16] => ~NO_FANOUT~
in.op[17] => ~NO_FANOUT~
in.op[18] => ~NO_FANOUT~
in.op[19] => ~NO_FANOUT~
in.op[20] => ~NO_FANOUT~
in.op[21] => ~NO_FANOUT~
in.op[22] => ~NO_FANOUT~
in.op[23] => ~NO_FANOUT~
in.op[24] => ~NO_FANOUT~
in.op[25] => ~NO_FANOUT~
in.op[26] => ~NO_FANOUT~
in.op[27] => ~NO_FANOUT~
in.op[28] => ~NO_FANOUT~
in.op[29] => ~NO_FANOUT~
in.op[30] => ~NO_FANOUT~
in.op[31] => ~NO_FANOUT~
in.operand_b[0] => Add0.IN16
in.operand_b[1] => Add0.IN15
in.operand_b[2] => Add0.IN14
in.operand_b[3] => Add0.IN13
in.operand_b[4] => Add0.IN12
in.operand_b[5] => Add0.IN11
in.operand_b[6] => Add0.IN10
in.operand_b[7] => Add0.IN9
in.operand_a[0] => Add0.IN8
in.operand_a[1] => Add0.IN7
in.operand_a[2] => Add0.IN6
in.operand_a[3] => Add0.IN5
in.operand_a[4] => Add0.IN4
in.operand_a[5] => Add0.IN3
in.operand_a[6] => Add0.IN2
in.operand_a[7] => Add0.IN1
result[0] <= result[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE
result[1] <= result[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE
result[2] <= result[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE
result[3] <= result[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE
result[4] <= result[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE
result[5] <= result[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE
result[6] <= result[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE
result[7] <= result[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE
overflow <= overflow~reg0.DB_MAX_OUTPUT_PORT_TYPE
done <= done~reg0.DB_MAX_OUTPUT_PORT_TYPE
|chip8|cpu:cpu|st7920_serial_driver:gpu