diff options
| author | Julian Blake Kongslie | 2021-10-24 15:02:31 -0700 |
|---|---|---|
| committer | Julian Blake Kongslie | 2021-10-24 15:08:18 -0700 |
| commit | 15daf2fe9fd13e18609b2141c3346fec6389bda9 (patch) | |
| tree | a6724dcfb7bb9769bd8dec67fd06dd9e17f5c1e6 /hdl/top.sv | |
| parent | Ignore backup files created by Altera GUI. (diff) | |
| download | noncpu-15daf2fe9fd13e18609b2141c3346fec6389bda9.tar.xz | |
More blinkenlights work.
Diffstat (limited to '')
| -rw-r--r-- | hdl/top.sv | 112 |
1 files changed, 88 insertions, 24 deletions
| @@ -12,7 +12,7 @@ module top | |||
| 12 | bit clk; | 12 | bit clk; |
| 13 | bit reset; | 13 | bit reset; |
| 14 | 14 | ||
| 15 | clock | 15 | clock // 45 MHz |
| 16 | #( .MULTIPLY_BY(9) | 16 | #( .MULTIPLY_BY(9) |
| 17 | , .DIVIDE_BY(10) | 17 | , .DIVIDE_BY(10) |
| 18 | ) pll | 18 | ) pll |
| @@ -24,9 +24,9 @@ clock | |||
| 24 | 24 | ||
| 25 | bit slowclk; | 25 | bit slowclk; |
| 26 | bit slowreset; | 26 | bit slowreset; |
| 27 | clock | 27 | clock // 100 kHz |
| 28 | #( .MULTIPLY_BY(1) | 28 | #( .MULTIPLY_BY(1) |
| 29 | , .DIVIDE_BY(5000) | 29 | , .DIVIDE_BY(500) |
| 30 | ) slowpll | 30 | ) slowpll |
| 31 | ( .native_clk(native_clk) | 31 | ( .native_clk(native_clk) |
| 32 | , .reset_n(reset_n) | 32 | , .reset_n(reset_n) |
| @@ -49,34 +49,98 @@ panel fp | |||
| 49 | , .gpioc(gpioc) | 49 | , .gpioc(gpioc) |
| 50 | ); | 50 | ); |
| 51 | 51 | ||
| 52 | assign led[1] = switch[1]; | 52 | bit [3:1] switch_df; |
| 53 | assign led[2] = switch[2]; | 53 | bit [3:1] switch_if; |
| 54 | assign led[3] = switch[3]; | 54 | bit [12:1] switch_sr; |
| 55 | assign led[4] = 0; | 55 | bit switch_start; |
| 56 | assign led[5] = 0; | 56 | bit switch_load_add; |
| 57 | assign led[6] = 0; | 57 | bit switch_dep; |
| 58 | assign led[7] = 0; | 58 | bit switch_exam; |
| 59 | assign led[8] = 0; | 59 | bit switch_cont; |
| 60 | bit switch_stop; | ||
| 61 | bit switch_sing_step; | ||
| 62 | bit switch_sing_inst; | ||
| 60 | 63 | ||
| 61 | /* | 64 | assign switch_df = switch[2][3:1]; |
| 62 | wire [7:0] debugchar; | 65 | assign switch_if = switch[2][6:4]; |
| 63 | assign debugchar = "0" + {switch[1][1], switch[1][2], switch[3][1]}; | 66 | assign switch_sr = switch[1]; |
| 67 | assign switch_start = switch[3][1]; | ||
| 68 | assign switch_load_add = switch[3][2]; | ||
| 69 | assign switch_dep = switch[3][3]; | ||
| 70 | assign switch_exam = switch[3][4]; | ||
| 71 | assign switch_cont = switch[3][5]; | ||
| 72 | assign switch_stop = switch[3][6]; | ||
| 73 | assign switch_sing_step = switch[3][7]; | ||
| 74 | assign switch_sing_inst = switch[3][8]; | ||
| 64 | 75 | ||
| 65 | jtag_uart debug | 76 | bit [11:0] led_pc; |
| 66 | ( .clk(slowclk) | 77 | bit [11:0] led_memaddr; |
| 67 | , .reset(slowreset) | 78 | bit [11:0] led_memdata; |
| 79 | bit [11:0] led_acc; | ||
| 80 | bit [11:0] led_mq; | ||
| 81 | bit led_and; | ||
| 82 | bit led_tad; | ||
| 83 | bit led_isz; | ||
| 84 | bit led_dca; | ||
| 85 | bit led_jms; | ||
| 86 | bit led_jmp; | ||
| 87 | bit led_iot; | ||
| 88 | bit led_opr; | ||
| 89 | bit led_fetch; | ||
| 90 | bit led_execute; | ||
| 91 | bit led_defer; | ||
| 92 | bit led_word_count; | ||
| 93 | bit led_current_address; | ||
| 94 | bit led_break; | ||
| 95 | bit led_ion; | ||
| 96 | bit led_pause; | ||
| 97 | bit led_run; | ||
| 98 | bit [4:0] led_step_counter; | ||
| 99 | bit [2:0] led_df; | ||
| 100 | bit [2:0] led_if; | ||
| 101 | bit led_link; | ||
| 68 | 102 | ||
| 69 | , .rx_ready(0) | 103 | assign led[1] = {led_pc[0], led_pc[1], led_pc[2], led_pc[3], led_pc[4], led_pc[5], led_pc[6], led_pc[7], led_pc[8], led_pc[9], led_pc[10], led_pc[11]}; |
| 70 | , .tx_valid(1) | 104 | assign led[2] = {led_memaddr[0], led_memaddr[1], led_memaddr[2], led_memaddr[3], led_memaddr[4], led_memaddr[5], led_memaddr[6], led_memaddr[7], led_memaddr[8], led_memaddr[9], led_memaddr[10], led_memaddr[11]}; |
| 71 | , .tx_data(debugchar) | 105 | assign led[3] = {led_memdata[0], led_memdata[1], led_memdata[2], led_memdata[3], led_memdata[4], led_memdata[5], led_memdata[6], led_memdata[7], led_memdata[8], led_memdata[9], led_memdata[10], led_memdata[11]}; |
| 72 | ); | 106 | assign led[4] = {led_acc[0], led_acc[1], led_acc[2], led_acc[3], led_acc[4], led_acc[5], led_acc[6], led_acc[7], led_acc[8], led_acc[9], led_acc[10], led_acc[11]}; |
| 73 | */ | 107 | assign led[5] = {led_mq[0], led_mq[1], led_mq[2], led_mq[3], led_mq[4], led_mq[5], led_mq[6], led_mq[7], led_mq[8], led_mq[9], led_mq[10], led_mq[11]}; |
| 108 | assign led[6] = {led_word_count, led_defer, led_execute, led_fetch, led_opr, led_iot, led_jmp, led_jms, led_dca, led_isz, led_tad, led_and}; | ||
| 109 | assign led[7] = {led_step_counter, led_run, led_pause, led_ion, led_break, led_current_address}; | ||
| 110 | assign led[8] = {led_link, led_if, led_df}; | ||
| 74 | 111 | ||
| 75 | /* | ||
| 76 | core cpu | 112 | core cpu |
| 77 | ( .clk(clk) | 113 | ( .clk(clk) |
| 78 | , .reset(reset) | 114 | , .reset(reset) |
| 115 | |||
| 116 | , .switch_cont(switch_cont) | ||
| 117 | |||
| 118 | , .led_pc(led_pc) | ||
| 119 | , .led_memaddr(led_memaddr) | ||
| 120 | , .led_memdata(led_memdata) | ||
| 121 | , .led_acc(led_acc) | ||
| 122 | , .led_mq(led_mq) | ||
| 123 | , .led_and(led_and) | ||
| 124 | , .led_tad(led_tad) | ||
| 125 | , .led_isz(led_isz) | ||
| 126 | , .led_dca(led_dca) | ||
| 127 | , .led_jms(led_jms) | ||
| 128 | , .led_jmp(led_jmp) | ||
| 129 | , .led_iot(led_iot) | ||
| 130 | , .led_opr(led_opr) | ||
| 131 | , .led_fetch(led_fetch) | ||
| 132 | , .led_execute(led_execute) | ||
| 133 | , .led_defer(led_defer) | ||
| 134 | , .led_word_count(led_word_count) | ||
| 135 | , .led_current_address(led_current_address) | ||
| 136 | , .led_break(led_break) | ||
| 137 | , .led_ion(led_ion) | ||
| 138 | , .led_pause(led_pause) | ||
| 139 | , .led_run(led_run) | ||
| 140 | , .led_step_counter(led_step_counter) | ||
| 141 | , .led_df(led_df) | ||
| 142 | , .led_if(led_if) | ||
| 143 | , .led_link(led_link) | ||
| 79 | ); | 144 | ); |
| 80 | */ | ||
| 81 | 145 | ||
| 82 | endmodule | 146 | endmodule |
