Add nbsp before citations
This commit is contained in:
parent
dc77d4bf61
commit
239106c2fd
1 changed files with 7 additions and 7 deletions
|
@ -5,7 +5,7 @@
|
||||||
\part{Meta}
|
\part{Meta}
|
||||||
\section{History}
|
\section{History}
|
||||||
|
|
||||||
The project started out with the desire to build a CPU from scratch. Examples such as The NAND Game\cite{nandgame} and Ben Eater's Breadboard Computer series\cite{breadboard_computer} served as inspirations and guidance during development.
|
The project started out with the desire to build a CPU from scratch. Examples such as The NAND Game~\cite{nandgame} and Ben Eater's Breadboard Computer series~\cite{breadboard_computer} served as inspirations and guidance during development.
|
||||||
|
|
||||||
At first, a design similar to Ben Eater's consisting solely of discrete integrated circuits was considered, but soon discarded in favor of an FPGA-based design. Designing the logic alone was a difficult task, implementing it in discrete hardware would have pushed the project far over the allotted maximum development time.
|
At first, a design similar to Ben Eater's consisting solely of discrete integrated circuits was considered, but soon discarded in favor of an FPGA-based design. Designing the logic alone was a difficult task, implementing it in discrete hardware would have pushed the project far over the allotted maximum development time.
|
||||||
|
|
||||||
|
@ -52,16 +52,16 @@ Vendor tools are usually free-of-charge for basic usage, but this also means the
|
||||||
|
|
||||||
\subsection{Free Software Tools}
|
\subsection{Free Software Tools}
|
||||||
|
|
||||||
A somewhat recent development is the creation of Free Software\footnotemark{} FPGA toolchains. A breakthrough was achieved by Claire (formerly Clifford) Wolf in 2013 with yosys\cite{yosys-paper, yosys}, a feature-complete Verilog synthesis suite for Lattice's \texttt{iCE40} FPGA series.
|
A somewhat recent development is the creation of Free Software\footnotemark{} FPGA toolchains. A breakthrough was achieved by Claire (formerly Clifford) Wolf in 2013 with yosys~\cite{yosys-paper, yosys}, a feature-complete Verilog synthesis suite for Lattice's \texttt{iCE40} FPGA series.
|
||||||
\footnotetext{``Free Software'' refers to software that grants its user the freedom to share, study and modify it - see \url{https://www.fsf.org/about/what-is-free-software}.}
|
\footnotetext{``Free Software'' refers to software that grants its user the freedom to share, study and modify it - see \url{https://www.fsf.org/about/what-is-free-software}.}
|
||||||
Since then, both yosys and place-and-route tools like nextpnr\cite{nextpnr} have matured, however Lattice's iCE40 and ECP5 remained the only supported FPGA architectures for place-and-route.
|
Since then, both yosys and place-and-route tools like nextpnr~\cite{nextpnr} have matured, however Lattice's iCE40 and ECP5 remained the only supported FPGA architectures for place-and-route.
|
||||||
|
|
||||||
Thus, two obstacles remained for Free toolchains to be viable for this project: synthesizing \emph{from} VHDL code and synthesizing \emph{to} Artix-7 FPGAs. During the development of the project, both of these were solved: Tristan Gingold released ghdlsynth-beta\parencite*{ghdlsynth-beta}, a bridge between GHDL\cite{ghdl} and yosys allowing VHDL to be synthesized just the same as Verilog, and Dave Shah added Xilinx support to nextpnr\cite{nextpnr-xilinx}. The latter was preceded by many months of volunteer work reverse-engineering the Xilinx bitstream format as part of \textit{Project X-Ray}\parencite*{prjxray}.
|
Thus, two obstacles remained for Free toolchains to be viable for this project: synthesizing \emph{from} VHDL code and synthesizing \emph{to} Artix-7 FPGAs. During the development of the project, both of these were solved: Tristan Gingold released ghdlsynth-beta~\cite{ghdlsynth-beta}, a bridge between GHDL~\cite{ghdl} and yosys allowing VHDL to be synthesized just the same as Verilog, and Dave Shah added Xilinx support to nextpnr~\cite{nextpnr-xilinx}. The latter was preceded by many months of volunteer work reverse-engineering the Xilinx bitstream format as part of \textit{Project X-Ray}~\cite{prjxray}.
|
||||||
|
|
||||||
With these two pieces in place, the project was switched over to a completely Free toolchain, removing any depencies on vendor tools:
|
With these two pieces in place, the project was switched over to a completely Free toolchain, removing any depencies on vendor tools:
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item yosys, with ghdl as a frontend for processing VHDL, is used to synthesize the design
|
\item yosys, with ghdl as a frontend for processing VHDL and ghdlsynth as a bridge between them, is used to synthesize the design
|
||||||
\item nextpnr-xilinx, together with the Project X-Ray database, is used for place-and-route
|
\item nextpnr-xilinx, together with the Project X-Ray database, is used for place-and-route
|
||||||
\item tools from Project X-Ray are used to convert the routed design to a bitstream
|
\item tools from Project X-Ray are used to convert the routed design to a bitstream
|
||||||
\item openFPGALoader is used to transfer the bitstream to the FPGA via JTAG
|
\item openFPGALoader is used to transfer the bitstream to the FPGA via JTAG
|
||||||
|
@ -114,7 +114,7 @@ DVI and HDMI are serial digital transmission standards. Three data lines (corres
|
||||||
|
|
||||||
\subsection{Ethernet}
|
\subsection{Ethernet}
|
||||||
|
|
||||||
The Arty development board contains an RJ-45 Ethernet jack connected to an Ethernet PHY, which exposes a standardized media-independent interface (MII) to the FPGA. The LiteEth core\cite{liteeth}, which is released under a Free Software license, is used to integrate the Ethernet interface into the SoC.
|
The Arty development board contains an RJ-45 Ethernet jack connected to an Ethernet PHY, which exposes a standardized media-independent interface (MII) to the FPGA. The LiteEth core~\cite{liteeth}, which is released under a Free Software license, is used to integrate the Ethernet interface into the SoC.
|
||||||
|
|
||||||
\subsection{WS2812 driver}
|
\subsection{WS2812 driver}
|
||||||
|
|
||||||
|
@ -153,7 +153,7 @@ Due to a mistake in the adapter board layout, the nibbles of the address and dat
|
||||||
|
|
||||||
\subsection{RISC-V Compliance Tests}
|
\subsection{RISC-V Compliance Tests}
|
||||||
|
|
||||||
The RISC-V Compliance Test Suite\cite{riscv-compliance} can be used to empirically confirm the correct functionality of a RISC-V processor. It consists of a series of programs that perform some operations related to a specific feature, then write some result data to a memory region. This memory region is then compared to a ``golden signature'', which was produced by a processor implementation that is known to be correct.
|
The RISC-V Compliance Test Suite~\cite{riscv-compliance} can be used to empirically confirm the correct functionality of a RISC-V processor. It consists of a series of programs that perform some operations related to a specific feature, then write some result data to a memory region. This memory region is then compared to a ``golden signature'', which was produced by a processor implementation that is known to be correct.
|
||||||
|
|
||||||
The initial implementation of the compliance tests uncovered several bugs in the processor core:
|
The initial implementation of the compliance tests uncovered several bugs in the processor core:
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue