diff options
Diffstat (limited to 'hdl/top.sv')
| -rw-r--r-- | hdl/top.sv | 12 |
1 files changed, 12 insertions, 0 deletions
| @@ -118,6 +118,10 @@ always_ff @(posedge clk) begin | |||
| 118 | if (operand[1]) ++acc; | 118 | if (operand[1]) ++acc; |
| 119 | if (operand[2]) --acc; | 119 | if (operand[2]) --acc; |
| 120 | if (operand[6]) state = MEMORY; | 120 | if (operand[6]) state = MEMORY; |
| 121 | if (operand[7]) begin | ||
| 122 | rx_ready = 1; | ||
| 123 | state = MEMORY; | ||
| 124 | end | ||
| 121 | if (operand == 0) state = HALT; | 125 | if (operand == 0) state = HALT; |
| 122 | end | 126 | end |
| 123 | 'h1: acc = sign_extended_operand; | 127 | 'h1: acc = sign_extended_operand; |
| @@ -205,6 +209,14 @@ always_ff @(posedge clk) begin | |||
| 205 | tx_data = acc[7:0]; | 209 | tx_data = acc[7:0]; |
| 206 | end | 210 | end |
| 207 | end | 211 | end |
| 212 | if (operand[7]) begin | ||
| 213 | if (`lag(rx_valid)) begin | ||
| 214 | rx_ready = 0; | ||
| 215 | acc = {{(DATA_BITS-8){1'b0}}, `lag(rx_data)}; | ||
| 216 | end else begin | ||
| 217 | state = MEMORY; | ||
| 218 | end | ||
| 219 | end | ||
| 208 | end | 220 | end |
| 209 | 'h2: begin | 221 | 'h2: begin |
| 210 | if (`lag(mem_read_valid)) begin | 222 | if (`lag(mem_read_valid)) begin |
