From 261c4415a3d2670d3175f72a4bdf55284f55abdd Mon Sep 17 00:00:00 2001 From: u1 Date: Thu, 21 Nov 2024 08:40:57 +0100 Subject: [PATCH] poprawiono instrukcje instalcji yosys nexpnr icestrom --- doc/main.pdf | Bin 98633 -> 99305 bytes doc/main.tex | 31 ++++++++++++++++++++++++++----- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/doc/main.pdf b/doc/main.pdf index 0f62ef8b845bfbd42626e3d7b0c8db568470e258..f8da13c16e795bcb311fcf35c8c2cf4d27c8fa1e 100644 GIT binary patch delta 33123 zcmaI6V|1WT@GcnJn%K5&TNB%y*b}_5ZDYcTjfrjBw(Vqp|9j8f54(HzQ`I@$)m7bn zs=Df_9u0TFlONF#Otr3EI{#_boGQ8u@0M&=9#Jcq6+?Eb2etC5p(hD)@{tV?_8 z9oG5RSfcTDVpOAC{L6IOV-s{aa#F|N+MvxVz*zb-8X1OA^utQj0ue5bgs%Joz8%Li zHkBZ)`ih6gg@;RQ+Jzzk5qVbBZ*gL_^N_K&*lz#SPJPkTH7odaA_uU1Txskl`_}28 zLLvcYNN#R*s+E*>)UJ-60VNANZ_cI+oWGwDPv*qo4lsI%9P5=SIQiYB`b^myUJAy! zJS%TW9&R-8lsiGq7r+PMNmyj=fy$zKWma*B?IIZ?PPohs3j;-pLUz+1DJpKw#+Y3znF-ViNEU8X9M2A>ez$SMZ!i6k%Ja#b z3!95aqgg2Sa`=#mK#klE!gQW+4fkuWeHHTnDSU!yHru!6y!@^@sZxLSD@Z0 zBkxcAdfi8}Ml94`3hndUM^#@D%U9SCubZET%{imO1S9jBQ997M@I?7XuzGpC?&2&% z@_m?1@y`chnn44qhk$Eo$tD+EjNFBdv!HJrM()|)jJ?u!zszCo$OlMaQf3dD)~H^1 zLf6dBwo{^I4#|puS2>jK`_s5f*5c;Gt>JZ`Q5{4_D^!#kW2)WPV`j0xeeVYSE}XL+ z&fMP2#nsu|*e*#4j1Y{QBS{&78YtG3i(BVL=$fv%nFY0pF(0jIvy19_(r~Tq$-nHa zOA*H&e$u&XJgqTQO=fdiZa}O}6aPb<_$KZ9$8dXlqbtd}$0hYf4eGhwe;Aey4(EWy zQV*-w7u^T;m2!_?rax{|@@6LXlQQtzqP*&=eX`|U$YDEzbtgN;Ix|0o8wgK~rjU?* zzeZmB^`}U_AF7$sOG`;=(ay+7hTng*2qw?9u*2l=F{R42BGb#_Oa*zW0{wyStp!>F zoY1bRr7df1Y25~wW9~-!E9$}Q@k-la#V=Bod*m{cakPX4HD)Ne>)$<5_J$)tB$(wo2x(be4djI32X zA$Auy<2IGho@m~nTxj?52JW8`p}p{Lgok*>@AyX`EWHw;9&eAvTez)^P>F-tFnc{p ze5!N&}%e+YsTU z_-AQasYOw9k#lQ5P87*$0yT-E%o!0MIR8T5A~?()yU$88>&4{gOmcjXNU7gS0iJa| z-aA>0;Pbpz1s(S{=<3{h%yD$j&MKpHNj&vc;ZMLhWTeC z4{8*|`-dizz@`=T6iFKFzV_AjH@p!1B&$HuYF6_#fPyyq$&fbM$1x(sVRS=0+f1b7 zQE|nVKe8v^QnR=v&~1*ifiNsM+X`igB%J+XN!v}≶Y^L)=ETlzGV%*^|b_-0y8C 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 delta 32581 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 z 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 diff --git a/doc/main.tex b/doc/main.tex index 62ff38e..40b7e1c 100644 --- a/doc/main.tex +++ b/doc/main.tex @@ -29,7 +29,7 @@ Yosys and nextpnr are open-source tools for digital synthesis and place-and-rout git clone https://github.com/YosysHQ/yosys.git \end{verbatim} - \item \textbf{Install dependencies:} Make sure all necessary dependencies are installed by running: + \item \textbf{Install dependencies:} Ensure all necessary dependencies are installed by running: \begin{verbatim} sudo apt-get install build-essential clang lld bison flex \ libreadline-dev gawk tcl-dev libffi-dev git \ @@ -42,7 +42,7 @@ Yosys and nextpnr are open-source tools for digital synthesis and place-and-rout make config-clang \end{verbatim} - \item \textbf{Initialize submodules:} Make sure all Git submodules are up to date. + \item \textbf{Initialize submodules:} Ensure all Git submodules are up to date. \begin{verbatim} git submodule update --init \end{verbatim} @@ -58,6 +58,26 @@ Yosys and nextpnr are open-source tools for digital synthesis and place-and-rout \end{verbatim} \end{enumerate} +\subsection*{icestorm Installation} + +\begin{enumerate} + \item \textbf{Clone the icestorm repository:} Download the icestorm repository from GitHub. + \begin{verbatim} + git clone https://github.com/YosysHQ/icestorm + \end{verbatim} + + \item \textbf{Build icestorm:} Navigate to the icestorm directory and compile the project using all available processor cores. + \begin{verbatim} + cd icestorm/ + make -j$(nproc) + \end{verbatim} + + \item \textbf{Install icestorm:} After the build is complete, install icestorm system-wide. + \begin{verbatim} + sudo make install + \end{verbatim} +\end{enumerate} + \subsection*{nextpnr Installation} \begin{enumerate} @@ -71,13 +91,14 @@ Yosys and nextpnr are open-source tools for digital synthesis and place-and-rout git clone https://github.com/YosysHQ/nextpnr \end{verbatim} - \item \textbf{Install cmake:} Install cmake, which is required to build nextpnr. + \item \textbf{Install dependencies:} Install additional libraries needed for nextpnr. \begin{verbatim} - sudo apt install cmake + sudo apt install cmake libeigen3-dev libftdi-dev \end{verbatim} - \item \textbf{Configure nextpnr for the iCE40 architecture:} In the nextpnr directory, run cmake with the iCE40 architecture option. + \item \textbf{Configure nextpnr for the iCE40 architecture:} In the nextpnr directory, run cmake with the iCE40 architecture option. This will also integrate Icestorm. \begin{verbatim} + cd nextpnr/ cmake . -DARCH=ice40 \end{verbatim}