Rev |
Log message |
Author |
Age |
Path |
34 |
Implemented load and store instructions (`mov reg, [reg]` and `mov [reg], reg` respectively) |
earlz |
4484d 10h |
/tinycpu/trunk/testbench/core_tb.vhd |
33 |
Added more test cases for push/pop. More are still needed though
Fixed SP increment/decrementing
Added new opcode `mov reg,reg` so debugging isn't such a pain |
earlz |
4484d 13h |
/tinycpu/trunk/testbench/core_tb.vhd |
32 |
Finished up changes needed to make memory reading actually work.
Push and Pop now work |
earlz |
4484d 14h |
/tinycpu/trunk/testbench/core_tb.vhd |
31 |
Removed the infamous TRData latch from ALU. Now synthesizes (sorta) warning free. No latches are used. |
earlz |
4485d 10h |
/tinycpu/trunk/testbench/core_tb.vhd |
30 |
After a long weekend of thinking how to do this.. I've decided instead to not strive for a single-cycle computer.
Now, instead, ALU operations will be 2 cycle along with memory operations, and data movement operations are still 1 cycle |
earlz |
4485d 10h |
/tinycpu/trunk/testbench/core_tb.vhd |
29 |
Well, added a testcase for testing the ALU bitwise operations and found a very large problem.
I'm pretty sure that the decoder needs to be partially unclocked because it essentially makes the ALU clocked how it is now, which is very bad. |
earlz |
4488d 17h |
/tinycpu/trunk/testbench/core_tb.vhd |
28 |
Ok now registerfile is correct. Only using rising_edge. Now DataOut is the same as DataIn when WriteEnable is asserted.
Some of my tests had to be changed because I was expecting the DataOut to be updated 1 clock cycle after the instruction rather than on the same clock cycle.
Now it's truly single-cycle and without all the weird regIn stuff on the carryovers |
earlz |
4489d 12h |
/tinycpu/trunk/testbench/core_tb.vhd |
27 |
Added a few ALU opcodes and came across a weird propogation delay issue with my registerfile.
As a workaround, I'm trying to use falling_edge instead of rising_edge. We shall see if I regret this later |
earlz |
4489d 18h |
/tinycpu/trunk/testbench/core_tb.vhd |
26 |
Added extra check to make sure fetcher works properly after memory write |
earlz |
4489d 19h |
/tinycpu/trunk/testbench/core_tb.vhd |
25 |
Wait for memory state now works as expected, and opcode `mov [reg], immd` works now |
earlz |
4489d 23h |
/tinycpu/trunk/testbench/core_tb.vhd |
24 |
Good news, mov to IP actually works as expected! |
earlz |
4490d 16h |
/tinycpu/trunk/testbench/core_tb.vhd |
21 |
The core_tb testbench finally passes. It probably doesn't synthesize, or even pass other testbenches, but it passes that one damn it. |
earlz |
4491d 09h |
/tinycpu/trunk/testbench/core_tb.vhd |
20 |
fuck it. All sorts of broken, will try to fix it tomorrow |
earlz |
4492d 08h |
/tinycpu/trunk/testbench/core_tb.vhd |
19 |
Got beginning of core/decoder for the CPU |
earlz |
4492d 10h |
/tinycpu/trunk/testbench/core_tb.vhd |