summaryrefslogtreecommitdiff
path: root/hdl
diff options
context:
space:
mode:
authorJulian Blake Kongslie2021-04-07 17:02:31 -0700
committerJulian Blake Kongslie2021-04-07 17:02:31 -0700
commit196b67bba9fcb8d8752311f4cf461c82c3d62efb (patch)
treedb3c1a8040ea2b56533b4ea117262d974db4213f /hdl
parentSwitch back to $past-based scheduling; my clever idea wasn't clever enough. (diff)
downloadnoncpu-196b67bba9fcb8d8752311f4cf461c82c3d62efb.tar.xz
Add UART receive opbit.
Diffstat (limited to 'hdl')
-rw-r--r--hdl/top.sv12
1 files changed, 12 insertions, 0 deletions
diff --git a/hdl/top.sv b/hdl/top.sv
index 3cda157..8d83f35 100644
--- a/hdl/top.sv
+++ b/hdl/top.sv
@@ -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