Searched Projects

Tags: comparison

project.name
0 Stars     89 Views

Take the adder/subtractor circuit in slide page 37 (of Chapter 4 slides) and modify its output to include also comparison capabilities (=, <, >) for the two input numbers. 

Hint: notice that if x=y then x-y = 0 (check if all bits of result are 0). If xy then x-y>0 (check if x≠y and sign bit is 0).


project.name
0 Stars     57 Views
User:

STRING CPU SERIES COMPARISON

STRING CPU SERIES COMPARISON


This is a comparison of every CPU I make. New CPUs wont be shown here anymore, but If you have any questions, suggestions, or something is not working, in a string series CPU, please ask here. Announcements on the string CPUS will be announced here.

4-28-2024- UPDATE FOR STRING32000: (RAM EXTERNALIZED) decided that it would be just best to make STRING32000 RAM external.

4-27-2024- UPDATE FOR STRING32000: (RAM EXTERNAL READ PORT AND HOPEFULLY LAST BUG FIX FOR STRING32000) The STRING32000 had yet another bloody hiding bug caught and fixed where in the RAM, at address 0x0, random values would save even when not targeted to save at. STRING32000 now has two new pins, which can be used by external circuitry to read directly from the internal memory of the CPU. The RAM controller updates the port on rising edge of the clock (instructions and executed on falling edge). This port is currently not being used but will be used for something in the future.

4-15-2024- UPDATE FOR STRING32000: (TONS OF BUG FIXES AND MULT DIV UPGRADE) A hell tons of bugs were fixed, and this CPU now supports 32-bit multiplication and 32-bit division.

4-7-2024- UPDATE FOR STRING32000: (PGMEM SAVE FIX) fixed goofy-ahh bug where PGMEM save instruction didnt work

4-6-2024- UPDATE FOR STRING32000: (MULTPLICATION UPGRADE) upgraded from the 16-bit multiplication circuit in the ALU to 32-bit multiplication. Division shall be upgraded next and then 32-bittedness shall be complete!

4-3-2024- UPDATE FOR STRING32000: (PGMEM NOW LARGER) Because CircuitVerse doesn't support EEPROM that has an address width over 10 bits and STRING32000 supports 16-bit addresses, I decided to link up 64 EEPROMS to make one big fat EEPROM with 16 bit addresses. STORAGE PROBLEM FIXED!

3-29-2024- 2 ANNOUNCEMENT: (STRING 32000 RELEASE) Great news! I have released the string 32000, which is much more capable than the STRING16 series. New CPUS will no longer be posted here but announcements will still be made. Check the page for the STRING32000 for more information. Link: https://circuitverse.org/users/92698/projects/string-32000

3-4-2024- SOME PRETTY BIG NEWS: (PRE-RELEASE STRING 32000 INFO) STRING32000 is an entirely new 32-BIT CPU. Unfortunately, this new CPU will NOT be able to run STRING16 machine language(THE language that of 1000+ -- 3000+ series string CPUS run on). Instead the new CPU will run off a language called STRING32. 

11-26-2023- UPDATE FOR STRING 3000SA: (RAND IN IN ALUE OUTPUTTING WHEN NOT IN USE) fixed broken ALU RAND FUNCTION

11-17-2023- ANNOUNCEMENT: (STRING3000SA RELEASE) released STRING3000SA

10-13-2023- GOOD NEWS FOR ALL CPUS: (CIRCUITVERSE IS HAPPY AGAIN) The glitchy simulator has been fixed and all CircuitVerse computers work like they used to

9-9-2023- BAD NEWS FOR ALL CPUS: (SIMULATION ERROR STATE) String CPUS are no longer able to run due to a glitch in the simulator. The simulator keeps entering an "error state," preventing the CPU from running; this glitch has also killed other computers and complex creations like the well-known Femto (RIP CircuitVerse computers). I hope this glitch is fixed.

7-27-2023- ANNOUNCEMENT: (NEW PROGRAM) added a new program "constantly shift to example programs of 2000 series+/ 3000 series+

7-22-2023- ANNOUNCEMENT: (STRING3000 RELEASE) released STRING3000

7-21-2023- UPDATE FOR ALL CPUS: (SAVE PRGM INSTRUCTION NOT WORKING FIX) Fixed CPU unable to save program data.

7-19-2023- UPDATE FOR ALL CPUS: (LOADED REG NOT RESETTING ON CERTAIN RESET INSTRUCTIONS FIX) Fixed LOADED REG not resetting on certain commands.

7-6-2023- ANNOUNCEMENT: (STRING2000C RELEASE) released STRING2000C

6-19-2023- UPDATE FOR ALL CPUS: (CONDITIONAL PC JUMP FIX 2) Actually fixed broken jump commands for good.

6-19-2023- UPDATE FOR STRING2000: (UNWANTED COUT FIX) Fixed sections of ALU setting C OUT to 1 when not in use.

6-18-2023- UPDATE FOR ALL CPUS: (CONDITIONAL PC JUMP FIX) Fixed CPU jumping despite not being supposed to according to conditional jump command rules.

6-18-2023- UPDATE FOR ALL CPUS: (PC REWORK) Fixed PC refusing to jump or giving a simulation stack limit error.

About string series:

Simple explanation.

String CPU series is an ongoing series of CPUS idk why I called it string CPU but whatever. They execute code in one tick. The old STRING16-series (1000-3000SA) has been discontinued to work on the newer STRING32-series (32000+) which unlike STRING16, is capable of self-modifying code and 64x more available address space to work with in its EEPROM and RAM.

How they work:

For the old STRING16 bases CPUS, they have a 32 bit program splitter which splits into 3 sections: 16 BITS (VALUES) 10 bits (ADRESSES) and 6 bits (INSTRUCTIONS). *sorry there's no assembler/compiler for these you can comment to ask for one of you want for there to be a STRING16 assembler

For the new STRING32 based CPUs, the program splitter is 32-bit like the STRING16-based, but it splits into 5 sections: 16 bits (ADRESSES) two 4 bit channels (REGISTERS SELECTION) a 3 bit channel (SELECTING ALUS, SPECIAL REGISTERS, AND MEMORY), and finally a 5 bit channel (INSTRUCTIONS). For values, an entire addresses is dedicated in the program memory to store 32-bit values. There will also be a link to the excel STRING32 assembler in the CPUS page in the future to make it MUCH, MUCH easier to program the CPU.


project.name
0 Stars     4 Views
User:

Equality Comparison (8-bit)

Equality Comparison (8-bit)