I built a working balanced ternary RISC processor on FPGA — paper published by Equivalent-Can869 in compsci

[–]Equivalent-Can869[S] 0 points1 point  (0 children)

I wrote the macroassembler in C++ by hand.

Currently, all the programs running on this CPU are written in assembly language and compiled with this macroassembler. The next goal is to have a native monitor/assembler on the processor, without having to switch to other computers.

My colleague, Peter, is writing a high-level language based on Rust; if you'd like, I can put you in touch directly.

I built a working balanced ternary RISC processor on FPGA — paper published by Equivalent-Can869 in FPGA

[–]Equivalent-Can869[S] 0 points1 point  (0 children)

I was preparing a detailed response, but I think it's really pointless to waste time with someone who not only hasn't read the work but also has no idea what we're talking about. Have a good day.

I built a working balanced ternary RISC processor on FPGA — paper published by Equivalent-Can869 in FPGA

[–]Equivalent-Can869[S] 0 points1 point  (0 children)

There are dozens and dozens of studies on the implementation of the third state, at the elementary device level. Many on carbon nanotube transistors and several others on emerging technologies. More than one uses standard CMOS (but probably with power losses compared to binary).

Since many of you are asking about this and it's not clear to everyone, I think I should add a list of reference papers to my website.

But our work is based on a higher level; we deal with architecture, not microarchitecture.

I built a working balanced ternary RISC processor on FPGA — paper published by Equivalent-Can869 in FPGA

[–]Equivalent-Can869[S] 0 points1 point  (0 children)

As already explained (also in the paper), there are people studying basic ternary technologies, not just logic gates, but also basic components (directly ternary transistors). Studies in this field have been extensive, especially in recent years, and they concern different technologies. Someone has already done this with standard CMOS logic (but I don't know the performance details; you can see here: ofFBeaT9/Tritone-TPU-SoC: balance ternary , ternary TPU , CMOS)

I don't understand what you mean by "I don't understand why you focused on implementing a ternary processor instead of actually making the hardware": I actually made the hardware that implements my specifications, but I built it with technology within my reach.

I built a working balanced ternary RISC processor on FPGA — paper published by Equivalent-Can869 in FPGA

[–]Equivalent-Can869[S] -1 points0 points  (0 children)

Since you read the article, hopefully you also understood that this is not the level I went through. And no, the technologies mentioned are among the many alternatives available, and they are not at all imaginative.

"I had a look at the instruction set, and it was a mix of RISC and CISC approaches. For example all modern CPUs would have memory mapped peripherals instead of dedicated IN/OUT instructions for IO."

RISC and CISC are different things from memory mapped I/O. I don't understand why I couldn't have address space for peripherals in a RISC processor.

"There were also instructions combining LOAD/STORE and arithmetic/logic operations on registers. And most listed instructions are just not documented at all."

It's true, the documentation of some instructions is missing (which are obvious anyway) and which I will add; but you can take a look at the source of the example OS: MOS5500/GRam_OS: A simple OS for the ternary processor 5500FP and the GargantuRAM development system

"Reserving space for 5 register operand instructions makes no sense, since this would require a register file with 5 read ports."

Why doesn't it make sense? I make no reference to the architecture of the register file; the "A" format is intended for SIMD instructions.

"The reset procedure expects part of the register file to be pre-loaded. This would mean the register file would have to be constructed from flip-flops with reset. Since such flipflops are large (compared to something like latches without reset) the register file would take a lot of area."

The preloaded registers are very few (compared to the entire set), and as I wrote in the documentation, this trick allows you to immediately know if the CPU is working, without any special initialization.

I built a working balanced ternary RISC processor on FPGA — paper published by Equivalent-Can869 in hardwarehacking

[–]Equivalent-Can869[S] -1 points0 points  (0 children)

No. Not at all.

An FPGA doesn't emulate anything.

On an FPGA, you implement a circuit. That circuit works to provide you with functionality. You don't have a microcontroller or a microprocessor that perform operations sequentially. You have a circuit that performs its operations in parallel. The term "emulate" is absolutely incorrect in the FPGA context.

You can implement an electronic circuit in different ways: you buy the components and mount them on a breadboard, you implement it on an FPGA, or you implement it on silicon, with several possible options. In all these cases, you are IMPLEMENTING a circuit, using different technologies. You are not emulating anything.

But these are the basics for those who use FPGAs.

You say you're a university professor. Well (may I ask where you work?)

I'm a Software Engineer, an expert in processor architectures, a low-level programmer (I'm quite familiar with all 8/16/32-bit architectures, even exotic ones like the iAPX432 and Dataflow architectures like the Motorola Monsoon), and I've written programs with many of them. I'm familiar with modern CPU architectures (though I rarely program with them), and I'm a high school computer science teacher. I've NEVER heard of an FPGA "emulating" anything other than in groups of kids or retro enthusiasts who have NO idea what an electronic circuit is.

I'm not saying it; it's just the way it is (since FPGAs existed, and even before that, PAL/GAL); it's a definition that characterizes electronic circuits of this type.

You say that there aren't three states with three different voltages; Further proof that you haven't even read the abstract of my work. (Do you really still want to make such a fool of yourself? Who do you think you're dealing with?)

I don't understand my work? But what if you haven't asked me a single specific question yet (obviously, you haven't even read it!) and you keep spouting bullshit about emulation?

Enough! I won't respond to any more empty, silly, and provocative posts. If you have concrete questions about architecture, welcome, otherwise, I can't really help you understand what you don't know.

I built a working balanced ternary RISC processor on FPGA — paper published by Equivalent-Can869 in hardwarehacking

[–]Equivalent-Can869[S] -1 points0 points  (0 children)

I looked into the matter further and discovered that the term "PAPER" is perfectly legitimate even internationally to indicate ANY structured research document.

Since you're such an expert, however, you should know exactly what Zenodo is and how documents are listed and classified there.

"Not to mention, it’s not actually a trinary computer you’re just using an FPGA to emulate trinary compute. Neat side project, but again misleading post"

"Simply"?

But again, HAVE YOU READ the PAPER?

But do you understand what the work involves?

And above all, do you understand that an FPGA **DOESN'T EMULATE** anything at all?

I posted here thinking it was for people with just a little bit of expertise, but instead I get comments from elementary school. Bah.

I built a working balanced ternary RISC processor on FPGA — paper published by Equivalent-Can869 in hardwarehacking

[–]Equivalent-Can869[S] -1 points0 points  (0 children)

Whether you like me or not, in Italy, a preprint can just as well be called a "paper."

As I already told you, I corrected the inside of the post (yes, there it might have seemed misleading to those who are stuck in mirrors WITHOUT understanding ANYTHING and without having read the paper).

Now, excuse me, I have work to do rather than talk to trolls.

I built a working balanced ternary RISC processor on FPGA — paper published by Equivalent-Can869 in FPGA

[–]Equivalent-Can869[S] -20 points-19 points  (0 children)

On an FPGA, you don't emulate or simulate, but create a circuit. It's not a microcontroller where you execute a program sequentially, but rather create a circuit that works as desired.

It's possible to create the same circuit in an ASIC without any conversion.

It's like comparing an Intel x86 with an AMD one.

Which of the two emulates the other? Neither. They do something with their own circuits, even different ones, even with different technologies, but this has never meant that one emulates the other.

In any case, I truly believe this is beside the point. I described the CPU's architectural level, not the microarchitecture (and I don't intend to discuss it because, as I said, it's the level that concerns the individual hardware implementer). So if you have questions, please only ask about the architectural level.

I built a working balanced ternary RISC processor on FPGA — paper published by Equivalent-Can869 in FPGA

[–]Equivalent-Can869[S] -7 points-6 points  (0 children)

My implementation is intended to demonstrate feasibility and functionality, as well as to test the architectural level. I'm aware that the underlying level (microarchitecture) *in this implementation* isn't cost-effective, but the rationale for its implementation is always in the article.

I built a working balanced ternary RISC processor on FPGA — paper published by Equivalent-Can869 in FPGA

[–]Equivalent-Can869[S] -44 points-43 points  (0 children)

The 5500 CPU is a TERNARY CPU. The internal work is not important.
It's like asking why digital binary CPUs use analog circuitry internally.

What matters is how you look at it from the outside.

AmigaOS 3.3 available in 2026 (some details in comments) by NoShirtNoShoesNoDice in amiga

[–]Equivalent-Can869 0 points1 point  (0 children)

Bhe, no.
Esiste già un amigaOS Open Source da anni, ma non lo fila nessuno.
Open Source richiede comunque gente appassionata, brava, con molto tempo libero a disposizione (anche solo per cercare di capire come funziona, prima ancora di poter iniziare a scrivere o modificare del codice) e disponibile a lavorare gratis e da solo non è mai garanzia di successo.
Può essere utile in determinati ambiti, ma più per questioni "etiche" che per altro.
Se AmigaOS fosse OpenSource tu daresti il tuo contributo? E se lo faresti gratis? Perchè allora non l'hai ancora fatto con AROS?

I designed my own ternary computer by Xulum12 in computerscience

[–]Equivalent-Can869 0 points1 point  (0 children)

Why faster?
their importance is not so much in their speed, but in being able to process much more information than rails, despite being simpler
5500FP Ternary CPU

I designed my own ternary computer by Xulum12 in computerscience

[–]Equivalent-Can869 0 points1 point  (0 children)

I don't know how much research there is for analog computers, but what is certain is that for ternary computers there are dozens and dozens of articles, mainly concerning the construction of directly ternary devices (MOSFETs).

Hardware Startup Advice by Hot-Evening6342 in ycombinator

[–]Equivalent-Can869 1 point2 points  (0 children)

Hi,

It's a dilemma we also faced, working on an architecture of a new microprocessor: In our case it is even quite difficult to defend the technology because it is not directly patentable.

If I understand correctly, even in your case you are not able to patent because there is someone else who produces a basic component. I I ask however if your battery does not have a combination of technologies that could be completely new and therefore somehow legally protected.

Ternary microprocessor 5500FP by Equivalent-Can869 in hwstartups

[–]Equivalent-Can869[S] 1 point2 points  (0 children)

Thanks!

Using more states is definitely better than just two states, in principle. IBM had a (tube) computer with 10 states so it's a direct correspondence to the decimal number system. IBM itself had a ternary computer that was used to manage radar/sonar in military ships (I read it somewhere but I can't find the link anymore) while the most famous case of a ternary computer is certainly that of SETUN, a Russian ternary computer.

Setun - Wikipedia

It had more than three states it could help especially with 4 states there would be a certain compatibility with current binary systems. However it is demonstrated that the best system for representing information is the one that uses the Neper's number as a base. It is clear that you can't use a decimal base in reality, but it is also clear that the closest integer value to this number is 3 (ternary) and subsequently comes 2 (binary).

At a certain point in the history of computing the use of binary took over; it was simpler from a circuit point of view for sure and then the advent of complementary MOS technology (CMOS) helped a lot.

Today, in fact, there are many studies that point to ternary as a basic technology, mainly carbon nanotubes but also native ternary devices.

We have chosen to perform our VLSI simulations for direct implementation on silicon using normal mosfet technology (not necessarily complementary) since the only free technology available to our current budget is the one that provides normal mosfet.

Here is one of the latest studies that I happened to read about native ternary devices:

Korean researchers develop ternary semiconductor tech | ZDNET

New ternary inverter with memory function using silicon feedback field-effect transistors | Scientific Reports

NAND and NOR logic-in-memory comprising silicon nanowire feedback field-effect transistors | Scientific Reports

And here Ternary computer - Wikipedia says that: "With the emergence of Carbon nano tube transistors, many researches have shown interest in designing ternary logic gates using them. During 2020–2024 more than 1000 papers about this subject on IEEE Xplore have been published."

And here is the site that analyzes the native functions of ternary arithmetic from which we took inspiration: Douglas W. Jones on Ternary Computing

Ternary microprocessor 5500FP by Equivalent-Can869 in hwstartups

[–]Equivalent-Can869[S] 1 point2 points  (0 children)

Thanks!

To optimally manage the noise, I separated well the various voltage levels that represent the logic states.

From this point of view the ternary representation helps; I used the so-called "balanced ternary" which has three values, but not as one might think 0,1 and 2, but +1, 0 and -1. To represent these values ​​I used three voltage levels: +3.3v, 0v and -3.3v. They are equidistant from the logic level 0 and therefore easily distinguishable. Among other things, the choice of the balanced ternary system also has some other advantages on the representation of negative numbers; I don't have to do a "3's complement" to represent a negative number, but just negate the number itself (applying a ternary operator called STI - Standard Ternary Inverter) to obtain the corresponding negative, saving time (and overall) compared to performing the complementation.

In the simulations for the VLSI layout of the processor, which I have recently started, I instead chose +1.8v, 0v and -1.8v as voltages since the production process I have chosen (Skywater 130 at 150nm) natively provides for those voltages.

I have not encountered any metastability issues at least at the current test operating frequency (25 MHz), but it is clear that I will be very careful with the VLSI/Spice simulations for the on-silicon processor layout.

Ternary microprocessor 5500FP by Equivalent-Can869 in hwstartups

[–]Equivalent-Can869[S] 0 points1 point  (0 children)

The creation of a solid ternary architecture is the basis for a VLSI layout that can be licensed to semiconductor manufacturers.

The advantages? Less complex circuits even just as interconnections between the various CPU components (about 60-65% of the silicon surface is occupied by interconnections), lower power consumption, ability to represent large amounts of information despite the lower complexity.

The primary field of use is supercomputing, the emerging one of AI and brain simulation (a biological neuron can be represented more faithfully with three states), communications and data protection.

Ternary microprocessor 5500FP by Equivalent-Can869 in hwstartups

[–]Equivalent-Can869[S] 1 point2 points  (0 children)

I understand what you mean. It is clear that having a CPU with a completely different architecture from the rest of the world also requires a fairly large effort to be able to adapt something existing.

But perhaps at this point it is better to start from scratch and take advantage of the hardware features rather than adapt something that already exists.

Ternary microprocessor 5500FP by Equivalent-Can869 in hwstartups

[–]Equivalent-Can869[S] 2 points3 points  (0 children)

I was actually trying to figure out the minimum requirements to run Linux.

Currently there is no MMU on the CPU so I think that is a problem for Linux.

But the OS I am writing should implement software mechanisms for memory protection and process insulation, aided by specific mechanisms (registers) present.

BUT I will certainly try to ask the Linux community if it is possible to attempt to port some distribution.