From 31e2d9f017eb65e4f315f5f42383a2152ccd9d1e Mon Sep 17 00:00:00 2001 From: pettitkd Date: Sat, 27 Apr 2024 12:27:22 -0700 Subject: [PATCH] Fixing tt-um-lisa table format (I think). --- projects/tt_um_lisa/docs/debug_uart.png | Bin 48108 -> 48500 bytes projects/tt_um_lisa/docs/debug_uart.txt | 30 +-- projects/tt_um_lisa/docs/info.md | 294 ++++++++++++------------ 3 files changed, 161 insertions(+), 163 deletions(-) diff --git a/projects/tt_um_lisa/docs/debug_uart.png b/projects/tt_um_lisa/docs/debug_uart.png index 395de2e5cb1d816d27c65592bb98dca17b4051a7..33f7f11691f79dd9ea35c7d3573a4a3d09a40171 100644 GIT binary patch literal 48500 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
f~U@0nl@ds5W$ zb@S=z)$P5@DEqK|_tM}p;Vsf^2! zol)X^MtwSXt<(pfYpI`Nf~yI@dfJ?nz^q1vhRzi1C@DkJM?f@(y@)F*mfFa#o46Rt zJ2oc3M#zDhSg!gTtDH@4_2ACn(sSCIa~{bmuKvXCWQZX0<)r&CMlgJdgj>o>mdt4E zJ@+8*@@UP5HVEWYy$0k6tbuq2=$!RAnNn;YZQnDOv(MaCoOp`VNlh%wos5G2FGp-T zJ+4uHZ3h3M)}?lSd9R*rD~VMB|ZTG;cFdNd)`=la5rp`__o~t z*8;=@e;AiJ=vyP2qb+q-_tl15+Dwt!g%D-j7h#RXg9z}iss97b&MF+P3>l$GcFov` zkcEPsnh5nKx+gKq`LE~DGOiwZN&`F98c-#ZA&RN&%5?>{C99yy&wQ#3Q~y~|RW_#H zq^dHPW{YLtyglrot+--bP~?D72yqLswZ3)iVzyagP{vAR0b(8ow%!gbLISJp+8!sU zlZl3&#d9P?DjQ*UFOB_XP9e4b_QC{w)s|A|(9`gtGjmx*riKD^HXCv8(v%}Lh(*TJ zw2`&6oH-MHw#A=ZxB_t71iz*-aE%sp>iNq`W4ty&T@#j+v)MCQdn%*RmHIY1I@s`8vQQ!OT;dj zW{#vlNYCSdVvKdLciYO!5{!_bw^D8xqdaC%m;U+}5d-b!)Xz-T*Y&E^ z)=-r)2z&)9jN$5Xme2;bS1K85ygCMt#ul~G=2&u6&8ilGf-meS!C%me-L0>QNt|b0 z18xX?FhJ9NFpWI7a60z<$$Nn8hj+RWrimqXJseRYe~f7>N}yJ-?M%r&{|{96Lf&J*qCWmv0G!4d1Ya^}&$fLl+7}Lx4WQ9;gLZmssIQ z{)6nQR&8&Uk9=8EmJJ!}YicicW}Yh0k%f%ap@p__q4GZ7GQqEDh>^Ak#gNX!8}LA6 ziG_yv2QVWxEQ13UAk-^Fk0L3HRO>acM1jEHAL+S6OiP3k)|C-N!INe~A!efTLBB_) z#iF`#V?mFj*Gw)65&jv3672|mF3ehtyfeJJs-s8X>BLF>@w#@mYqV(Ru@uNZ?8)qD zuSFoKx*hI~!1Yd8BLf3~50bRluo#TWtsCJ7?*d>;{D2F@Gs zFBQe&dxFoe{{qdTWe8iy-_JFuoT;(&_!AQY&BHg}96G17e7}T33u&MiGZY&Y%Ra6x zUMK%+Q{{#%pZWcC^_@B%G3} ziOFoZ#%$mx_T&dPlWyB)1N&o-l3k;Hq|VSO>8!ukCIFbxwas+go*zTdw?OJjG+1i_ zHpG-ZvE+hgoGdN-22@-!*ZeH_^jTsY8&eSN)WJruV6cANc=0k9^kJCn-7ZS7cJlf+ z1&`psPI`bX3X5W~vPx`>%kfExfBC!y%=hgN97ci_Ertu?=D_0qSoC<|Ixk3r9)Ry? zz=$6QA~eb)PyUU5ECFC%{d|+)7(%Pr**HvkZD!sQW46M-*O+W=`7)P95tl(=et_SD zs^+tWK7uWJ`Kon7h2}VXKH@C|){&Kh<*_CUj5nQ}M@5b2jeqt3J`{ZdU+L}Yczmy| zw&8EA2WcOmB0|Db9rztR=bzpfVZF>|u?g$a1$P(l9A>CTKj%5#_pTSziM=7cffWJ(4~_=z zOi;~Lk$C?Bo+~vAd}wzNqOp{#_3=Ee1joWFFzg@rD(xu zU7ZQC{n??p2;b*B$usF8-GN#V>Y9I-75-n9_5D1ACRQmv^4453Z9!7bggTenp2pss zxjPRW%9id81zBXO*sycMmQR${5PvaI4!i&~)JLOv>4%hWI19Jq{Lkb2`cIJbAxmKp04dYZ5f01ZOaK zcv7_V4IAOjv-i0xt6Ht<((y$|?czhIYl4r^456_^y`z~!zf(|;ykIrfEUy@k*qf*D zqmZwq*Wc^VKC3`EHPR`OjvDM`NWdpCFFnJ$83ud=oyHu>8R}?ijj_6Cl&uesg&@*0 zNv9FHRWr>-e?NFsd7{d*CFqspcX!9grKI>~aW&qXtMKDv2^0MlegqcoZZB*Q`bDC3 zSc3pA87%E_{;gel_RslRyQBW}am#s@`Ha?#--EdSfn|kg$`_XCKq1(yI%u_hC}GZo z(S_$a%?ll)eJSep~j!76(R`lcFQmtdId zi2|DzT#U>Bpu^Ev>=-;Z%USQAk`0bM1-n)7q5&^yuT6n1xj*jg(pD*+sTt^@2j+3) zpWJWepWChACCPe|v@=wp|HF_Maj63SwEtOI|7|Z$i5?D>_}Jv>;<+%gf-Pk9#ebW5 zm=kB>vQtv_PT3+kX!}-V#OZ-YQSett7ip&lJ!U_vBPpVyaErDP1r}|(VJ>XIc&~!v zYr}BYga$MQmGYNj4LNxB*_%?U%$4!}cOWwvPLC)F1hA=pJtYMSEW?WOb*n#ZS+lAn z4pz&+ObOt=Ui)1NP7|AHJJ!XYzc2{h3Rnm`;CzFb$AJUDimCydtR4dF-`f3P2I!<} zI^=n-MrRGvuLelY2r_%zyY#EqD5hs z@H;sDyb=unf&c$%wm9L)2`w;Evun%M3{`+Ak2wxz$=JZbe{O~BfoiWzXZ4rUg@M;$ z(YRnL+qOQqI+#P6HC1VwMf2`8|C}>^zW=yohdRP>&ITI{0o-^A0_Oe`?4{kMLDacV z5m^y7&o={G|8+p$;4)1!xn&mA%YyL{@7>&7ScN1kAz{jr!^w8UFFh`Od@#Y%`k}ph z&=wlzj^&^HjT$G$t>GP_$}%i_j!LzV4)h!bem89t07ShXw2)Y7-qmZ37IStVsm96i zH&66(wjVt;(sTMUic36gb)7Weyp`o5>GSgin)9#+XPBgq>4Dp>&=5=C_~8TDF4KKo zK8wnlXp7EQ&Xb=I-e55m_I z)F4uEhWRV))rLS6{dboAal3#~d>E=kHS^~;RLMU|Uo-rz($$H|af*13%F@bcloT0X zE$ALy*xLw;(dOrsI2KvyWZWR#6Di)3y~R9>4aA-1JKy&VpC;z3%~Ji+YOSHTa#U6X zeX7X?rHf4SnfIZnm+cdj9rDrjG%+JJGZP_dZf>hAkL+gfzlN-OiGVlQM`#Y#Eub@y z4^P+C6rxMKNnCwG^Vs&Sqz#GSE4gBfDrKw9gVv`nOd1{FgTTDlXSK(H=)t<;Ny!;-Omq z2S;20tm)W~559JQ;G9BU#{TijI*kyapg~u;!fg zug&2osw8vX$4S zPwxF7%PeppXsWt9KZHbV^F#_Fnru6yN6}!_dJL0{a|IHJGcafsZIka=aKKE78r+8a z@B!~RnPjrBwy!x`Idi1_|LRTbk9Y|qC-$oL>e;6FJYd#Q6}=xCO-d2iZw>%|n*nLQ zt%sq>5Sl%NMibyLM@a=$0;>SX;Y^{OBe*%`3lTU6NU5a~1 z>)?UH#Y1#=W*veEA)+N!6Q%?#(QSO^9i#p3q@f;OIf4QrYR}oemrvw_tPvz1hoH$i zFvhehk}@>hI*zgJLRs#q|5YR>bft31exuPx-}TLzRD!kLO(`3-Nu&|Vn>qOAa)kvd z{l~h-F(a?Ihp}KpN&m@@TV0#G4H9@VbL^xiJS>p~2RTo|1MNA4PzINui{s{~a#WzV zy3lCRNrqCy5Dk9N+-yE?`K%It3-P@c@+|&ZpNyjAs36iGkk756WEkHxkkfPJb|mTd*n}&pT!N_PXf>m-q!4lERzUE_PkXaiE&Gv2c=sx|0`9?Uxkj9c@tSJc_rw>zn%77+1?}b(}w6srGP}G zaxm$V!;+J0vDh+Kgj0MfG(2|Y%$E)!)q@C5`5s1&>6-st3ITK|Mh?X<((2Jg_>2^v z`BRX1;+zGytr}}mdUF2En+P14&+qik93VJwz48P`Gjt9}Km~Kjhph6yI6?sTskjl` z3+~Ovy|FmObs*=9HLnIbq9$E{`B8vZdUsQ!3LGs^P6=5zEJB1Cbdx6p%h38udDwXG z33FmIucYkt!Wf??V~Zy)Sq$hZf?{GnC3Nf&Qu&++x9pYzc2biyK^H| z(%-PH;<-EtU(@7L1C{phw+e7XcwX;DH25~TS3)@XDl43;=;*~1O(fd0udY(K)t}*1 zp_jR+k&_%uF#AsQ^wG;G&L!)PKW7vrU~ao|KBkT9G079f6obc?#-Jhj@KMk)RT}aQ z)p}INkcg&(Do2JUp<5?Gynkwl+RT#v4x09WpB&lv3+QSva$Puu33`_caM^3sNtewai(25W^hN6`1b$yHKl_kuCC7eEyqn_GQDgD&`+NmI5lk<# zp74)lqhJ1#!z^RI(+`Sxw(XM+2=*8Mv@E-?qI=Nx0g>v{Jt&~!Nmj^Q&Xj^Ihc*?4%4Pg* zf;#rok^go7nyM&zr7hWs3h`;6VF?G~>kmGYJZ#~nrS0yXAuBth-!;$--yQ3ez9hYz zc(sCjh;mtL=tiw~;9a0;j4<5wxG>@D^U?0i_}wxQRRZfLB9&|JD+Osc!kFUp5k=)~ z@Ov}(z1)(|3*)@CXzouoJCj;$9n7$Zhc+8ACm(ripA`g%ZYyPXaHCT}BlnFfIu#Ry zomr>qVOTu3{`i(6QiK}p=Kr6-}W_mIEV&;=vuj}xa|1WnKlJrhR>9>D( zJ;dtrZTp|q%8Ekmkdj5u9BU*0B`Y4gV#Y`wxgS|-6>pW4C`p4RuWNMrWqwriN)U)l zT(tMPGzZR{wJS=ZarcWG;l>&D#Y!bXJi$>$%=n|xD%F2oIY~k6d9jsl#y~m8V!pRb z6mFj)<Mk>}FocwuHB>Y903Ktfm*%~5$pzWuc==q?!X@U`jj2Ogl)$lHY-A*^^I z;KZ$M@cu$zNDIFgp$U3tBEHydw&iih5G))y0IXRwKp&e$E0I;qvpkxiNvp^Zpqtnv zdz=^9VQ`!!(Umf}B$*_ELk*DDB)}xc*aa3;6mXk^&@o3H$0oyODy;wajYJheNTvW% zze?=c&F}N7{aK<7aZ$f;97uj=8vSx9p-^a(bBsXKr?KHyFgziM!vyI(#XxbEc$*P~^=$cG0ISp!dCpa`!S>|JQX>lPX&r zr5{*UxxWX~Cyp?3-Ui(Vp6~uqZ1Q6-WB6k_S@IlLQ@If)Dk5wkOD>ZGAX3m#(5ph7 zCEF`gB(BOtYhzUAlSbvIv_kkM@wH0$xe3RWOK77Y;WJz-1>uQw0Bz^o$XD4G%an^A-)jb7>Y_F6$ zfVf0SoRWtylDYfWg0-pyI5r^tZC9N=%Js&KAdac5O?=eh$DWmsnqk_M<+of63sF$Bzc_oXzRk3Q&FuwT!f;;M)R2Sz zD_d$L35B%p7Qz5@FT$M#bVtxOXGImiMAhu5^&Mg7n{hV)^R;2fh2~mlzD*GgTE-{m z%S=1UGXpP_oa%&wTiJm70GPKOWM9i}%W`7F1RQZJlyueS7$N~a+CI~~G=PMeYR1O| zjQ1}8?ZY9m{rJ%4rhkKcKAa!jSYOBIpNb^TgZwkgQZZ&@x$0>8e;!u>0ks$n7PP(0 z6li9R2f{E!66b#RlnrOu&TY)z!-n1u&zkSr^3!pI%5NVG-YqR|bG;nKcKI zU6Q$fLrI7CTbFeYLkl72g=>!qP(b09e`}6MLypG)p)omHVPl?;9JSD+^x|W}pxYdQ zCwdC^;k)U$@3Nv+#gfOrynLK+I+gL>LENuw7ehST;E-r1vH9xxPk@Fm(iW#!DNn6x zL-9oR?tz?z{@Q)|th0rZWmc3fp~E;MR)Q%0re?uMiaBt(jPBe+Mu zy$ZEVw6GF@FM&b)^yl@`9p2*YVas0LQGz9tpa ziLZ}m+6=AgM}gT-G%N*>j>c1tWeaA-wNE!*ultRP?_FD#%?|G^g0_2-C1Z_PT-)G` z?n%RYA6|J&KZm`M{as~ju}7cL+Rm9beY$HVObzZfl}OA01Hrq zbeIXF2hVAC#?;yFixCrq$l)saTC-t97hEILvui4vA(1Dy*>4#bo=K`}Ut=`>vHOXgr6{O20td>CMwW zCnO^T!nby@1pa7iVW4(4SpWdkFlCc2oIHTvK0PbPkw>mz17UB;v4y<~#XC0|pnp^| z{YK67FOI#P(j}fPn!sEQ!YwG<@HQ(e1otC22y1!Mbd>WY+)N;rf)GGubkfwK?fOe@ z#wUa^4pg^fv6dfCX__F{EY1Pg?$p`-GR%2G8`>Fj8K>|HO*HiTpN!771lz%>CiO?| z4~$@tDG_d(r(ShiZf@&p^K*=BK=-{B^)T z)Rj-MWiQ)Vf_Oy69soS1+lO(1yYdbS@>?1~AjDtCVw0<0nu$BLWaOs7ICvi0=(+;O z=9y0E!71?O4WjQcf#QmEr1x(G_~TASHSc}O7ke)R`|D) zeVYHc6FxT`5e(mKupwtcMRMH-l8Hgr=hK*yx>U6pb#S${q0LDwc^7MU=|*3Nm$N(5Q7Iy|@1VE>vNCokYajzIKjsr( zO;Zh^>qc42QBrba6x3-R_qm4rmacg=@_(KSN)Z35>4T7kEN9lnv7 zzdo1a+tb`ldQzQr#oX9_k z-`S>n|H?XbYMrul_m*xHDV2*1HlKpzzErmVlJQA!>|;3|@HY5vb*?B&aU{+ozUVmO zGQFvWl+{}*{K{CJea3qL&w1_~qFm#rsYSg4?gGRCxb$Iq;$HhVn+uz8WKG?)K>*nt zv3)R}VjN*6B7f(_k>4smm6js0yeD~OY!sC^fd#QMCA2h zAe~NBR}f~$b`EZQ16pG1`!8SRx6!h~7sJd!$WovypLOq>X%?@s<0513renV@Kk$Gu zsPmp1g}jDwqmIGb%zw>P&ozCegPd|v|BQ&o*W z4QPPn`wWpMu3}m1jmWreh2vD&*+-S6-;!~3vFgR% zoTA_$_{IhSOm>zGL4lBQrc7C@EV|gANbsM{q_nnO{(jaK`Gh)R_W!j23RSCWJMi=I zHH)b((<{;aF5$$+KgmX>=ZQcsEdtM3&koQu#r)$oLW<_jdHC^hLJK;5E$r2H|e zbMM(IZK6Uf7mn8t?#>We#Ksq3`m34>@?z#;ska)e)`Vh(OVMUEA->(lp2+Sx|T$V)b2%u;wGy&P@@u2_pzt< z(R@$7Gf0VwNb5gA&MC{v&@TkP;QP;4An|IQNgX5aVi7(E&&~na4=yJH2bc{(bLN~G z3iCZ}pnT3{lj3O{Y?1+`!(j1b8*RJkS^B027GxkQ!kopC8C`l=Sp$yPxScpz6wCOw z6PXiEkYoch+6*zhc<$-mZRrWrWyEPb$IHkhVjkNSp;9+Kg6ef^rY+Cb1GBVxzQxh& zh|X*w88jfa!e(@lQ`SlX?^cZ^zl+pkx#kwWkh5bFdm_G82Vq zYeN2uS@@+p!Rd&>fB$nhSzShUU-<2z$Ycj(ROd*;WG-`DpqcM0SjB{o%1!MFwP!P2 zrM4MUd?fhtU6WVrQ&HgA&)I)E?19c@Y28uUK9i!kjhinJ#o#|e7zmCNMKn{29OpK zIiVbjob$20%=nlJ)qnL4O{T5QE{)BjFtCsyebi)s)Xbt|+;DOHrHJDl%|!Kq{+vcO zQ?&#g(6|Y1HQWZLg{_u-YJszl*bAwFAn>lf&k8x5mw9eZia^Ncx)R*Q>z zic_YjtSvh&M_(bh?tHJGco>Sy@q(<;&oJ*dHqKYQUF{m2nsN9{r9|GzVFb0|HKkR- zeaipB4W;L6n&gMHeYp@IX~PD$yUW;&sf)U?FK&!yqO7F>RgW!Cb(8qKL94<1!-7J0 zI<%=b#d2pwrf&U1jq$PkS2Ul~k(grw||P2bG)F?s?j zl|s5&`V3Wum>WlbS59hgyBDHR+7=joV^k>~Pa1<-sdhA9*ePw(gL`{+^&M7JhOCwdoI#8e#HOg8EM6NfXM8D*tJ43ZNM&tq!fN4- z>DJI%KVCuyY;Km%?WJpQgStDyS~n_Rt~S-3@|t zr?k=~E!`ke(%m2p0@B?jT`C|UUD60hr*!kS-+lLu$8hkA;n`=O)oabUG~=Cg79#W{ zH@)yZ&BG(9EM&JctS{v=JHEB!RvLIb*F;9nAAPrsdRT^#j5K52+bthj&w@oBYfd3Y zBIkNAdSL#kjzZAW>B&1&wBOyE^*+w07hAWbO+pIW+!EfRxt%s*3wB~i8vo}H_z8N2 z`vx|ANOM|>KC+yPOY-v^*yK6j7D08WvH5cDl;w~k2GxYh`ly7I{6Pdh=5jdzW(bw% zk1<`5zzcUc=6hBnlD}oIHCLm3KMaz_x&Lx@-+$B|CUzNXEg_$h$oHo2v`XoaP+t%( zY0IF6H2T8sBSmAu}Z$nCBQX~`6YifnfXd8p}li2}?A+}#O zjSB->;-c4n!Z~k(3k9=@2S{w4Im#lhDpw2<0)VmaTnY#6OX7WVQ!-*{YBmGoPgxl$ zvQ){1L6cs&Nfn`;*CfobC|Zc{&MuqNZ;EEj<05W_3zCrnP+^E=Sim}C!j9?!)Vxlu zj1(Bds~$2#*Xs=oINF={q`#rfwRoi361cJ|tS{Q?4xoK-VmS^PrT+E(b04?sHA|LI zz*R#M;tCo&plm{$)C@+{#?VBT zr`o8>Ske79soR9ZGO0z?=%37zk+jgN{M9g-55O)6nk6L(Ha_HX{{zD=3Yp#;-+rcG0`ctO)K;|b5y zX;4@g5NtL^;*PbC<7^vw;U^fvKlwr@l#g+v{D#itcz9tbx z)4$nQdNq0%VWM+W@L=U12-EHnyH7`=Mr<`M?_|t^jC9y5mO7+%t}V(=xDt(CxWT6F z8|qxgNG}96=s{4_=Fe&-=5s@M$&NqC>LxXdhp$5~%GFFFrLamQHg#7=%>>i@*dCmr zq3*crV0lOL`5gJD39THrto+OnmC-y%#muZ0l7b6c=(d&^+&%*ht)s&BLjvh1nlXep z+M^efGuX&8t9|w*=o?sG2_&UqX==|Oy>|jwW_SMXOK|MLldH-|#(!8++q7#O z8%%Juv&(PX>9I$@wHKjxy!!vg7j9 z)3+<4$@*%C>c2Ixb}7{7bH`DjWPxZ^ub88}3_){m$RjEo{h> zl;#%WO6XYFVkKNCCOqc8V362Eg;90+_SNY7*FcX?Ld$0y>&8~_d6NPz0mXV9PN0V* ziS-GNN6So!hbji_iuSo3EcqBwpk+*3CUPQoZ|Tzd{bkjPe>7@d(zl_*KunRsyJ?Q+ zY%?ejEJ7jDYm}MjMis`{Dr>kw*Ur<&L+PiQQx|4eSk3O}iGXpHz0Y>(Fff!2FX6La z2IsUJTD9n9`K1sX_4Auao|&YecD=;SjrpQD&XXCYZi`Slu z)3~}wN}hZv$J(9WU)7FmcP+$eSQs(w!$V9=_lOe#xq>V@5k87a+_2g0fv_q%_?@V# zVSU|#t+=Vf%IwWaalQNx#+B9L@|7#+oJb2QZv-=dWJg%eV%(F8xr-BAv%P(2=e>K? zl&*y;MeWHr=ydXtIQ)syuVKDY4_9K(PP0D%%Ec)|E5(Y(e(CsHbq78mQ4=cD3kbWC z=N7#a?d8>UGOW2|3J|?|N*4d9&KOX*svFN6Z5bj)(=9b^l}ABDazd86WAaFY3cbFI z-ReQ(L>SKA`o1a$XDk=wG23H&TV(eSvnrI(-=FH(V!@JtR?mgF-@t1(~Df5he^F z=QAg7Y^qM8K<~>SoJK13c$J-AcHaC2{<>-r>*{YA-s<*Jj9BF}K`rmL{V5AkY`tpu zoI`W%iBwNwV63Sm<_|xAbflw=OI&dg*{$i%aYS_LSKrLgUG?2f7adX1Q4m>-a-Z>7v3SdPe0_;@NRISLLurCH}g%G=K0}X3Wu=c{#Zn_lZGER>^)Z$NL?QVRP+tG z4J;WcAH`Od9@E?#{(hG?<^&!6U`ZJ|rY^!g+07Wcl zOG{lFkwLv!2$!M^r%c3MglSPBKy;Utg`v4OXO=AFM$z6|2Ny3%xP)83{=$adeD;{y zkcD2TPakZmE4;wUH=r|7# ztJTxf<@U4ebMJDjeaOiJgT3pq+*-*huzrOCn;b@IL9D2ICzO1jNz zeoDuO4}?d90?xkho-z$~kG?>%o-BPRlrgYyAIiARTJ_1U=D;~^6@fm8HQ|Or&=zgu zOKbp*eX~>k5IXb&ru+>yqG}}&Kl(D&2FbyztxXs}^n!(L!4zZ)qjj06=34WL*Ll&M zMF3{cJSL^7^7Xrr^RyKMI{9wmR*e$uCmQ-2Ll_9ni=`n6F5p_F>{^BSMk+|6?65VG zkFNn`vL4S(Ef6teEnkr+LI_4;IgCoi7FQLWPXZ1$h^KJ0)KiYcNuVgIQ*4q{h^jF_ zno;6`5-Eof4q+%b&*Y2pTb29h+}M&@DrEgK9_V#)_+?f})rw2Qqy-ZcrpAwF&YiN- z{V-;KUxHUB2tiLmw4*ra$TX9!i4TPQ5oi?jakP<~k~R{#QFsutX?gEnyhR=PO>f(& zgfBk4q{NZKDskC(UTH92=FYUJ(W6B!aan*h=?smX{3;mrC8HF~sO+WRcyjY``hqgk zjvV5y{PM(+=R)}San4a}7~J+HGOlNGAyZVLf(0gbWjYMG{Fw9oZtAsYTLL_^$jO}? z3zwcHlHPbD@|@lB1qnpuBhH?IH@SJBu=&9F#S>3Hr)*z9+?4z+YrPUlg+INqXn z$K3g5NV=3wHABmvAIls}ST`r$PyMSMZk-wUGU~5*x$G30p*uXV$v>$I8ZWoV$Gbac zxji>B9^O84s1&|0QOkUknQv}Af0d1=5#7hXAzm~`8)G$!0Rbve4k3fImq)DBW4i5| zzG41J3UpIzjV(NCHox~HOkO()4poXTynYz<7GsxrzNk{ScK3JYE)F5@>zQuiTCzkO zDdE!=nh!Y&Tg^}dsR{gdENXs+fQ$lc9%qf|D=I1QUB84MD62(}J9KEHGtEDd=kYf; z(V3?QI2B03<~)&r)@af6nI?$*eR`KBqh9)H^OEM0T?@e)%k_%?=cWWERNso*=szI_ zHJj0$F++1t!?N9f74+ZSXKLU<*>Q)US$>+;pcjD?A)*NTb>o<@SX>w9*Xidh27N{s zo$B_^U()!2n18;NtZ!5l;|_h4%?%b(h)2F?dsOtyZ6gYz8X1?iR%NY1e@rsCh_4&3 zFaC=3n2Ws{(a*m=;V(;GLOxQ%`(?W|{86TAExn;#yxg420%KfJjuZ8(^U#)n1ucFW zb5x=%k@x8QGNsEf%z}%%9@}R&!(|V@+1=kj-_jc|#&QK%oApmVXR%kctOA#jXebr> z!l!fxKK@pgUudKJ3S$Tkei!}us&>yKTK_g$&_VhcR<^+(?d6E#mv^xa2O zjPa(8t@-F8Sla{at#%7aD~tAat-^jLH`stEP3z(;uJ=FT#00Sl8vv+BGCmssF+vh4npn&%v+4n-kYw8{ zIVGgL_Bzo6)F3o8P+NY@@N$<$w{_5?QyKF(nJ}?+VEyh@(1@*mYv;PycJ+o=i1-_q zFZxg(u@}Cf;XD{dp4u>6p_%k3S3;WX@}swH{SjJ1Q5T>BP~243LK0Zgi@)uN($O1vWY1?p@LkjYn=|Zx{{lRS#{WE>06n$M}`o?K>t3t08q<}&1`FC zj7=~?LGQsiDFcrL*mmR~Yv_OKP#Gu&6e&?Z4_}OY00gy#{e`UTYwx=kSZuw{J=zBz8;;JW*B;zqAEo1*A ze6XfPo-_;k`K|xSXDLPs!b92Hkr&Ol%$c~~e|<|o);&50InC(#QL-u+Jw^&Tsd0J{uE)$fu;NunJY_=A6b11L<< z`jz3fyv#fROYVgaq#A&N7a&Qj=K$acS_Vo43J@7z@)Y%c;GH7Vg|O2Tce@{>L@|$< zC{@vv=Ff^UoJVSkF3QzgtJ=iEQoBbPf_6g0-t82>GzNAFP|ayw{(P11!P+Q8b_{OU zHNp zQw#u3nQL}3{^KXT)H9$54*_&lQdI%i$BT#v(80+0q5#e~;V-SPg&dF?f07C=jGz|k(uz7--|pP0Fl15_1oSq9`~!Qp;F6_p{>Qlye_W=?@_}1mQ0X!JNrijV zb4}O;v>HHlBge&R)f{wt8dG_?odDReY`YAI*Z${MUj!rcfmbuIGW-uJ3fRxVn7*Mh zA>KE^Z9q7%dD=RlM+bQEFf)tnsFCy40KSeYLR+`H`RICJq9ZyXIe`!*i#-6uL_3Q_ zkVqt(vJl)vY~k^JrNFQEKQN(CS4~0s`(R><<&~Fik#yZQpoOux7NWYJ6&?Bkd5wsdR+@gs~oNxm5a}o$- zbZW?>Q`*1K7!OdRo6Q;sU&eKpD5CE{5G+3p>o3tQ+SdnaG#v!|B&EN3F~OXH;1cDc z!iGM_^~qJ;ZbRTpcRwlfR^PlH?%@qK3 zzUWNassQHye(MEXpGDYrFFDRxvID6aqmL`as$|@=Alw4jfadgGS<|z$krAs*KoarX zx9-cy&37=T55Q(#+4VV1&)Q+@K0pC3qr|$=Cp90wkOCbC(0lk@;ZF%QcQJc4i;d^S z6LKifCs7Nq>pitLImFcqn@%BsAd;7AWt~E@#*2?cG?W2LH9l@ zc205`RcOlmkn!mc1He*bG^r4xB0v%1Q2@~-@zVQdrT>zT8KAr0TUcoEorxcu{gQP&y24ClA8 z6+!n$X$ty6hf|-8(j6amBq&?3y%fuy60LkS+GH5;n{P8GrZ8QIY<>od%2Qz@G|G}) zO@Kx1!X^wqE5hzM_iL>$$5nZ4sh|b#k$7fs8sZdslP2=B9{T;+1rYMr<4*wAS`vhR zXVo3g9_N*10}kjJ)pQV^M1;5!Yyb#y#nKq@(dKB;phERszJ=j~KYx;jnqi)VO1$uj zA5xIbe)Sa%6!flZU2S+r>;FvwUjQ07=Hs;OqBSli#-w+kp{TJXn7Fvp3VrtJ3M^u< zZ1^+wr$NyTpY8;bF*q-)76#j8sh$6d^9# zDrAk!C6TMS!$W%(eOc(kHE4(T#Ekz`W*gykL5U*lEOEq|)%b>a5g9&e!+UCi|CueYL08E948hU-AYh?DPBRu#N zWq>u~_xo}8N$qPV>dO}dy3w`$bHI^J6XCZId~zEe9UTVX_ye`n?He#obW(Lf>3ipH~c_(p>1!rFg@nruN?wd`T%98qLmN)2GT) zVbf20qBo88jEDt*e#*{yrgfnoRKf8PflC2`8~ju9>N6?OCScwND9j9%f6;+?^Fa=u zE-J$W;lYH-fuyCvtNbg4^+?z1?I5|&`|sN#PE-Mazj9T-S!Eu$a=#gFAYwm zDP>d zxHdefz6Q3!FM%RRpvR<{?p&GzE3w-iY@JTl(oT507G$=o%=VXU(|z(%!~WXO=i<>! zlIg@pd)Pto1rZZaLe>;rp!BT2mRIa50y%UHDV@Kwv-#n|Kyh>>ED*e7CCQ_-?#CDV zaX3IA#y)2WO5m!L3={zMDC&>h$Hd{<2zy9=-a%k&82t>?T!uc>XekCyY=rey9DR+Q zbmta^OA?pHNQNM?69s8W&E)}?J`I*&RWaUrw)`ap$Fq3`PclFTW93l~W_t=Zkp8!^ zOv{_n>|a4Amj8okRVxQvU}Xzis&Tv|fG(M*$H)d`@P6gocsDE{-)AxZF4Sh}T;TD| zYo8EWV&utZ|6F2l48{4w3Yfgl%mbnWrs;yShkQQB1XY)Sk=&3SSsbXcpV9o83nSYr z57P=v9LExns}TH`G*SN@iR(80^k}YNFnRc;#BT$RpC*tL8=8wkQdpolZk$mUImc%3 z@|LW0lX%myN6>zqEqJ%yK?*TN>D>>LU%$VYVx@*^pVAFmejBuDC_D`6>gL1Co1X!V zpR!_g{*v9`4qWmyD2v%`JRldF3G9MllY4GCYcL7dmZ%vY4PWL>WAqEGC6h){g+GF4Oo3O0 z&tr<`Kwy%nQ+yG>8^ZD}fCffVDB=%&HI5tAF0>=bp<*?yC=qlR@*ISRe(9;V2o8_+ zDA1Qk!~j6J_a93Hfa4^zmL<295-HYl(<7mSJz`V^p%|t4y)cozJo^&H(}b=FOdcAF z>Uo)-npp5KrOW73T9Ghn)B`dyQ=I~)>~o3^f|g|FQMIi0Vv8UfknKvnxZ59T61&co zFNK9m1}j5kVRYZXO309^$|#PbXbI)L*&K${xuxnl*ugqR8Rh}{AMj;Ts{FJAvsyiF zqm2~0#0Irvv!I%CTuxS3^Uq|;?dJE(Vym0Jw&_f_7VT4YGlM!0u-`9Don1aK(W5AFal(Wd9YF4Dux* zlsiC&66bf^ldaa9icpR4HVxCjowtGSme3}BSotx220vEX4(w%OhKQ0tzC9(sfm$An zURZ-OgCIdo^nwa}CY1~C4!kThsx+i^ysUhI@5<9kYsZXeV347gj8ivU2%+QZ72~oVS>&>pH^3H!ke5o zQSSGJ>jn&w?ByLTtiR$e90~P$XV(Vm#T(A%`CI!upDsp9c{gvWC%^e8?hQJUd#X_; zn_uDv#r8PVafT zMG`GurFK(>5O;bWk9ekR z>WmxM%?;xzOUMl-V8R7|q$g1Ec3ByM(+I3{)p%X(w&97c`d5gpbZ%F~TJ*c|~j ztiA|sK%J#!ZOCzbxGWxda!R5i!LZO}CirE%-gxYAytFtd9;0td@#es#?ZMv4?9rrx zLsjlGq}<=sAwl&lFE7`B4IEjqwMlJj>R|kS6c@g3d4O^-ysziL622&z|$l7cZ!(q{Qw#L^&%bkz+uZ|Mh$Hywwidyk?|} z?>@tm@9Bf6_@e!kU>};Wq|K;ASR=xvv3nnB9}?!}&H1>TZS(I`n@{D}7#}Z&M4zQE zt?m7OnYTNYVnLra1{08H_l$-MPs#TBK~zn6NP;BT(i`jc95%-328d+zm}HlNY!n|?V;YA4W;$P~ z@n`QX{Sx$guQ^g~xvQ~VLeqc^5q+?LR5<&y=Pro0#Hq-LLp5B4UJOo04r{aX6Fo%ixN{cW6$-|L)H$wPXq8KX$FyD-v`E`IMm ze;0%sHxKh~3p3V;lI#eOhhasAa|L9GE-r*b$x|G1rQAz3N=&xsV>8^r5n2$2a_?>c##rSY*N*rR5|s86KRq^tJ^Z9%i>=8V zoDupYBpzz?`tb0u|29tP!5x*uDlkI}t_03U*DBM+`kj2z2smawGY=c>B9$?lWqoVL zOgBc@UC~>iMQJ~JB-J*As`2tHWuPTg$fh1x0^|}1B+xzMy;;eRcciKoy6M-O@NFoZ zM=M~7?5<8N3M4my`f!8Y6^S4M} z&`p1t_RZv9%og3&=QC+9eA1f`@zQ3-7}fYQ|4D?jVL;{JMde8F7V!YMDtJjEtj}oq z?<;lvMb7tBPnEd@i1GYs+>iES4C4@#kpP=BglzcTz}3I|C1AR<&|xSe9~8l1Ji-$?;sf*{8(UsY(@?T|#d@ z7|0icG5l_HLyWAu-v<5JAL~5&hbQgEM}4y_OH?<~MAQ$w&^j}J?`F$eTI>_$#KD8?uaW)`};ON+bq zE|;BizphMIP5#!lk5!3if`?27VCW!01B8Dfjg^0sVj9%5dD8i4P>V1^0p;b^bZqQw zddV|$B8v(dhmM8mv0M0xk1aEQryG}Hl*5yJzp(B^9tJM9=elydeK7hWq?aE0wVl+# z266|VJ&4L3UMh|1G71=vKZ3(#S2SxuZYQh`_uHI2*im-cQngCjo4`9Y+Q{3=bOnNrNS#-z}E%Dlz+|M1#t`st^`)B1{0_ikDulJ64LgGeRqj? zf#tgzYV-TymZuhR<6+WbxUV~d6My&>n&e5Ed8(4twT@%f-`m#de2yNitBSq#U!nYr zhNz5ma^T}bab>pov%Uem$&I@s<8wPZJGa(%hbBiaRh#A{8jvOTjnB_pAOv5B-c$`o z>SQ#y5oWoYQ@CZFTm-QC7Ylx(vey_Y7ZTrlSg-JzjxwK4xQGrbtpS&DaIzE-Q^tjJRDnTbE6 zF&xuvZ=8|-cvC8Y(!44aVCkI%ZE>Jh8dHr|1c!Y$IhnCng6)(Y$L%K8(Ms{X=sK!0 zGeiEKu|-rJI~y%)2ab~xG%8=q>nF`;qf85P9f2gviWM`46C3Qu+Zwu=E53MAs>|y~ zTdiR4WJd`9?fdp5Ljj}Q<}jbkb`IX-TKc^97R)3-`eR9Z>} zqOP&C6hKsIl&t6iL|^5KgqoJ};*r`rwdFn3;>wpyB6(xznV;mG+^t^fl<@aE{g{!n zy;dY@4z&AX)zPAt%rUqo|Ata_Mfkw&s+B%YvmZ**mo(>t#dz0haC_BftF4ua|5whm zNT}LGGWr=WTPAU}MtA!6Lpj^^s&?XC-i4RHtPiP?O&KR+WMPx%p(Z1e@w<>8-=sF0 zjlR?ts5aQ%dx;cSs`e#_BpzQ(@(o5VM)pd<;_v)6ANOA}UdCh2RJ1R(^7&gK^W^M* zs;qv1UzAo9JVps0uw={bD%fiucJg{ocu8{w`}ywm6vK^v+f28yEQ$ zDm_=nKic?fll-z+!-fYZWE;Miz&pItR$KJ$QTHYYxHMG?7GdQzZrUux_PZtMH~A%q zI@UYOWy9oTSBSrf=6O()ACfN`)S}2QDZl99;v$`hVfv?sNjzG;n_OfTe$3apDkZ;% z&_5pWr7TNZpDu1M>}Nb$FZh4QgiaA!Z8WXEM1bkIF~P;pdC_@ZJmuLfmu;r}rjdQp zCpzB_nde?hi^stR%(1TjY8~6!TOb2F5iJWmFW3t24`IYn3@^O`t>t4jn2s~_xBM65 zs$qdGdC2yAU}JuEQNK2c&?Nn42j|-B`nl>SR(GKkWp;Yr$c%+#i=yTEk1(catP{BD zvAN!^@3^c5HumjZPEEKjvij&pGXi*h>|nm$wWR^@-mktIhuRzse;bk7RBk(JO8#)d zkM)(()yW5*Yf2SS3A8~a}I2Ee{KAEi`6{#bKF>_TWZRtLjXGGKHENQ zQ)*cx8{^cZYFs6gmCXBD^JilrH`%8+sUkR*5-;VaC}yRM2AC>_6~nY}KBGMziTjr@ zm$s(dhi>J&xbN|_JNr;ns@5dv(9NOCC5!|Hrg`Uz{3aFjv-~_}=Kn!|i6L_XtL|)k zKH1hGM=4XC9y#cD-YP~=DJdxliq~Oy(TQcSNq$}+Ct=pqzC)P9I3rhMPpy=lOyNn( z*ZRMTDZF71TzDk=2j_h@sikTKtV1>$qha$DOqeec%03Zzq&J2ay%0Q$628w|%Wb2@R+Y|!#BlPMhmt`8g+E3vl0Q+EH>3EwM&3R^Ngao5Wt z+lDOO1Q5K0gl!qNyv7=dIF6lEE(@-~sF!vp6LG4I(MrO#BAX{My^HDMwsqdE`dZtt z9Ny-vr_)8n`ZKB+%tgBCkgc^Q@^@rtNrt;AXTIkfW^hHZJYsbx@^V1NEcO%b!|Cxy zhWk38PdhUsc)gITn`M7&_)=P}*Yn7g1q4g9Iy4h@Y6gVnP1!4YwP6MFUN#TUL&$NS zp+H2Q4Rq+gj0nB$u-maKN?C+8IWejz+gJ*1m6Qq$cAbT zWNTzDZb0}2LPtx{qAk`%J+UmsMaR#po1`<0JT_RlNJ z%QM{SeBzemmbeBib-oOMTfQ-+=#J`KP_=$+emJ5%!qDNpOUfVeJ_>fJv*YZLv(@gq zSkkKSl}Za}Rxq~e?zioHf0cJ+&Lw!h7cX|2C4=o=iCsC*^u9@uJ}zW`fxoatPufBF zq1&eEOB(hqou+m@X)QeSS#h({ zX^mmmyAE?Z0HhmT{JuNOy#`_BJ-)rqFQW#96}m=YY`*3rXEuQ3fN~;kuv?u?7P}#w zpYC5ORLr65@g)WQqW2Kqk(lg(P3ZCnFuYG|oH@^Z`ln>$FJ)mRd6=vi$JW0YxMGxe z&lftKDknNL2U$0DZchkM<!friHygqwI?@E{r(odYHv&g9KAZk5Tp7j52ynE2H zB{j-dGPeKniJ(&BRDSks_4RJ$OvsmcCfLQU>!Es_^jLWc1za2$==S5~+8l=5_s0#t z=w|lYwJJIPOcs)G0!;E}?P^(?hvJ#4hp0$EDnba@aix3mEN3Q?3a&9%{J)Rgy=jQm z{-kKA_(XSbcKf}-Skc#m{M}m|0 zZsvjPwZRBYI8(Vu&AVF4sVPoLkkpd3n&6@TL99l_S96bcF&hVZZ#%kuk?zUKId=+2 zhRFADP{q-^BJ(zD_El%MX9OkuPC4T`zf;@PWEOhAYj{-?-xThy!V~%y&hY)SAxA?JvE$%t31_i-+8A# z)yK$;W(gxf-8l~rk5*S8Y6I`taZ#dw_2`2M<>$z8ZdZvf-}aGqLr|U0{l$%Ov*=Wq z+g5|;G~;Q-4Pcwy>~3uT>tEsJZC;g3 z@^3lSj&_~&5Ng-6R(b2y_&M|bHI7^~UPS~`CgAV~*3NUo^HWo1a-(6-4HTa%-QV?o zuR@3^3G?*?&v@2M;OOsr7fRWM^+4lwx4#IoR#307U1&(w+uPm!)+OAvJ$LpXDj?Ep z^tT67+}w29BORZo1Is&eVqzt*s;}nMB0U!7k?hG{a_)kYmbV`ou4__IX9XOat%6&Y zGb(n@b~yU~Sh{@Be>LVsrhPs>pTP3d;G)4st{mi81YatNADVFB>xxQs@tf1uoSOvO zbB+nx;4?GlK%wQ{wyU#hd4B5;ImJ5v#_$9J)X`(aTd_55;K$1$!uaXXGI$h|4fA;9 zz^iGv*=VGE$hWAos(+_{ka=|G}mo^7Dw%4hLw7XujZnfLFMjiP~ z3&Ul);cpwV*hr&fTvD$XCH+}^e_o`0^rLuQO>igr;1fEFa6vf9Q{bk;3Jv#fU+mKl zfBhTW4=Ow@S-+9qxCL1hAQuf`>WzGO$ejV`epKdg^NZ zwO>g7=g<*=KY=%SW-!Ej8PRdtn>_m4yf#dK2unYtzLE?JBcgM?dC+NpnE-sf{JgwS zP$Zp$O?zK2nugURkmzAgMG|#A^5Ku7&5__OSdc5bQqA?A8{~_1-nq|JK^ZMzz`n4c zvuAl5F<`g=?dV#}&(epLrUjdq`qopki^__^;~FlNui0}beRAn>Cgqbyx5 I^)~4L05z*a>i_@% literal 48108 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 Fe*lJX$KC({ diff --git a/projects/tt_um_lisa/docs/debug_uart.txt b/projects/tt_um_lisa/docs/debug_uart.txt index 4d8f5f5..cfdbfe8 100644 --- a/projects/tt_um_lisa/docs/debug_uart.txt +++ b/projects/tt_um_lisa/docs/debug_uart.txt @@ -1,18 +1,18 @@ - .rx1. |\ +--------------------------------+ - ui_in[3]--------*-+1| |{pt} Debug Control | - .rx2. | | | .rx. | +------+ +---------------+ | Debug - uio_in[4]------*-|-+2+------------------------------------|->| | | | | Bus - .rx3.| | | | .tx. | | +--+----- FSM ----+---|----------> - uio_in[6]----*-|-|-+3| +---------------<------|--+ | | | | | - | | | |/ .1. | | | UART | | {cl} | | | - | | | |Port +-----|--+''\__________ | | | +-------+-------+ | - | | | | Sel | .2. *--+__/ uio_out[4] | | | | {pr} | - V V V *--------*-----|--+''\__________ | | | +-------+-------+ | Registers - +-------------+-+ | .3. *--+__/ uio_out[5] +--|->| {pb} | | Registers +---|----------> - | {pt} | +-----|--+''\__________ | | +---+--+ +---------------+ | - | ^Debug^ | .Baud Set. +--+__/ uio_out[5] | | +-------------------------|----------> - | ^Autobaud^ +--------------------------------+ +--------------------------------+ Uart - +---------------+ Passthrough + .rx1. |\ +--------------------------------+ + ui_in[3]--------*-+1| |{pt} Debug Control | + .rx2. | | | .rx. | +------+ +---------------+ | Debug + uio_in[4]------*-|-+2+---------------------------------------|->| | | | | Bus + .rx3.| | | | .tx. | | +--+----- FSM ----+---|----------> + uio_in[6]----*-|-|-+3| +---------------<------|--+ | | | | | + | | | |/ .1. | | | UART | | {cl} | | | + | | | |Port +----------|--+''\__________ | | | +-------+-------+ | + | | | | Sel | .2. *--+__/ uio_out[4] | | | | {pr} | + V V V *------*-----)''\ +--+''\__________ | | | +-------+-------+ | Registers + +-------------+-+ | .3. ) +---+__/ uio_out[5] +--|->| {pb} | | Registers +---|----------> + | {pt} | +-----)__/ | | +---+--+ +---------------+ | + | ^Debug^ | .Baud Set. | | +-------------------------|----------> + | ^Autobaud^ +-----------------------------------+ +--------------------------------+ Uart + +---------------+ Passthrough

Debug Connectivity and Autobaud

{:FILE scale 0.8 theme light font-size 10} diff --git a/projects/tt_um_lisa/docs/info.md b/projects/tt_um_lisa/docs/info.md index b021b13..df7ed01 100644 --- a/projects/tt_um_lisa/docs/info.md +++ b/projects/tt_um_lisa/docs/info.md @@ -1,6 +1,6 @@ -## What is LISA? - -It is a Microcontroller built around a custom 8-Bit Little ISA (LISA) +## LISA Overview? + +LISA is a Microcontroller built around a custom 8-Bit Little ISA (LISA) microprocessor core. It includes several standard peripherals that would be found on commercial microcontrollers including timers, GPIO, UARTs and I2C. @@ -47,7 +47,7 @@ The following is a block diagram of the LISA Microcontroller: It uses a 32x32 1RW [DFFRAM](https://github.com/AUCOHL/DFFRAM) macro to implement a 128 bytes (1 kilobit) RAM module. The 128 Byte ram can be used either as a DATA cache for the processor data bus, giving a 32K Byte address range, or the CACHE controller can be disabled, connecting the Lisa processor core to the RAM directly, limiting the -data space to 128 bytes. Inclusion of the DFFRAM is thanks to Uri Shaked (Discord urish) and this DFFRAM example. +data space to 128 bytes. Inclusion of the DFFRAM is thanks to Uri Shaked (Discord urish) and his DFFRAM example. Reseting the project **does not** reset the RAM contents. @@ -85,14 +85,14 @@ can be performed using any standard terminal software (such as minicom, tio. Put terminated using a NEWLINE (0x0A) with an optional CR (0x0D). Responses from the debug interface are always terminated with a LINFEED plus CR sequence (0x0A, 0x0D). The commands are as follows (responsce LF/CR ommited): -Command Description -------- ----------- -v Report Debugger version. Should return: lisav1.2 -wAAVVVV Write 16-bit HEX value 'VVVV' to register at 8-bit HEX address 'AA'. -rAA Read 16-bit register value from 8-bit HEX address 'AA'. -t Reset the LISA core. -l Grant LISA the UART. Further data will be ignored by the debugger. -+++ Revoke LISA UART access. NOTE: a 0.5s guard time before/after is required. + | Command | Description | + | --------- | -------------------------------------------------------------------- | + | v | Report Debugger version. Should return: lisav1.2 | + | wAAVVVV | Write 16-bit HEX value 'VVVV' to register at 8-bit HEX address 'AA'. | + | rAA | Read 16-bit register value from 8-bit HEX address 'AA'. | + | t | Reset the LISA core. | + | l | Grant LISA the UART. Further data will be ignored by the debugger. | + | +++ | Revoke LISA UART. NOTE: a 0.5s guard time before/after is required. | NOTE: All HEX values must be a-f and not A-F. Uppercase is not supported. @@ -100,26 +100,26 @@ NOTE: All HEX values must be a-f and not A-F. Uppercase is not supported. The following table describes the configuration and LISA debug register addresses available via the debug 'r' and 'w' commands. The individual register details will be described in the sections to follow. - -ADDR Description ADDR Description ----- ----------- ---- ----------- -0x00 LISA Core Run Control 0x12 LISA1 QSPI base address -0x01 LISA Accumulator / FLAGS 0x13 LISA2 QSPI base address -0x02 LISA Program Counter (PC) 0x14 LISA1 QSPI CE select -0x03 LISA Stack Pointer (SP) 0x15 LISA2 QSPI CE select -0x04 LISA Return Address (RA) 0x16 Debug QSPI CE select -0x05 LISA Index Register (IX) 0x17 QSPI Mode (QUAD, flash, 16b) -0x06 LISA Data bus 0x18 QSPI Dummy read cycles -0x07 LISA Data bus address 0x19 QSPI Write CMD value -0x08 LISA Breakpoint 1 0x1a The '+++' guard time count -0x09 LISA Breakpoint 2 0x1b Mux bits for uo_out -0x0a LISA Breakpoint 3 0x1c Mux bits for uio -0x0b LISA Breakpoint 4 0x1d CACHE control -0x0c LISA Breakpoint 5 0x1e QSPI edge / SCLK speed -0x0d LISA Breakpoint 6 0x20 Debug QSPI Read / Write -0x0f LISA Current Opcode Value 0x21 Debug QSPI custom command -0x10 Debug QSPI Address (LSB16) 0x22 Debug read SPI status reg -0x11 Debug QSPI Address (MSB8) + + | ADDR | Description | ADDR | Description | + | ---- | -------------------------- | ---- | ---------------------------- | + | 0x00 | LISA Core Run Control | 0x12 | LISA1 QSPI base address | + | 0x01 | LISA Accumulator / FLAGS | 0x13 | LISA2 QSPI base address | + | 0x02 | LISA Program Counter (PC) | 0x14 | LISA1 QSPI CE select | + | 0x03 | LISA Stack Pointer (SP) | 0x15 | LISA2 QSPI CE select | + | 0x04 | LISA Return Address (RA) | 0x16 | Debug QSPI CE select | + | 0x05 | LISA Index Register (IX) | 0x17 | QSPI Mode (QUAD, flash, 16b) | + | 0x06 | LISA Data bus | 0x18 | QSPI Dummy read cycles | + | 0x07 | LISA Data bus address | 0x19 | QSPI Write CMD value | + | 0x08 | LISA Breakpoint 1 | 0x1a | The '+++' guard time count | + | 0x09 | LISA Breakpoint 2 | 0x1b | Mux bits for uo_out | + | 0x0a | LISA Breakpoint 3 | 0x1c | Mux bits for uio | + | 0x0b | LISA Breakpoint 4 | 0x1d | CACHE control | + | 0x0c | LISA Breakpoint 5 | 0x1e | QSPI edge / SCLK speed | + | 0x0d | LISA Breakpoint 6 | 0x20 | Debug QSPI Read / Write | + | 0x0f | LISA Current Opcode Value | 0x21 | Debug QSPI custom command | + | 0x10 | Debug QSPI Address (LSB16) | 0x22 | Debug read SPI status reg | + | 0x11 | Debug QSPI Address (MSB8) | | | ### LISA Processor Interface Details @@ -135,7 +135,6 @@ the following diagram: The arbiter is controlled via configuration registers (accessible by the Debug controller) that specify the operating mode per CE, and CE selection bits for each of the three interfaces: - - Debug Interface - LISA1 (Instruction fetch) - LISA2 (Data read/write) @@ -179,16 +178,16 @@ be connected to the Tiny Tapeout PCB. Alternately, the RP2040 controller on the single SPI (the details for configuring this are outside the scope of this documentation ... search the Tiny Tapeout website for details.). For the CE signals, there are two operating modes, fixed CE output and Mux Mode 3 "latched" CE mode. Both will be described here. The other standard SPI signals are routed to dedicated pins as follows: - -Pin SPI QSPI Notes ----- --- ---- ----- -uio[0] CE0 CE0 -uio[1] MOSI DQ0 Also MOSI prior to QUAD mode DQ0 -uio[2] MISO DQ1 Also MISO prior to QUAD mode DQ1 -uio[3] SCLK SCLK -uio[4] CE1 CE1 Must be enabled via uio MUX bits -uio[6] - DQ2 Must be enabled via uio MUX bits -uio[7] - DQ3 Must be enabled via uio MUX bits + + | Pin | SPI | QSPI | Notes | + | ------ | ----- | ---- | -------------------------------- | + | uio[0] | CE0 | CE0 | | + | uio[1] | MOSI | DQ0 | Also MOSI prior to QUAD mode DQ0 | + | uio[2] | MISO | DQ1 | Also MISO prior to QUAD mode DQ1 | + | uio[3] | SCLK | SCLK | | + | uio[4] | CE1 | CE1 | Must be enabled via uio MUX bits | + | uio[6] | - | DQ2 | Must be enabled via uio MUX bits | + | uio[7] | - | DQ3 | Must be enabled via uio MUX bits | For Special Mux Mode 3 (Debug register 0x1C uio_mux[7:6] = 2'h3), the pinout is mostly the same except the CE signals are not constant. Instead they are "latched" into an external 7475 type latch. This mode is to support a PMOD board connected to the uio @@ -197,14 +196,14 @@ nine pins would be required for continuous CE0/CE1, however only eight are avail CE "latch" signal and the CE0/CE1 signals are provided on uio[1]/uio[2] during the latch event. This requires a series resistor as indicated to allow CE updates if the FLASH/SRAM is driving DQ0/DQ1. The pinout then becomes: -Pin SPI/QSPI Notes ----- --- ----- -uio[0] ce_latch ce_latch HIGH at beginning of cycle -uio[1] ce0_latch/MOSI/DQ0 Connection to FLASH/SRAM via series resistor -uio[2] ce1_latch/MISO/DQ1 Connection to FLASH/SRAM via series resistor -uio[3] SCLK -uio[6] -/DQ2 Must be enabled via uio MUX bits -uio[7] -/DQ3 Must be enabled via uio MUX bits + | Pin | SPI/QSPI | Notes | + | ------ | ------------------ | -------------------------------------------- | + | uio[0] | ce_latch | ce_latch HIGH at beginning of cycle | + | uio[1] | ce0_latch/MOSI/DQ0 | Connection to FLASH/SRAM via series resistor | + | uio[2] | ce1_latch/MISO/DQ1 | Connection to FLASH/SRAM via series resistor | + | uio[3] | SCLK | | + | uio[6] | -/DQ2 | Must be enabled via uio MUX bits | + | uio[7] | -/DQ3 | Must be enabled via uio MUX bits | This leaves uio[4]/uio[5] available for use as either UART or I2C. @@ -264,15 +263,15 @@ well as floating point operations. These will be covered in the sections to foll Like most processors, LISA has a few different addressing modes to get data in and out of the core. These include the following: -Mode Data Description ----- ---- ----------- -Register Rx[n -: 8] Transfers between registers (ix, ra, facc, etc.). -Direct inst[n:0] N-bit data stored directly in the instruction word. -NextOp (inst+1)[14:0] Data stored in the NEXT instruction word (2 cycle). -Indirect mem[inst[n:0]] The address of the data is in the instruction word. -Periph periph[inst[n:0]] Accesses to the peripheral bus. -Indexed mem[sp/ix+inst[n:0]] The SP or IX register is added to a fixed offset. -Stack mem[sp] Current stack pointer points to the data (push/pop). + | Mode | Data | Description | + | -------- | -------------------- | ------------------------------------------------- | + | Register | Rx[n -: 8] | Transfers between registers (ix, ra, facc, etc.). | + | Direct | inst[n:0] | N-bit data stored in the instruction word. | + | NextOp | (inst+1)[14:0] | Data stored in the NEXT instruction word. | + | Indirect | mem[inst[n:0]] | Address of the data is in the instruction word. | + | Periph | periph[inst[n:0]] | Accesses to the peripheral bus. | + | Indexed | mem[sp/ix+inst[n:0]] | The SP or IX register is added to a fixed offset. | + | Stack | mem[sp] | Stack pointer points to the data (push/pop). | ### The Control Registers @@ -329,28 +328,28 @@ Legend for operations below: - pc_jmp = inst[14:0] - pc_rel = pc + sign_extend(inst[10:0]) -Opcode Operation Encoding Description ------- --------- -------- ----------- -jal pc <= pc_jmp 0aaa_aaaa_aaaa_aaaa Jump And Link (call). - ra <= pc -ret pc <= ra 1000_1010_0xxx_xxxx Return -reti pc <= ra 1000_11xx_iiii_iiii Return Immediate. - acc <= acc_val -br pc <= pc_rel 1011_0rrr_rrrr_rrrr Branch Always -bz pc <= pc_rel 1011_1rrr_rrrr_rrrr Branch if Zero. - if zero=1 -bnz pc <= pc_rel 1010_1rrr_rrrr_rrrr Branch if Not Zero. - if zero=0 -rc pc <= ra 1000_1011_0xxx_xxxx Return if Carry - if carry=1 -rz pc <= ra 1000_1011_1xxx_xxxx Return if Zero - if zero=1 -call_ix pc <= ix 1000_1010_100x_xxxx Call indirect via IX - ra <= pc -jump_ix pc <= ix 1000_1010_101x_xxxx Jump indirect via IX -if cond <= ?? 1010_0010_0000_0ccc If. See below. -iftt cond <= ?? 1010_0010_0000_1ccc If then-then. See below. -ifte cond <= ?? 1010_0010_0001_0ccc If then-else. See below. + | Opcode | Operation | Encoding | Description | + | ------- | -------------- | ------------------- | ------------------------- | + | jal | pc <= pc_jmp | 0aaa_aaaa_aaaa_aaaa | Jump And Link (call). | + | | ra <= pc | | | + | ret | pc <= ra | 1000_1010_0xxx_xxxx | Return | + | reti | pc <= ra | 1000_11xx_iiii_iiii | Return Immediate. | + | | acc <= acc_val | | | + | br | pc <= pc_rel | 1011_0rrr_rrrr_rrrr | Branch Always | + | bz | pc <= pc_rel | 1011_1rrr_rrrr_rrrr | Branch if Zero. | + | | if zero=1 | | | + | bnz | pc <= pc_rel | 1010_1rrr_rrrr_rrrr | Branch if Not Zero. | + | | if zero=0 | | | + | rc | pc <= ra | 1000_1011_0xxx_xxxx | Return if Carry | + | | if carry=1 | | | + | rz | pc <= ra | 1000_1011_1xxx_xxxx | Return if Zero | + | | if zero=1 | | | + | call_ix | pc <= ix | 1000_1010_100x_xxxx | Call indirect via IX | + | | ra <= pc | | | + | jump_ix | pc <= ix | 1000_1010_101x_xxxx | Jump indirect via IX | + | if | cond <= ?? | 1010_0010_0000_0ccc | If. See below. | + | iftt | cond <= ?? | 1010_0010_0000_1ccc | If then-then. See below. | + | ifte | cond <= ?? | 1010_0010_0001_0ccc | If then-else. See below. | ### The IF Opcode @@ -361,16 +360,16 @@ the cond[0] bit represents the next instruction and cond[1] represents the instr three "if" forms take an argument that checks the current value of the FLAGS to set the condition bits. The argument is encoded as the lower three bits of the instruction word ard operate as shown in the following table: -Condition Test Encoding Description ---------- ---- -------- ----------- -EQ zflag=1 3'h0 Execute if Equal -NE zflag=0 3'h1 Execute if Not Equal -NC cflag=0 3'h2 Execute if Not Carry -C cflag=1 3'h3 Execute if Carry -GT ~cSigned & ~zflag 3'h4 Execute if Greater Than -LT cSigned & ~zflag 3'h5 Execute if Less Than -GTE ~cSigned | zflag 3'h6 Execute if Greater Than or Equal -LTE cSigned | zflag 3'h7 Execute if Less Than or Equal + | Condition | Test | Encoding | Description | + | --------- | ----------------- | -------- | -------------------------------- | + | EQ | zflag=1 | 3'h0 | Execute if Equal | + | NE | zflag=0 | 3'h1 | Execute if Not Equal | + | NC | cflag=0 | 3'h2 | Execute if Not Carry | + | C | cflag=1 | 3'h3 | Execute if Carry | + | GT | ~cSigned & ~zflag | 3'h4 | Execute if Greater Than | + | LT | cSigned & ~zflag | 3'h5 | Execute if Less Than | + | GTE | ~cSigned | zflag | 3'h6 | Execute if Greater Than or Equal | + | LTE | cSigned | zflag | 3'h7 | Execute if Less Than or Equal | The "if" opcode will set cond[0] based on the condition above and the cond[1] bit to HIGH. It only affects the single instruction following the "if" opcode. The "iftt" opcode will set both cond[0] and cond[1] to the @@ -402,14 +401,14 @@ data is stored directly in the opcode / instruction word: \clearpage The instructions that use direct addressing are: -Opcode Operation Encoding Description ------- --------- -------- ----------- -adc A <= A + imm + C 1001_00xx_iiii_iiii ADD immediate with Carry -ads SP <= SP + imm 1001_01ii_iiii_iiii ADD SP + signed immediate -adx IX <= IX + imm 1001_10ii_iiii_iiii ADD IX + signed immediate -andi A <= A & imm 1000_01xx_iiii_iiii AND immediate with A -cpi Z,C <= A >= imm 1010_01xx_iiii_iiii Compare A >= immediate -cpi Z,C <= A >= imm 1010_01xx_iiii_iiii Compare A >= immediate + | Opcode | Operation | Encoding | Description | + | ------ | ---------------- | ------------------- | ------------------------- | + | adc | A <= A + imm + C | 1001_00xx_iiii_iiii | ADD immediate with Carry | + | ads | SP <= SP + imm | 1001_01ii_iiii_iiii | ADD SP + signed immediate | + | adx | IX <= IX + imm | 1001_10ii_iiii_iiii | ADD IX + signed immediate | + | andi | A <= A & imm | 1000_01xx_iiii_iiii | AND immediate with A | + | cpi | Z,C <= A >= imm | 1010_01xx_iiii_iiii | Compare A >= immediate | + | cpi | Z,C <= A >= imm | 1010_01xx_iiii_iiii | Compare A >= immediate | ### Accumulator Indirect Operations @@ -419,12 +418,12 @@ load and store (swap) data with the accumulator. ![](lisa_indirect_acc.png) -Opcode Operation Encoding Description ------- --------- -------- ----------- -lda A <= M[imm] 1111_01pi_iiii_iiii Load A from Memory/Peripheral -sta M[imm] <= A 1111_11pi_iiii_iiii Store A to Memory/Peripheral -swapi A <= M[imm] 1101_11pi_iiii_iiii Swap Memory/Peripheral with A - M[imm] <= A + | Opcode | Operation | Encoding | Description | + | ------ | ----------- | ------------------- | ----------------------------- | + | lda | A <= M[imm] | 1111_01pi_iiii_iiii | Load A from Memory/Peripheral | + | sta | M[imm] <= A | 1111_11pi_iiii_iiii | Store A to Memory/Peripheral | + | swapi | A <= M[imm] | 1101_11pi_iiii_iiii | Swap Memory/Peripheral with A | + | | M[imm] <= A | | | - p = Select Peripheral (1'b1) or RAM (1'b0) - iiii = Immediate data @@ -439,24 +438,24 @@ and in both cases, negative index offsets aren't very useful. The following is ![](lisa_indexed.png) -Opcode Operation Encoding Description ------- --------- -------- ----------- -add A <= A+ M[ind] 1100_00si_iiii_iiii ADD index memory to A -and A <= A & M[ind] 1101_00si_iiii_iiii AND A with index memory -cmp A >= M[ind]? 1110_10si_iiii_iiii Compare A with index memory -dcx M[ind] -= 1 1001_11si_iiii_iiii Decrement the value at index memory -inx M[ind] += 1 1110_01si_iiii_iiii Increment the value at index memory -ldax A <= M[ind] 1111_00si_iiii_iiii Load A from index memory -ldxx IX <= M[SP+imm] 1100_110i_iiii_iiii Load IX from memory at SP+imm -mul A <= A*M[ind]L 1100_10si_iiii_iiii Multiply index memory * A, keep LSB -mulu A <= A*M[ind]H 1000_01si_iiii_iiii Multiply index memory * A, keep MSB -or A <= A | M[ind] 1101_10si_iiii_iiii OR A with index memory -stax M[ind] <= A 1111_10si_iiii_iiii Store A to index memory -stxx M[SP+imm] <= IX 1100_111i_iiii_iiii Save IX to memory at SP+imm -sub A <= A-M[ind] 1100_10si_iiii_iiii SUBtract index memory from A -swap A <= M[ind] 1110_11si_iiii_iiii Swap A with index memory - M[ind] <= A -xor A <= A ^ M[ind] 1110_00si_iiii_iiii XOR A with index memory + | Opcode | Operation | Encoding | Description | + | ------ | --------------- | ------------------- | ----------------------------------- | + | add | A <= A+ M[ind] | 1100_00si_iiii_iiii | ADD index memory to A | + | and | A <= A & M[ind] | 1101_00si_iiii_iiii | AND A with index memory | + | cmp | A >= M[ind]? | 1110_10si_iiii_iiii | Compare A with index memory | + | dcx | M[ind] -= 1 | 1001_11si_iiii_iiii | Decrement the value at index memory | + | inx | M[ind] += 1 | 1110_01si_iiii_iiii | Increment the value at index memory | + | ldax | A <= M[ind] | 1111_00si_iiii_iiii | Load A from index memory | + | ldxx | IX <= M[SP+imm] | 1100_110i_iiii_iiii | Load IX from memory at SP+imm | + | mul | A <= A*M[ind]L | 1100_10si_iiii_iiii | Multiply index memory * A, keep LSB | + | mulu | A <= A*M[ind]H | 1000_01si_iiii_iiii | Multiply index memory * A, keep MSB | + | or | A <= A | M[ind] | 1101_10si_iiii_iiii | OR A with index memory | + | stax | M[ind] <= A | 1111_10si_iiii_iiii | Store A to index memory | + | stxx | M[SP+imm] <= IX | 1100_111i_iiii_iiii | Save IX to memory at SP+imm | + | sub | A <= A-M[ind] | 1100_10si_iiii_iiii | SUBtract index memory from A | + | swap | A <= M[ind] | 1110_11si_iiii_iiii | Swap A with index memory | + | | M[ind] <= A | | | + | xor | A <= A ^ M[ind] | 1110_00si_iiii_iiii | XOR A with index memory | \clearpage Legend for table above: @@ -467,16 +466,15 @@ Legend for table above: The Zero and Carry flags are updated for most of the above operations. The Carry flag is only updated for math operations where a Carry / Borrow could occur. -Carry Zero ------ ----------------- -adc add and -add or xor -sub cmp sub -cmp dcx inx -dcx swap ldax -inx mul mulu - - + | Carry | Zero | + | ----- | ----------- | + | adc | add and | + | add | or xor | + | sub | cmp sub | + | cmp | dcx inx | + | dcx | swap ldax | + | inx | mul mulu | + ### Stack Operations Stack operations use the current value of the SP register to PUSH and POP items to the stack in @@ -485,20 +483,20 @@ are POPed, the SP is incremented prior to reading from RAM. ![](lisa_stack.png) -Opcode Operation Encoding Description ------- --------- -------- ----------- -lra RA <= M[SP+1] 1010_0001_0110_01xx Load {cond,RA} from stack - SP += 2 -sra M[SP] <= RA 1010_0001_0110_00xx Save {cond,RA} to stack - SP -= 2 -push_ix M[SP] <= IX 1010_0001_0110_10xx Save IX to stack - SP -= 2 -pop_ix IX <= M[SP+1] 1010_0001_0110_11xx Load IX from stack - SP += 2 -push_a M[SP] <= A 1010_0000_100x_xxxx Save A to stack - SP -= 1 -pop_a A <= M[SP+1] 1010_0000_110x_xxxx Load A from stack - SP += 1 + | Opcode | Operation | Encoding | Description | + | ------- | ------------- | ------------------- | ------------------------- | + | lra | RA <= M[SP+1] | 1010_0001_0110_01xx | Load {cond,RA} from stack | + | | SP += 2 | | | + | sra | M[SP] <= RA | 1010_0001_0110_00xx | Save {cond,RA} to stack | + | | SP -= 2 | | | + | push_ix | M[SP] <= IX | 1010_0001_0110_10xx | Save IX to stack | + | | SP -= 2 | | | + | pop_ix | IX <= M[SP+1] | 1010_0001_0110_11xx | Load IX from stack | + | | SP += 2 | | | + | push_a | M[SP] <= A | 1010_0000_100x_xxxx | Save A to stack | + | | SP -= 1 | | | + | pop_a | A <= M[SP+1] | 1010_0000_110x_xxxx | Load A from stack | + | | SP += 1 | | | ## How to test