sy2002 / QNICE-FPGA

QNICE-FPGA is a 16-bit computer system for recreational programming built as a fully-fledged System-on-a-Chip in portable VHDL.
http://qnice-fpga.com
Other
70 stars 16 forks source link

Document architectural basics #56

Open sy2002 opened 4 years ago

sy2002 commented 4 years ago

Gentlemen, it is great, that @MJoergen is diving into the hardware architecture / FPGA architecture of QNICE-FGA from scratch, because this shows us, where we might want to add those findings to something like doc/fpga-architecture.md some day. This issue is for now meant to collect links to questions and/or explanations to simplify finding points to document. I guess such a document would be a living thing and never really "complete" but I guess "something is always better than nothing" :-) I would start with that in V1.7 or later and if you want to contribute to this document already pre V1.7 or post V1.7 feel free ;-)

Here are the first links in the collection:

P.S.: There is a really nice free online timing diagram generator where in 1min you can make professionally looking timing diagrams and which we can use, just in case our doc/fpga-architecture.md needs some timing diagrams: https://wavedrom.com/ We might have a doc/fpga-architecture subfolder where we store the Wavedrom JSON source files for diagrams (for later easy editing) as well as the PNGs of the digrams that we want to embedd into the MD file.

P.S.2: We might want to make sure that the document in issue #15 is more on the assembler programming side, and the to-be-made document of this issue is more on the hardware side of things.

sy2002 commented 4 years ago

How MMIO devices should behave, e.g. as written here

   -- Merge data outputs from all devices into a single data input to the CPU.
   -- This requires that all devices output 0's when not selected.

Also here is another explanation which is useful for this architecture document.