summaryrefslogtreecommitdiff
path: root/hdl
diff options
context:
space:
mode:
authorJulian Blake Kongslie2021-03-28 17:44:17 -0700
committerJulian Blake Kongslie2021-03-28 17:44:17 -0700
commit3d88aa92deb2e625a65ae47dfe3fb03513a1ca3a (patch)
treecccd59b0aad526eafbafbca59e889580b8c4405a /hdl
parentYet another lame attempt. (diff)
downloadnoncpu-3d88aa92deb2e625a65ae47dfe3fb03513a1ca3a.tar.xz
Possibly slightly less lame.
Diffstat (limited to '')
-rw-r--r--hdl/top.sv20
1 files changed, 10 insertions, 10 deletions
diff --git a/hdl/top.sv b/hdl/top.sv
index ac8342e..3ab61c5 100644
--- a/hdl/top.sv
+++ b/hdl/top.sv
@@ -98,18 +98,18 @@ always_ff @(posedge clk) begin
98 mem_valid = 1; 98 mem_valid = 1;
99 mem_address = {2'b0, pc}; 99 mem_address = {2'b0, pc};
100 mem_write = 0; 100 mem_write = 0;
101 if (`mem_ready) begin 101 if (mem_ready) begin
102 state = DECODE; 102 state = DECODE;
103 ++pc; 103 ++pc;
104 end 104 end
105 end 105 end
106 106
107 DECODE: begin 107 DECODE: begin
108 if (`mem_read_valid) begin 108 mem_valid = 0;
109 mem_valid = 0; 109 mem_write = 0;
110 mem_write = 0; 110 if (mem_read_valid) begin
111 state = FETCH; 111 state = FETCH;
112 {opcode, operand} = `mem_read_data; 112 {opcode, operand} = mem_read_data;
113 `ifdef DEBUG $display("\tdecode %x:%x", opcode, operand); `endif 113 `ifdef DEBUG $display("\tdecode %x:%x", opcode, operand); `endif
114 case (opcode) 114 case (opcode)
115 'h0: acc = {{4{operand[7]}}, operand}; 115 'h0: acc = {{4{operand[7]}}, operand};
@@ -140,20 +140,20 @@ always_ff @(posedge clk) begin
140 'h1: begin 140 'h1: begin
141 mem_valid = 1; 141 mem_valid = 1;
142 mem_address = idx + operand; 142 mem_address = idx + operand;
143 state = `mem_ready ? MEMORY : AGEN; 143 state = mem_ready ? MEMORY : AGEN;
144 end 144 end
145 'h2: begin 145 'h2: begin
146 mem_valid = 1; 146 mem_valid = 1;
147 mem_address = idx + operand; 147 mem_address = idx + operand;
148 mem_write = 1; 148 mem_write = 1;
149 mem_write_data = acc; 149 mem_write_data = acc;
150 state = `mem_ready ? FETCH : AGEN; 150 state = mem_ready ? FETCH : AGEN;
151 end 151 end
152 endcase 152 endcase
153 end 153 end
154 154
155 MEMORY: begin 155 MEMORY: begin
156 if (`mem_ready) begin 156 if (mem_ready) begin
157 mem_valid = 0; 157 mem_valid = 0;
158 mem_write = 0; 158 mem_write = 0;
159 end 159 end
@@ -161,8 +161,8 @@ always_ff @(posedge clk) begin
161 `ifdef DEBUG $display("\tstall"); `endif 161 `ifdef DEBUG $display("\tstall"); `endif
162 case (opcode) 162 case (opcode)
163 'h1: begin 163 'h1: begin
164 if (`mem_read_valid) begin 164 if (mem_read_valid) begin
165 acc = `mem_read_data; 165 acc = mem_read_data;
166 end else begin 166 end else begin
167 state = MEMORY; 167 state = MEMORY;
168 end 168 end