<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2024-09-06T00:02:11Z</updated>
  <generator>https://yabu.me</generator>

  <title>Nostr notes by Dave Anderson</title>
  <author>
    <name>Dave Anderson</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://yabu.me/npub1mtg38agwglttl7melxnfqphlm95uymnrdedw62h9j7cyquynza0szxwant.rss" />
  <link href="https://yabu.me/npub1mtg38agwglttl7melxnfqphlm95uymnrdedw62h9j7cyquynza0szxwant" />
  <id>https://yabu.me/npub1mtg38agwglttl7melxnfqphlm95uymnrdedw62h9j7cyquynza0szxwant</id>
  <icon>https://media.hachyderm.io/accounts/avatars/109/406/303/023/838/906/original/ffba147a5c436498.jpg</icon>
  <logo>https://media.hachyderm.io/accounts/avatars/109/406/303/023/838/906/original/ffba147a5c436498.jpg</logo>




  <entry>
    <id>https://yabu.me/nevent1qqs0wz6grafa0gf5yf3w280smtx24s8u8v2pp3g72vnn80c6tmy032gzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47eazyqg</id>
    
      <title type="html">My aspirations for computers are modest: I would like to minimize ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs0wz6grafa0gf5yf3w280smtx24s8u8v2pp3g72vnn80c6tmy032gzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47eazyqg" />
    <content type="html">
      My aspirations for computers are modest: I would like to minimize the number of times I say &amp;#34;what&amp;#39;s it doing now??&amp;#34;&lt;br/&gt;&lt;br/&gt;Empirically, so far, the single most effective way to achieve this has been to touch the cloud less.
    </content>
    <updated>2024-09-11T23:33:14Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqszswdcaq2q764jt2uhk726yshesz0hnh2zltyyefyfpuh9xn4ls9gzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47elfkag</id>
    
      <title type="html">&amp;#34;I&amp;#39;ll implement a UART, I already have one so it should ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqszswdcaq2q764jt2uhk726yshesz0hnh2zltyyefyfpuh9xn4ls9gzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47elfkag" />
    <content type="html">
      &amp;#34;I&amp;#39;ll implement a UART, I already have one so it should be easy to copy over and tidy up&amp;#34;&lt;br/&gt;&lt;br/&gt;- Me, an idiot, a few moments before going &amp;#34;oh I guess I could implement hardware flow control too, how hard can that be&amp;#34;
    </content>
    <updated>2024-09-11T03:07:33Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs26amlsm4dmznk5zm07m3rac4kuce2fh0ahmmgdp87k2z0acmkhmszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt478jqtrl</id>
    
      <title type="html">ugh I want to keep writing silly FPGA programs but I have to look ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs26amlsm4dmznk5zm07m3rac4kuce2fh0ahmmgdp87k2z0acmkhmszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt478jqtrl" />
    <content type="html">
      ugh I want to keep writing silly FPGA programs but I have to look at the bad screen and do cloud shit instead. You can&amp;#39;t even see any flops flip from up here, it sucks.
    </content>
    <updated>2024-09-10T17:44:59Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqstnpvw3g6pfrvwvq20rskpq029drsz4my3pxlgpz8qmm7xvt4wcngzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47006vj9</id>
    
      <title type="html">&amp;#34;Well how much can there possibly be in TeXLive anyway&amp;#34; ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqstnpvw3g6pfrvwvq20rskpq029drsz4my3pxlgpz8qmm7xvt4wcngzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47006vj9" />
    <content type="html">
      &amp;#34;Well how much can there possibly be in TeXLive anyway&amp;#34;&lt;br/&gt;&lt;br/&gt;TeXLive: well, if you want all the things, the ISO&amp;#39;s 6GiB&lt;br/&gt;&lt;br/&gt;Good grief.
    </content>
    <updated>2024-09-08T03:37:45Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs8rg6caux0v6fw44cmpxkxqhatup39nyfzllthc0c7f0fq3q22kxgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47fad7s8</id>
    
      <title type="html">[@mos_8502](https://studio8502.ca/@mos_8502 ) any chance you ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs8rg6caux0v6fw44cmpxkxqhatup39nyfzllthc0c7f0fq3q22kxgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47fad7s8" />
    <content type="html">
      [@mos_8502](&lt;a href=&#34;https://studio8502.ca/@mos_8502&#34;&gt;https://studio8502.ca/@mos_8502&lt;/a&gt; ) any chance you found better timing diagrams somewhere for the 65C816 and/or 265 than what&amp;#39;s in the datasheets? Pondering how to wire up the external bus interface, and the timing diagrams that smash every operation into one is... hard to follow :/
    </content>
    <updated>2024-09-07T19:39:44Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqstvdr8nhmsvx3e8h3lu4hmz2vdw3t89acw633eruwl0yxlydqsteszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47ywswua</id>
    
      <title type="html">Basically my line of thinking is: these simple chips have been ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqstvdr8nhmsvx3e8h3lu4hmz2vdw3t89acw633eruwl0yxlydqsteszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47ywswua" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswsz29nj6naqmazn6tjlxhg4984vphuus43a9gp8akkpetnaa86xq0tulga&#39;&gt;nevent1q…ulga&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Basically my line of thinking is: these simple chips have been getting faster and faster edges as their dies shrink, which in general causes headaches because people have to deal with high-speed design even if they just needed a lil&amp;#39; inverter. Could you flip that around though, and go hot damn, logic gates with sub-nanosecond rise times, that means they can go real fast if I&amp;#39;m careful about board layout?
    </content>
    <updated>2024-09-03T17:26:06Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqswsz29nj6naqmazn6tjlxhg4984vphuus43a9gp8akkpetnaa86xqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47uwv8pt</id>
    
      <title type="html">morning coffee musing: could you make a discrete computer (7400 ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqswsz29nj6naqmazn6tjlxhg4984vphuus43a9gp8akkpetnaa86xqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47uwv8pt" />
    <content type="html">
      morning coffee musing: could you make a discrete computer (7400 chips, but the modern versions with fast slew rates and all that) that can run at triple digit MHz?&lt;br/&gt;&lt;br/&gt;Most such computers I see top out at low single MHz at best, but I wonder if that&amp;#39;s because they&amp;#39;re typically built breadboard style, without much attention to transmission lines, signal integrity, EMI, decoupling and all that.&lt;br/&gt;&lt;br/&gt;Or is there something more fundamental that makes this so, like lead inductances adding up?...
    </content>
    <updated>2024-09-03T17:23:54Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsdzg50v5ahmf4ht8wwhvde9fvhtmu57hfnmlc9nwc3tcz2u0jy6jgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47l8arvx</id>
    
      <title type="html">Swift seems very well put together, though it seems welded deep ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsdzg50v5ahmf4ht8wwhvde9fvhtmu57hfnmlc9nwc3tcz2u0jy6jgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47l8arvx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszhl7gczt9pavrfujtfkvakr78v2920lkafg54mst7ylrxx2sh8lguczy4g&#39;&gt;nevent1q…zy4g&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Swift seems very well put together, though it seems welded deep enough to apple stuff that it&amp;#39;s probably not for me. Vala, I remember when it first happened and _really_ not getting it... But with another decade or two of experience, I can see what they&amp;#39;re going for, and while I don&amp;#39;t think it&amp;#39;s for me I appreciate the work.
    </content>
    <updated>2024-09-03T02:14:20Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsy440c7uh8r7ent7mxt5uw2qnm392nprs2lyhqw5pmjtf73acy09czyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47umuz2t</id>
    
      <title type="html">It spans all vocations, imo. It&amp;#39;s okay to like good tools, ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsy440c7uh8r7ent7mxt5uw2qnm392nprs2lyhqw5pmjtf73acy09czyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47umuz2t" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvcmq9rhr5tvgh8uj4phak64afvv23zpy3qpuamyxnuav563mewtgtphkfn&#39;&gt;nevent1q…hkfn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;It spans all vocations, imo. It&amp;#39;s okay to like good tools, and some people end up being tool crafters... but I&amp;#39;d like to hang out with machinists, not people who get into fights about which brand of lathe is the Best Lathe. Same with programming languages.
    </content>
    <updated>2024-09-03T02:12:51Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsrtytmzeguenf5z6ptg2c58vpcyja0zregu6cnqwf57n4aa8plf3qzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47g70nyc</id>
    
      <title type="html">I bailed around the time Go came along, and it was such a breath ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsrtytmzeguenf5z6ptg2c58vpcyja0zregu6cnqwf57n4aa8plf3qzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47g70nyc" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs24y9ec5jjr9y869vvtq8a672uye98qf6wy0f2ds75wujynjg4dcsgnr6yt&#39;&gt;nevent1q…r6yt&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I bailed around the time Go came along, and it was such a breath of fresh air to have a language and tooling that wants to help you make things that aren&amp;#39;t papers. My true happy place is probably somewhere in between the  two, I miss richer type systems fairly often... But Go being uninteresting to extreme language design people turned out to be one of its greatest assets, if I can be a little snarky briefly.
    </content>
    <updated>2024-09-03T02:10:52Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs24y9ec5jjr9y869vvtq8a672uye98qf6wy0f2ds75wujynjg4dcszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47dukf3x</id>
    
      <title type="html">Yeah pretty much. At the time I got seriously into it, there was ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs24y9ec5jjr9y869vvtq8a672uye98qf6wy0f2ds75wujynjg4dcszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47dukf3x" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsz365ajjrs9vp2msqzng2gpnx8d4ny9c343peqaz6decn283duxlssvmmj5&#39;&gt;nevent1q…mmj5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yeah pretty much. At the time I got seriously into it, there was a subculture of &amp;#34;industrial Haskell&amp;#34; that was developing, with a strong focus towards building &amp;#34;real&amp;#34; software with Haskell. The stuff that came out of that subculture was quite pleasant, but it didn&amp;#39;t really stand a chance against the research arm of the userbase.&lt;br/&gt;&lt;br/&gt;Then again Haskell feels like it&amp;#39;s always been honest about not wanting to be &amp;#34;successful&amp;#34; so much as being a breeding ground for academia, so...
    </content>
    <updated>2024-09-03T02:08:26Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs9lg033fqscu56lnnd7q8qxq8tqpgwueaprcl7f0zr253k9pnnx2czyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt478537uv</id>
    
      <title type="html">And then in an even stranger collision of history, Bluespec&amp;#39;s ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs9lg033fqscu56lnnd7q8qxq8tqpgwueaprcl7f0zr253k9pnnx2czyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt478537uv" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxvwdysv37r9mthcqld08k7lnntdkqpvxruueye97kkn9lx48jhssxmdey7&#39;&gt;nevent1q…dey7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;And then in an even stranger collision of history, Bluespec&amp;#39;s original designer was also a major contributor to LPMud. He&amp;#39;s been doing languages and runtimes for a long while, turns out.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m still not super sold on Haskell as the underlying superstructure for Bluespec, especially after the SystemVerilog surface syntax was added the semantics just feel unhelpfully confusing at times. Hard to argue too much with the result, but I&amp;#39;m definitely more curious about other such experiments now.
    </content>
    <updated>2024-09-03T02:01:45Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsxvwdysv37r9mthcqld08k7lnntdkqpvxruueye97kkn9lx48jhsszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47pmdx9p</id>
    
      <title type="html">From reading about Bluespec&amp;#39;s history, TIL there was an ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsxvwdysv37r9mthcqld08k7lnntdkqpvxruueye97kkn9lx48jhsszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47pmdx9p" />
    <content type="html">
      From reading about Bluespec&amp;#39;s history, TIL there was an object-oriented flavor of Haskell called O&amp;#39;Haskell. I find this very funny and am now picturing Haskell but with an Irish surface syntax. No, I have no idea what that means either, it&amp;#39;s the absurdity I find entertaining to some degree.
    </content>
    <updated>2024-09-03T01:55:23Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsg7cra6vaqgsj70hqqrks0gkcstqlq65cyfwd5258c2mxy6v3jtlgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47dr2cjt</id>
    
      <title type="html">Some days, I wish I was simply good enough to get it right the ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsg7cra6vaqgsj70hqqrks0gkcstqlq65cyfwd5258c2mxy6v3jtlgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47dr2cjt" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfdkjtgl0ts2jwvea4j5n2uj2ezq7mwyl9zfhwhcwg6wyne7tvszgen8je7&#39;&gt;nevent1q…8je7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Some days, I wish I was simply good enough to get it right the first time, or not care about correctness. Seems like a much easier time to have :P
    </content>
    <updated>2024-08-31T02:26:28Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs9fnnqekrkpmgzezvnam46ww0v85unsem8q36qt5x55sevgtzyp2qzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47vhweeg</id>
    
      <title type="html">This memory is slightly annoying in that it has a zillion ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs9fnnqekrkpmgzezvnam46ww0v85unsem8q36qt5x55sevgtzyp2qzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47vhweeg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswma9mn6tafvnkr2kgy7j8dvmhsg93fhsnrngnrhwv3ftw5n57xucfqvpwj&#39;&gt;nevent1q…vpwj&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;This memory is slightly annoying in that it has a zillion possible configurations, and so far I don&amp;#39;t see a way around just copy/pasting the testbench a zillion times and having all the ever so slightly different inputs/outputs enumerated, which is a bit of a slog.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s _almost_ regular enough that it&amp;#39;s tempting to write python to generate the testbenches... But having code write tests always makes me a bit nervous because what if bug in test generator
    </content>
    <updated>2024-08-31T02:15:23Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqswma9mn6tafvnkr2kgy7j8dvmhsg93fhsnrngnrhwv3ftw5n57xuczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47vc5wn7</id>
    
      <title type="html">Some test waveforms. The basic configuration of 2x18b ports seems ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqswma9mn6tafvnkr2kgy7j8dvmhsg93fhsnrngnrhwv3ftw5n57xuczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47vc5wn7" />
    <content type="html">
      Some test waveforms. The basic configuration of 2x18b ports seems to work, with the exception that port conflicts currently aren&amp;#39;t handled as well as I&amp;#39;d like: one of the conflicting values gets picked, instead of being set to all X to make the conflict obvious. But the various other output modes seem to work, so far at least.&lt;br/&gt; &lt;img src=&#34;https://media.hachyderm.io/media_attachments/files/113/054/203/388/185/382/original/8b78d53fc5f143eb.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2024-08-31T02:13:40Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsfhtfghkasnylyu0nyvjfc7u8hnzenhy543pth3uffkys6hsewhlszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47qkyt4h</id>
    
      <title type="html">Just this morning I emailed one of the Minuteman historical sites ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsfhtfghkasnylyu0nyvjfc7u8hnzenhy543pth3uffkys6hsewhlszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47qkyt4h" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsru7ymv7ajal7cx7dlpu99n2g6gc3xkj3axav37x2cl6kp8ducy7snxwllm&#39;&gt;nevent1q…wllm&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Just this morning I emailed one of the Minuteman historical sites to ask for dimensions of missile status lights on the commander&amp;#39;s dashboard. I think that puts me in the &amp;#34;missiles Georg&amp;#34; bucket on this one
    </content>
    <updated>2024-08-30T19:13:47Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs9knhx0avnfpyvf8t9v05qga6jah6gcx7raxtkzagv28tlnqv7sjczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47wllnnc</id>
    
      <title type="html">Breakthrough: in this DAG, a node is considering a path which ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs9knhx0avnfpyvf8t9v05qga6jah6gcx7raxtkzagv28tlnqv7sjczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47wllnnc" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqcwaltg6r5cmrwe5n5lvfh562jl3ly8p5l6tsedqdcghp5qgz4lqxx2pce&#39;&gt;nevent1q…2pce&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Breakthrough: in this DAG, a node is considering a path which transits itself, as the non-first node. The algorithm has been cited for wanton disregard of mathematics without a license.
    </content>
    <updated>2024-08-28T04:47:00Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsqcwaltg6r5cmrwe5n5lvfh562jl3ly8p5l6tsedqdcghp5qgz4lqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47xuy8f9</id>
    
      <title type="html">Important leap forward: algorithm now adds back graph edges! The ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsqcwaltg6r5cmrwe5n5lvfh562jl3ly8p5l6tsedqdcghp5qgz4lqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47xuy8f9" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsd99pra70m3j6fg54xp7t4gvcv58nvmume9zqscsjrtlgejfrnphcwsj9xn&#39;&gt;nevent1q…j9xn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Important leap forward: algorithm now adds back graph edges!&lt;br/&gt;&lt;br/&gt;The wrong ones mind you, but, baby steps.
    </content>
    <updated>2024-08-28T04:17:56Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsd99pra70m3j6fg54xp7t4gvcv58nvmume9zqscsjrtlgejfrnphczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47fhqpv5</id>
    
      <title type="html">Implemented a graph simplification algorithm. So far, it half ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsd99pra70m3j6fg54xp7t4gvcv58nvmume9zqscsjrtlgejfrnphczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47fhqpv5" />
    <content type="html">
      Implemented a graph simplification algorithm. So far, it half works. In the sense that it deletes all edges. It hasn&amp;#39;t yet figured out phase two, in which it&amp;#39;s supposed to add back the important edges...
    </content>
    <updated>2024-08-28T03:59:23Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsyqppyp4l6sk87h7lq3dtrf3js9hx4s6qtfn0r4k3qh93u799nccqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47gysjw0</id>
    
      <title type="html">So far it&amp;#39;s been crunching for 3 minutes, and is up to 3.6GiB ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsyqppyp4l6sk87h7lq3dtrf3js9hx4s6qtfn0r4k3qh93u799nccqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47gysjw0" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqgp7c5c49drwx862aq6wn4rx5t7a6k3hp7txaej3qwgkps8vftgscm87qk&#39;&gt;nevent1q…87qk&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;So far it&amp;#39;s been crunching for 3 minutes, and is up to 3.6GiB RAM. This is fine.&lt;br/&gt;&lt;br/&gt;And then xdot is going to try and open whatever the hell comes out, which may well just kill the machine.
    </content>
    <updated>2024-08-26T20:47:10Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsqgp7c5c49drwx862aq6wn4rx5t7a6k3hp7txaej3qwgkps8vftgszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47dgzgm4</id>
    
      <title type="html">hahaha oh no I forgot to remove the &amp;#39;show&amp;#39; from my ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsqgp7c5c49drwx862aq6wn4rx5t7a6k3hp7txaej3qwgkps8vftgszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47dgzgm4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqst0jypyh02t8pgr2pvpl9df0hmjqrrpurz44eveshl6cs6xcfta9sqe08uj&#39;&gt;nevent1q…08uj&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;hahaha oh no I forgot to remove the &amp;#39;show&amp;#39; from my script, so now graphviz is trying to figure out how the fuck to organize a graph of 334,000 nodes, F in chat
    </content>
    <updated>2024-08-26T20:45:56Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqst0jypyh02t8pgr2pvpl9df0hmjqrrpurz44eveshl6cs6xcfta9szyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47td6mfr</id>
    
      <title type="html">bahahah I asked yosys to do the full synth run, rather than stop ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqst0jypyh02t8pgr2pvpl9df0hmjqrrpurz44eveshl6cs6xcfta9szyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47td6mfr" />
    <content type="html">
      bahahah I asked yosys to do the full synth run, rather than stop at coarse optimization. So now it&amp;#39;s having to lower an 18kbit memory to muxes and flops, and hooo boy it&amp;#39;s having a bad time lemme tell ya
    </content>
    <updated>2024-08-26T20:43:56Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsvz20nte87zzcs74lvyjvvtfjf0lcm3azrhp35qegunu6sqe3qh5qzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47fqs0yn</id>
    
      <title type="html">Strangest of all, this is only happening in the write path? The ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsvz20nte87zzcs74lvyjvvtfjf0lcm3azrhp35qegunu6sqe3qh5qzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47fqs0yn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsq9m6dlx3suhtpgxq9alx7xepzfnfxn0d5jk949sv4hutwh0kytnqvrvvsx&#39;&gt;nevent1q…vvsx&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Strangest of all, this is only happening in the write path? The read path just grabs the slightly widened address out and plugs that into the read port, so I end up with a memory that&amp;#39;s got a 15-bit read port address, and 270 bits on the write port... It&amp;#39;s _possible_ that this is a correct translation of my intent, but it sure looks wacky... Let&amp;#39;s see what RTLIL says...
    </content>
    <updated>2024-08-26T20:05:51Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsq9m6dlx3suhtpgxq9alx7xepzfnfxn0d5jk949sv4hutwh0kytnqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt474r6y8r</id>
    
      <title type="html">Hmm, though at the same time, yosys&amp;#39;s optimization passes ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsq9m6dlx3suhtpgxq9alx7xepzfnfxn0d5jk949sv4hutwh0kytnqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt474r6y8r" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9kj24sqwl28j3mwu59u83dfsedx0z0h0u4ml4sukw5ff58smhdjg5jvqxq&#39;&gt;nevent1q…vqxq&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Hmm, though at the same time, yosys&amp;#39;s optimization passes have done something quite cursed here it seems. The 9-bit input address is getting concatenated to 0x9, then thrown through a bunch of multiply-accumulates and ALUs to compute... something. I assume that transformation is correct and just optimizing some of the terrible address math that has to take place, but that still fails to explain how I&amp;#39;m ending up with an address that&amp;#39;s 27x wider than what I started with...
    </content>
    <updated>2024-08-26T20:03:47Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs9kj24sqwl28j3mwu59u83dfsedx0z0h0u4ml4sukw5ff58smhdjgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47vsx9va</id>
    
      <title type="html">Hmm, okay, my synthesis of this RAM might not yet be _quite_ ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs9kj24sqwl28j3mwu59u83dfsedx0z0h0u4ml4sukw5ff58smhdjgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47vsx9va" />
    <content type="html">
      Hmm, okay, my synthesis of this RAM might not yet be _quite_ right. I&amp;#39;m pretty sure a 9-bit write address isn&amp;#39;t supposed to expand into a 270-bit address by the time it reaches the RAM...
    </content>
    <updated>2024-08-26T20:00:33Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs8luj2gd5gfqlnmepy9v8tr9z2m2r8nwg2ptvcu4chjl9tpd6r9tszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47z0y5u5</id>
    
      <title type="html">silly question, why&amp;#39;s it called the clock port? This must be ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs8luj2gd5gfqlnmepy9v8tr9z2m2r8nwg2ptvcu4chjl9tpd6r9tszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47z0y5u5" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgrgfjycw8w5sywkcugjcdegs9yspfr4rrmuthvzcrujzqqkfre2s9x9ey5&#39;&gt;nevent1q…9ey5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;silly question, why&amp;#39;s it called the clock port? This must be a reference I&amp;#39;m not getting
    </content>
    <updated>2024-08-20T04:06:09Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsfxp47pjsuzfxgjs0dqmqfkva473acxghrdyen2j9jxkm72lntqdczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47w4vajg</id>
    
      <title type="html">&amp;#34;Hmm, I need to get a medium fancy bit of arithmetic computed ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsfxp47pjsuzfxgjs0dqmqfkva473acxghrdyen2j9jxkm72lntqdczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47w4vajg" />
    <content type="html">
      &amp;#34;Hmm, I need to get a medium fancy bit of arithmetic computed quickly, I wonder what the DSP hard blocks on this FPGA can do&amp;#34;&lt;br/&gt;&lt;br/&gt;The FPGA, with unhinged eyes: &amp;#34;did someone say they need to MATH THE SHIT OUT OF SOMETHING&amp;#34;&lt;br/&gt; &lt;img src=&#34;https://media.hachyderm.io/media_attachments/files/112/986/321/952/027/268/original/fb872cdf952267b9.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2024-08-19T02:31:14Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsr30qjh4yrthufn2327eadefkvj6qkxfx55p444pagas8tta6nc9qzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47edah05</id>
    
      <title type="html">Ah I see I was confusing myself with the port names, I think. ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsr30qjh4yrthufn2327eadefkvj6qkxfx55p444pagas8tta6nc9qzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47edah05" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsf659lwejw2shfatah85ce689dynfduutzul2tceyqxxvf82wvmpgc4cjxy&#39;&gt;nevent1q…cjxy&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Ah I see I was confusing myself with the port names, I think. Re-reading the datasheet&amp;#39;s description of the multiplexing on Dn, I think I understand what muxing needs to happen, and it should be easy to implement.&lt;br/&gt;&lt;br/&gt;All other peripherals just want separate address and data ports, right? Plus maybe some chip selects so they sit in the right portion of the address space?
    </content>
    <updated>2024-08-17T21:06:24Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsf659lwejw2shfatah85ce689dynfduutzul2tceyqxxvf82wvmpgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47p3k5dm</id>
    
      <title type="html">Hmm, I think my understanding of the pinout on the 816 may be ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsf659lwejw2shfatah85ce689dynfduutzul2tceyqxxvf82wvmpgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47p3k5dm" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspejgwyk0jdgwy7784twvvdg46fag9vj2ygg5y7ygvr9rcx58awjqr0r7hn&#39;&gt;nevent1q…r7hn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Hmm, I think my understanding of the pinout on the 816 may be off. Is the 7400 logic in one of the kicad designs that I can look at?
    </content>
    <updated>2024-08-17T21:03:47Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsg82jhpkedh0gp9kq6kpqdr5yf6mp3sy7vk7rq55k9n4h5aujgwuqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47qud82f</id>
    
      <title type="html">This is how I understand the 816&amp;#39;s muxing from the block ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsg82jhpkedh0gp9kq6kpqdr5yf6mp3sy7vk7rq55k9n4h5aujgwuqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47qud82f" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswrtw0xzdavtsfzms8yvumlvfewkfj057l4vsqf2509efnhl77ussqgryv8&#39;&gt;nevent1q…ryv8&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;This is how I understand the 816&amp;#39;s muxing from the block diagram, tell me if this is right?&lt;br/&gt;&lt;br/&gt;The 816 has a 16b address port and an 8b address&#43;data port. The I/O cycle starts with a PHI2 posedge, with the address 24b address presented across both ports. Then it turns the 8b port around, and expects the peripheral to deposit 8b data on the next PHI2 negedge.&lt;br/&gt;&lt;br/&gt;If that&amp;#39;s a correct understanding, demuxing that should be fine. Do you need two separate 8b ports back out?
    </content>
    <updated>2024-08-17T20:58:02Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqstx03surm3tv6hz68umpvkusn3zkkcfq5t30tk5vu0xvs9hlvtlnszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47tgp6qv</id>
    
      <title type="html">Cool, so assuming enough pins to do the thing, the FPGA could, ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqstx03surm3tv6hz68umpvkusn3zkkcfq5t30tk5vu0xvs9hlvtlnszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47tgp6qv" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsre57mxln2usptgpyd4qkpy2yanxv6gexrrhfrncq6mc2r2g6uvvszztt92&#39;&gt;nevent1q…tt92&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Cool, so assuming enough pins to do the thing, the FPGA could, say, let you inspect/modify RAM on a running machine by pausing the CPU clock, yanking BE to get the CPU off-bus, and initiate I/O with other peripherals itself. That could be fun.&lt;br/&gt;&lt;br/&gt;The 65C816S datasheet&amp;#39;s architecture diagram does show a bus enable control line on the I/O, so... maybe?
    </content>
    <updated>2024-08-17T20:52:03Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs9um7mduuudzrg06vd5wvdu3q4ffa6n3yaaflxv60zczkapw70dlszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47pckcvt</id>
    
      <title type="html">Ooh and you mentioned the CPU is static and can be halted ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs9um7mduuudzrg06vd5wvdu3q4ffa6n3yaaflxv60zczkapw70dlszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47pckcvt" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswnsz9wal2rwyqxnng527m6pjnq33yxk4et85ccepsk0rm87fycacmhsr2c&#39;&gt;nevent1q…sr2c&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Ooh and you mentioned the CPU is static and can be halted consequence-free at any point. What&amp;#39;s the builtin debug facilities look like? Because if the FPGA&amp;#39;s in charge of the CPU clock, you could maybe have a debug interface on GARY that lets you jack into the machine, halt the CPU on some trigger condition, inspect system state (assuming the CPU can be made to hi-Z its bus outputs, so the FPGA can take over as bus master and query RAM and whatever)...&lt;br/&gt;&lt;br/&gt;Another pony for the list!
    </content>
    <updated>2024-08-17T20:49:09Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqswnsz9wal2rwyqxnng527m6pjnq33yxk4et85ccepsk0rm87fycaczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47xafvjr</id>
    
      <title type="html">A setup where the CPU and FPGA run synchronous would be ideal ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqswnsz9wal2rwyqxnng527m6pjnq33yxk4et85ccepsk0rm87fycaczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47xafvjr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspa0zny9agtcapuly5pwr8wanu4q74qzdgx6unz6g9c8mqgmrne0c2q4lev&#39;&gt;nevent1q…4lev&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;A setup where the CPU and FPGA run synchronous would be ideal from the FPGA&amp;#39;s POV, for sure. Properly synchronized inputs are much nicer to deal with. Plus, it lets you do overclocking and 6502 compat with a software push! Write to some register for a glitch-free switchover to a slower/faster clock.
    </content>
    <updated>2024-08-17T20:45:18Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqspa0zny9agtcapuly5pwr8wanu4q74qzdgx6unz6g9c8mqgmrne0czyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47wg432z</id>
    
      <title type="html">Gotcha. I can probably help with the vera core hacking side of ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqspa0zny9agtcapuly5pwr8wanu4q74qzdgx6unz6g9c8mqgmrne0czyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47wg432z" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2dcv22hfwdmczc2s55fcrnwfgyjzwg0sm2chp38rv9mmhcjvpq5se4umx8&#39;&gt;nevent1q…umx8&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Gotcha. I can probably help with the vera core hacking side of that if you&amp;#39;d like, I _think_ I know my way around the design enough to do that. it might not be done Right in terms of using the builtin clocking elements and stuff vs. just yolo-dividing the internal clock, but it&amp;#39;d work well enough to prototype at least (might just mean the clock phases are a teeny bit off, but fingers crossed not enough to violate timing)
    </content>
    <updated>2024-08-17T20:41:50Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs0dreu8eyp6dh29g5xnne9mlp5rsey85l37n65rzdtpfekjgepr4czyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47rkc72p</id>
    
      <title type="html">Remind me of how the clock generation happens on 65X? Is the FPGA ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs0dreu8eyp6dh29g5xnne9mlp5rsey85l37n65rzdtpfekjgepr4czyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47rkc72p" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsx2svrv4u6a3gcnfq39j4jsczxnqw659syxzrcdxyuwut9d48s0fqj6wcqu&#39;&gt;nevent1q…wcqu&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Remind me of how the clock generation happens on 65X? Is the FPGA generating a clock for the 65C826, or are they free-running independently? If the latter, _can_ the FPGA provide a clock signal to put the CPU in lockstep with itself?
    </content>
    <updated>2024-08-17T20:26:03Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsx2svrv4u6a3gcnfq39j4jsczxnqw659syxzrcdxyuwut9d48s0fqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47dkd559</id>
    
      <title type="html">Yeah, although as you write out the logic inside the FPGA, ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsx2svrv4u6a3gcnfq39j4jsczxnqw659syxzrcdxyuwut9d48s0fqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47dkd559" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszryse0zk05fhnzpskp25dj87ye9lh8d925yc6n8yd2huttylayfqfe59wu&#39;&gt;nevent1q…59wu&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yeah, although as you write out the logic inside the FPGA, it&amp;#39;s annoying how fast cycles creep into the data path. A memory cycle here, a couple cycles for synchronization there, oh no this combinatorial path is too long so it can only run at 40MHz now unless I pipeline it with another register and now the path is another cycle longer, etc.&lt;br/&gt;&lt;br/&gt;That&amp;#39;s where my lack of confidence comes from atm, I don&amp;#39;t know how many cycles things will have to be :/
    </content>
    <updated>2024-08-17T20:25:06Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqst0spstzuzu4t9nwwk268cg7lrk09z4w95h2hagtptfdw0hrrvtnszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47mnrsna</id>
    
      <title type="html">There&amp;#39;s still some clock domain crossing gubbins to square ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqst0spstzuzu4t9nwwk268cg7lrk09z4w95h2hagtptfdw0hrrvtnszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47mnrsna" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9ajej38am70epmz2x88t9w0ql7nsxwxknt3aeqv3qqujg9vwfsas2xe9kf&#39;&gt;nevent1q…e9kf&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;There&amp;#39;s still some clock domain crossing gubbins to square things with the compiler in the FPGA, but sending data across clock domains of clocks that are related and phase-locked can be done with no additional delay cycles.
    </content>
    <updated>2024-08-17T20:14:24Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs9ajej38am70epmz2x88t9w0ql7nsxwxknt3aeqv3qqujg9vwfsaszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47mzqjus</id>
    
      <title type="html">Note synchronized clocks don&amp;#39;t have to run at the same rate. ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs9ajej38am70epmz2x88t9w0ql7nsxwxknt3aeqv3qqujg9vwfsaszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47mzqjus" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9rtjpywv4s650hfy5hheume4zn2xxdke4zt67vt07dyzak9f4c9qzwnfnh&#39;&gt;nevent1q…nfnh&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Note synchronized clocks don&amp;#39;t have to run at the same rate. One just has to be a divided version of the other. So you can have a 100MHz FPGA talking to a 50MHz CPU, as long as the two clocks stay in phase such that a rising edge from the CPU corresponds to a rising edge of the FPGA clock. That allows the FPGA to latch inputs without having to worry about metastability, because it&amp;#39;s doing so within the window where the CPU guarantees stable/valid values.
    </content>
    <updated>2024-08-17T20:12:57Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs9rtjpywv4s650hfy5hheume4zn2xxdke4zt67vt07dyzak9f4c9qzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47js5lnr</id>
    
      <title type="html">For a 50MHz eZ80... I don&amp;#39;t know what its bus discipline ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs9rtjpywv4s650hfy5hheume4zn2xxdke4zt67vt07dyzak9f4c9qzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47js5lnr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgjxrz3gsqpx9u3rewt63g64346wmx0waax9e0yjlrh0u9gclee9cy7v6wn&#39;&gt;nevent1q…v6wn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;For a 50MHz eZ80... I don&amp;#39;t know what its bus discipline looks like, that&amp;#39;s key. From the edge that tells the FPGA it can latch an address and do a read, how long does it have to get the right signals on the data bus? And, are the bus and FPGA clocks synchronized? Synchronized clocks can avoid the 2-cycle synchronization delay, which is a pretty huge chunk of the total budget in this case.
    </content>
    <updated>2024-08-17T20:10:08Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsgjxrz3gsqpx9u3rewt63g64346wmx0waax9e0yjlrh0u9gclee9czyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47xf00u4</id>
    
      <title type="html">if I&amp;#39;m reading this right, you can configure the CPU to ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsgjxrz3gsqpx9u3rewt63g64346wmx0waax9e0yjlrh0u9gclee9czyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47xf00u4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsw5tg4pcx25772z2ffnqx4k0a70qlcvjv759jqe62ymt20ryfgaysrtvsc9&#39;&gt;nevent1q…vsc9&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;if I&amp;#39;m reading this right, you can configure the CPU to stretch PHI2 for slower memories, which may end up being required here. Otherwise running at 12.5MHz PHI2, FPGA has to turn reads around at 25MHz, so 75-100MHz internal clock. That _should_ be doable, simple experimental designs clear 150MHz easily, but I don&amp;#39;t know what the more complex vera-ish bus frontend will need.
    </content>
    <updated>2024-08-17T20:07:38Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsw5tg4pcx25772z2ffnqx4k0a70qlcvjv759jqe62ymt20ryfgayszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47fn4a66</id>
    
      <title type="html">Depends a lot on the bus timing requirements from the CPU. ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsw5tg4pcx25772z2ffnqx4k0a70qlcvjv759jqe62ymt20ryfgayszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47fn4a66" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsttlem7u3n3jmsd6fmx98qrcn9lx3uvnrpml83vjw34dr33tyd7lgcpj8qu&#39;&gt;nevent1q…j8qu&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Depends a lot on the bus timing requirements from the CPU. Roughly, with an async bus, the fastest the FPGA can turn around a read request is 3 cycles of its main clock (2 for clock domain crossing, 1 for memory access assuming no contention). I think ideally 4 cycles would be better, that&amp;#39;d allow for another layer of registers on the output to shorten the data paths.&lt;br/&gt;&lt;br/&gt;On the 65C816, looks like reads need to be turned around in 0.5 PHI2 cycles. So, 3-4 cycles per half-PHI2.
    </content>
    <updated>2024-08-17T20:05:55Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsdrp8qk7svyt3kjdgss5qhf332y239clacdwx7h06xh56kayzykhszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47xaejx5</id>
    
      <title type="html">Hmm. What&amp;#39;s the timing requirements for reads? That is, from ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsdrp8qk7svyt3kjdgss5qhf332y239clacdwx7h06xh56kayzykhszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47xaejx5" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0tqxt6y5leucd75t8m0qfjh80nca9myrggm6v9s0990lh2w60pkcjz6fa8&#39;&gt;nevent1q…6fa8&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Hmm. What&amp;#39;s the timing requirements for reads? That is, from the moment the CPU pulses to tell me to latch addresses and execute a read, how long do I have to put the right value on the data lines?
    </content>
    <updated>2024-08-17T19:48:06Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqstpfpky4fnn23r92mlrhfwuxuy8qgwg0nnll72ges8da70lnzn2gszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47xlpu4e</id>
    
      <title type="html">I think as it happens in my current sketch the lopsided operation ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqstpfpky4fnn23r92mlrhfwuxuy8qgwg0nnll72ges8da70lnzn2gszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47xlpu4e" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsd4mzu8dynwyfzfz7806wuatzurd0y0aself2jqljt5gur9qjal5s9lyqjd&#39;&gt;nevent1q…yqjd&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I think as it happens in my current sketch the lopsided operation latencies wouldn&amp;#39;t matter, because all the writes would happen on port A, where the FPGA just needs to run faster than the system bus. On port B where the video pipeline is pulling data, everything is read-only and remains single cycle. Just trying to decide if I care or not, really :)
    </content>
    <updated>2024-08-17T06:18:05Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsd4mzu8dynwyfzfz7806wuatzurd0y0aself2jqljt5gur9qjal5szyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47ndq339</id>
    
      <title type="html">Yeah I&amp;#39;m mostly dithering on whether it makes any sense. ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsd4mzu8dynwyfzfz7806wuatzurd0y0aself2jqljt5gur9qjal5szyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47ndq339" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0anypydvyqnf6gy9d8n6w7x6qgmt039l7dlfne30uuldze37ztccsr7vy2&#39;&gt;nevent1q…7vy2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yeah I&amp;#39;m mostly dithering on whether it makes any sense. Implementing a fancy memory controller that has to do RMW and possibly split byte access across two RAM blocks might end up being more gates than just brute-forcing with other RAM primitives to make up the balance.
    </content>
    <updated>2024-08-17T06:16:28Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsg2x2z2ugy0een4scjhj75uj7aa3u9hhc4yk7ytt8gcv4py5de5cqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47x4krdq</id>
    
      <title type="html">... Damnit, and the ECP5-25 only has 114KB of block RAM if ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsg2x2z2ugy0een4scjhj75uj7aa3u9hhc4yk7ytt8gcv4py5de5cqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47x4krdq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxx5cstdaqwnycpw5alrxk4r8gvptxmt8tczdequm4m0cc3v9w7vshjy33r&#39;&gt;nevent1q…y33r&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;... Damnit, and the ECP5-25 only has 114KB of block RAM if you&amp;#39;re using power of two widths. I guess that&amp;#39;s broadly okay because I can use distributed RAM to make up the balance and claw my way up to 128K, but... damnit, the 128K is in there, just in the most annoying possible shape that I can&amp;#39;t use.&lt;br/&gt;&lt;br/&gt;Unless I instantiate 18-bit RAM and implement byte writes as a read-modify-write cycle... 2 cycle writes and 1 cycle reads, hmm...
    </content>
    <updated>2024-08-17T06:10:46Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsxx5cstdaqwnycpw5alrxk4r8gvptxmt8tczdequm4m0cc3v9w7vszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47jg7x6r</id>
    
      <title type="html">Arguably you can construct a usable topology by making every ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsxx5cstdaqwnycpw5alrxk4r8gvptxmt8tczdequm4m0cc3v9w7vszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47jg7x6r" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs80w39hkxreektwjrs90p3xrq83kc27rpy5kjky62ua5qwjk7nquc9u78am&#39;&gt;nevent1q…78am&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Arguably you can construct a usable topology by making every write into a read-modify-write cycle... But ugh, it&amp;#39;s such an odd layout, why??&lt;br/&gt;&lt;br/&gt;I assume the answer to why is another one of the FPGA blocks you can use is a DSP block that can do 18x18 multiplication. And I presume 18b is still a useful width for some DSP-ish things that FPGAs are made to do? Presumably the reason is no longer parity with electromechanical calculators.
    </content>
    <updated>2024-08-17T06:03:57Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs80w39hkxreektwjrs90p3xrq83kc27rpy5kjky62ua5qwjk7nquczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47lel7rf</id>
    
      <title type="html">Huh ECP5&amp;#39;s embedded block RAM is an annoying shape. It&amp;#39;s ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs80w39hkxreektwjrs90p3xrq83kc27rpy5kjky62ua5qwjk7nquczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47lel7rf" />
    <content type="html">
      Huh ECP5&amp;#39;s embedded block RAM is an annoying shape. It&amp;#39;s 18Kbits of ram, and you can configure it to operate in units of 1, 2, 4, 9 or 18 bits.&lt;br/&gt;&lt;br/&gt;However, if you configure it for 1, 2 or 4 bit data width, you only get to use 16384 of the bits. The remaining 2048 bits are stranded.&lt;br/&gt;&lt;br/&gt;On the flip side 9 and 18-bit widths are awkward, because there&amp;#39;s no masked writes, you have to overwrite 9 or 18 bits at once.
    </content>
    <updated>2024-08-17T05:59:35Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs80jejm3tksnapdas4hehw6vldmvghfzw232qkawkgpy9hs4hef9qzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt474e86dr</id>
    
      <title type="html">yeah, I feel that. On a good day the wisdom is wise and obvious. ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs80jejm3tksnapdas4hehw6vldmvghfzw232qkawkgpy9hs4hef9qzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt474e86dr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsda7f2ht247n24dxqks7f38peugjvwwjrtdjdtvns5dtwwfp65arc602a9w&#39;&gt;nevent1q…2a9w&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;yeah, I feel that. On a good day the wisdom is wise and obvious. On a bad day, well.
    </content>
    <updated>2024-08-16T21:35:11Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqspjtgn4xrryx0plxhgx6j75m8ayfac8vtyavtjtja2ka9n095um9qzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47alzfw7</id>
    
      <title type="html">I definitely get it, until the 65X kicked me out of the rut, ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqspjtgn4xrryx0plxhgx6j75m8ayfac8vtyavtjtja2ka9n095um9qzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47alzfw7" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsd9dth4se34f7alwqfs5lf0fg3vnmm8lw6gkh48ku29uueyjuuerc9zrqse&#39;&gt;nevent1q…rqse&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I definitely get it, until the 65X kicked me out of the rut, I&amp;#39;d not done any of this for a bunch of years out of a general sense of I&amp;#39;ll probably just fail. Rebuilding a healthy relationship with failure and iteration is a long road.
    </content>
    <updated>2024-08-16T21:27:10Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsyuh8qgkkcnm2tdue9jwxhuf805lqzvm7f2af5jpc4na50eajrecgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47sjf5ht</id>
    
      <title type="html">Yes! God the number of times I found an unbelievably good little ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsyuh8qgkkcnm2tdue9jwxhuf805lqzvm7f2af5jpc4na50eajrecgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47sjf5ht" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsz4p8c2p2znhsy9q098ceffwa8wmsd6ujd277z0wh9n0e3cfemrmqpxlr02&#39;&gt;nevent1q…lr02&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yes! God the number of times I found an unbelievably good little regulator or supervisor or whatever, get all excited aaaaand it&amp;#39;s fucking BGA only. I&amp;#39;d love to not have to go through that rollercoaster :)
    </content>
    <updated>2024-08-16T21:10:09Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqswnjhn32az3dkl0zqkj3afuu636spp6jjd2dag88n9l55kf45ptxgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47c85kyk</id>
    
      <title type="html">Mostly I look at friends in hardware infosec who have not _that_ ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqswnjhn32az3dkl0zqkj3afuu636spp6jjd2dag88n9l55kf45ptxgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47c85kyk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsv5f9tl39cmzyx9j86e6kzj2dgr39psuxy4n6yljmrqagquu4vess2lg43d&#39;&gt;nevent1q…g43d&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Mostly I look at friends in hardware infosec who have not _that_ much fancier equipment than me on their bench, and routinely pull BGAs off boards they&amp;#39;re analyzing, mess with them, reball and reinstall them with surprising ease. I&amp;#39;m sure it&amp;#39;s a very acquired skill, but... Not impossible?&lt;br/&gt;&lt;br/&gt;I&amp;#39;m told the secret ingredient by far is a board preheater, in addition to the hot air gun. But again, all hearsay.
    </content>
    <updated>2024-08-16T21:08:51Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsv5f9tl39cmzyx9j86e6kzj2dgr39psuxy4n6yljmrqagquu4vesszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47mc0ruf</id>
    
      <title type="html">The easiest route for inspection seems to be to simply git gud ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsv5f9tl39cmzyx9j86e6kzj2dgr39psuxy4n6yljmrqagquu4vesszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47mc0ruf" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdnq25xehpnc89aeqcmek6td56efnah39rzcd2ntsveddk20ufgsgqrjepk&#39;&gt;nevent1q…jepk&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;The easiest route for inspection seems to be to simply git gud and not need it. Which, of course... tricky. But especially for home assembly where you can be selective and pick parts that are maybe more forgiving (like, larger pitch and the like), you can get it done maybe?&lt;br/&gt;&lt;br/&gt;But I dunno, I&amp;#39;ve been meaning to try it because access to BGA parts opens up a whole new world of super cheap capable ICs, even compared to QFN and the like.
    </content>
    <updated>2024-08-16T21:06:01Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsqtlwnkqk4c87h24xnurhmxakl0dranqgs9fwvrrydu7neetj4pygzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47drettd</id>
    
      <title type="html">I&amp;#39;m _told_, though I&amp;#39;ve never tried, that home BGA is ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsqtlwnkqk4c87h24xnurhmxakl0dranqgs9fwvrrydu7neetj4pygzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47drettd" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsv9zmqpzdhw2pvtpxar7avmahvpa2nmccz4yh6n6xrjsypzc0er2gz9rhvz&#39;&gt;nevent1q…rhvz&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I&amp;#39;m _told_, though I&amp;#39;ve never tried, that home BGA is pretty easy with a hot plate or oven, if you&amp;#39;re assembling a new part rather than reworking. plop down the part in a layer of flux, with the balls in approximately the right place (like, 40% overlap is still okay), and bake. When it hits reflow the balls and pads self-align and you&amp;#39;re done!&lt;br/&gt;&lt;br/&gt;Tricky bits are you can&amp;#39;t inspect the solder joints, and if you need rework you&amp;#39;re a bit fucked (hot air &#43; reball &#43; reinstall, doable but ugh)
    </content>
    <updated>2024-08-16T21:01:59Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsfd38r64uevrmvq7k3c7hfsr8j5shc5zgsex0v06pxnme0vyjkjvczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47qcjkcs</id>
    
      <title type="html">I&amp;#39;d have to look at the exact pinout, but if the thing you ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsfd38r64uevrmvq7k3c7hfsr8j5shc5zgsex0v06pxnme0vyjkjvczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47qcjkcs" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsd84qgcv7t2kpxfty0uaqdj2u9pkq0z8j9xdegzrujrwt0ta6rh2sts37py&#39;&gt;nevent1q…37py&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I&amp;#39;d have to look at the exact pinout, but if the thing you want is &amp;#34;one whole side of the TQFP is the main bus, with all the address/data pins in the right order&amp;#34;, that&amp;#39;s probably doable. Usually the constraint is whatever dev board you&amp;#39;re using and which pins they decided to hardwire to whatever thing on the board
    </content>
    <updated>2024-08-16T20:53:23Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsd84qgcv7t2kpxfty0uaqdj2u9pkq0z8j9xdegzrujrwt0ta6rh2szyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt478az9aq</id>
    
      <title type="html">Quite flexible. The hardware&amp;#39;s effectively an ocean of logic ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsd84qgcv7t2kpxfty0uaqdj2u9pkq0z8j9xdegzrujrwt0ta6rh2szyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt478az9aq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs82xd3g6a36zwxk3gk2x3xwjap8hgaqpzs86c5qtrkh6ql9t9vegqnks83r&#39;&gt;nevent1q…s83r&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Quite flexible. The hardware&amp;#39;s effectively an ocean of logic gates bathed in a routing fabric, with I/O blocks at the edges. If you don&amp;#39;t need any special I/O discipline (bespoke DDR voltages, high-speed serdes...) the blocks are more or less equivalent to each other, and you can route signals to any of them.&lt;br/&gt;&lt;br/&gt;Ideally, I believe you want related signals going to the same I/O block just so place&amp;amp;route has an easier job with timing, but it&amp;#39;s malleable
    </content>
    <updated>2024-08-16T20:52:14Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsr03vk4s2snzvmmpzrsz373x2p4k93d9h4555lc0j594nqwzxmujgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt4702f4eh</id>
    
      <title type="html">You can have it either as 144TQFP, or various BGA shapes. I&amp;#39;m ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsr03vk4s2snzvmmpzrsz373x2p4k93d9h4555lc0j594nqwzxmujgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt4702f4eh" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs93gp73pfvnkk22rsmtjjmpzhx3ff4hjsa6pu5dl8pn9mwm9aju3gqlt96f&#39;&gt;nevent1q…t96f&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;You can have it either as 144TQFP, or various BGA shapes. I&amp;#39;m assuming the former for home assembly, though the BGAs expose significantly more IO pins, 197 for the least horrible home assembly BGA vs. 98 on the TQFP.&lt;br/&gt;&lt;br/&gt;Possibly with a hot plate, 0.8mm pitch BGA isn&amp;#39;t too horrible to solder on? Routing&amp;#39;s fairly horrible of course, although Lattice boast a bunch about how they partially depopulate the BGA footprint to make more room for traces.
    </content>
    <updated>2024-08-16T20:48:19Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqstvveun5u2v2z4f09ju6ce9nhh7hhqgpperxyrjhhuagu9ep5mkvqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47vt99qp</id>
    
      <title type="html">Yeah I think it ends up within a $ or two of each other, with ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqstvveun5u2v2z4f09ju6ce9nhh7hhqgpperxyrjhhuagu9ep5mkvqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47vt99qp" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsddwac3xq5hhek07m9snkaeg0r0dy6sw5xn559ny7mzf05g0f6qcs86dudh&#39;&gt;nevent1q…dudh&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yeah I think it ends up within a $ or two of each other, with different tradeoffs on how much RAM you get vs. how many GPIOs.&lt;br/&gt;&lt;br/&gt;I&amp;#39;ll tentatively target the 25k and implement the vram internally, see what that looks like. I might end up trying to prototype my own board with FPGA&#43;external RAM because I&amp;#39;ve never routed anything with three digit MHz and it seems fun to explore. Or at least fun to fail at, I guess, sob. But it&amp;#39;s definitely a step up in complexity.
    </content>
    <updated>2024-08-16T20:45:29Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsw976fveymv8n0spku7prsvyqwcpz0q64r5mh3qj47dvs74cw92jczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47d69luy</id>
    
      <title type="html">I note 4-8MB in particular because I think that&amp;#39;s enough to ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsw976fveymv8n0spku7prsvyqwcpz0q64r5mh3qj47dvs74cw92jczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47d69luy" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszym370m6fdaqe8eqa4zperh06c5zvvea6g4x6a3dazujyfs89dhs6xrlaf&#39;&gt;nevent1q…rlaf&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I note 4-8MB in particular because I think that&amp;#39;s enough to get a whole-ass couple framebuffers in there, for more advanced output modes. Really the upper limit is about 64MB before you have to start considering DRAM, but each doubling consumes one more IO pin for the address bus...
    </content>
    <updated>2024-08-16T20:42:00Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqszym370m6fdaqe8eqa4zperh06c5zvvea6g4x6a3dazujyfs89dhszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47jdkdgh</id>
    
      <title type="html">[@mos_8502](https://studio8502.ca/@mos_8502 ) so unless I&amp;#39;m ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqszym370m6fdaqe8eqa4zperh06c5zvvea6g4x6a3dazujyfs89dhszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47jdkdgh" />
    <content type="html">
      [@mos_8502](&lt;a href=&#34;https://studio8502.ca/@mos_8502&#34;&gt;https://studio8502.ca/@mos_8502&lt;/a&gt; ) so unless I&amp;#39;m counting wrong, the ECP5 25k (second-lowest sku, approx 20 USD) has enough internal RAM blocks for vera&amp;#39;s memory footprint. For replicating a vera-type system, that seems like an attractive option vs. the slightly cheaper ECP5 12k and having to bolt on external memory.&lt;br/&gt;&lt;br/&gt;After digging, I&amp;#39;m fairly sure only parallel SRAM will have the necessary throughput, not the SPI stuff. OTOH, 4-8MB would be doable in that form factor.&lt;br/&gt;&lt;br/&gt;Experimenting continues, just initial thoughts
    </content>
    <updated>2024-08-16T20:40:04Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsz2uhcm9hjk6un8twyupdhsjz8jj8l63k99t2he7jwyxg7dnaaekszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt472wu305</id>
    
      <title type="html">fpga vendor: &amp;#34;if you don&amp;#39;t want to use our $$$$ tool you ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsz2uhcm9hjk6un8twyupdhsjz8jj8l63k99t2he7jwyxg7dnaaekszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt472wu305" />
    <content type="html">
      fpga vendor: &amp;#34;if you don&amp;#39;t want to use our $$$$ tool you can instantiate this primitive directly, see &amp;lt;file&amp;gt; for details&amp;#34;&lt;br/&gt;&lt;br/&gt;The file: just a blackbox module definition with cryptic input and output names, and zero documentation. As per.
    </content>
    <updated>2024-08-16T20:27:22Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs8cnp52xfyfcy3em5g0ad6lsahp4qxrzumash0jj8ruqsst6mvjcgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47q0mgyd</id>
    
      <title type="html">&amp;#34;Electronics isn&amp;#39;t magic&amp;#34; &amp;#34;Also, here is the ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs8cnp52xfyfcy3em5g0ad6lsahp4qxrzumash0jj8ruqsst6mvjcgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47q0mgyd" />
    <content type="html">
      &amp;#34;Electronics isn&amp;#39;t magic&amp;#34;&lt;br/&gt;&lt;br/&gt;&amp;#34;Also, here is the protective sigil to cast when working with DRAM&amp;#34;&lt;br/&gt; &lt;img src=&#34;https://media.hachyderm.io/media_attachments/files/112/970/575/318/817/868/original/70e000e28fe4879c.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2024-08-16T07:44:17Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsf92y23mjrd62t0txnngegc2pvh2r6k6fs4m8kl5xxq9pun6nstaczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47fgqnjs</id>
    
      <title type="html">ooh so a bunch of honest to god I/O controllers for peripherals, ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsf92y23mjrd62t0txnngegc2pvh2r6k6fs4m8kl5xxq9pun6nstaczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47fgqnjs" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsf8q0trnw5ypcy49studjx7dkvj3c24vgp24jnvhwmpgjanw2wm9ccdgnpj&#39;&gt;nevent1q…gnpj&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;ooh so a bunch of honest to god I/O controllers for peripherals, not just GPIO the CPU can toggle. Interestink. Again, assuming gates, pins and memory can keep up, seems doable.
    </content>
    <updated>2024-08-14T17:06:21Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs842zj268un2fdccgtluzvwkx7904txx4rxhn24x2wnlsl6tf0wnszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47kyfsh7</id>
    
      <title type="html">oh I meant to ask: the GPIOs in the diagram, I inferred you ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs842zj268un2fdccgtluzvwkx7904txx4rxhn24x2wnlsl6tf0wnszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47kyfsh7" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0pngt82sxpd0xn3xgcq0ql8l8s6c6djd2s37a85apa5strn2sprqsh9m4g&#39;&gt;nevent1q…9m4g&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;oh I meant to ask: the GPIOs in the diagram, I inferred you wanted them for a combination of glue logic stuff, and some inputs for an interrupt controller. Did I infer correctly, or did you have other things in mind for those GPIO? Exposing them to expansion board/headers/something maybe?
    </content>
    <updated>2024-08-14T16:59:01Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs0fv2nff6hw2rmzlp0gypmgy69k4r4vcv4lqhapc4ss6mvetg0exqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47mgq4lx</id>
    
      <title type="html">I made a repo with some requirements notes in it: ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs0fv2nff6hw2rmzlp0gypmgy69k4r4vcv4lqhapc4ss6mvetg0exqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47mgq4lx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0gdx5y5qsdddqq8ce7fc5zc9qm9wl64xrn97znfl9scrrz8sq2qcacv7g3&#39;&gt;nevent1q…v7g3&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I made a repo with some requirements notes in it: &lt;a href=&#34;https://git.sentinel65x.com/dave/gary/src/branch/main/Requirements.md&#34;&gt;https://git.sentinel65x.com/dave/gary/src/branch/main/Requirements.md&lt;/a&gt; . I also borrowed your diagram, though once plans firm up I suspect both it and the FPGA internals one I made will need redoing - but it&amp;#39;s a good guide star.&lt;br/&gt;&lt;br/&gt;No gateware yet, I have a couple half-working bits but I&amp;#39;m going to have to start with a couple experiments to see how clever the Bluespec optimizer is, and if I can write &amp;#34;do what I mean&amp;#34; style or if I have to be a bit lower level.
    </content>
    <updated>2024-08-14T16:48:15Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs9e2e6wehe6g9cl226uzdthmwgkkz2dhzakswzylkgkm5el53plmqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt470gwv77</id>
    
      <title type="html">Yeah we&amp;#39;ll see. With any luck, it just needs a bit fancier ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs9e2e6wehe6g9cl226uzdthmwgkkz2dhzakswzylkgkm5el53plmqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt470gwv77" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsz2wnze00qhh2wsj2r9d6t5tn5g2effg6kkadw7qj2scrsnpz2p2cx0wp89&#39;&gt;nevent1q…wp89&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yeah we&amp;#39;ll see. With any luck, it just needs a bit fancier packing of VRAM data, maybe some caches and prefetching, and it all works out? I don&amp;#39;t have a gut feeling for how close/far off from plausible it is right now.
    </content>
    <updated>2024-08-14T05:38:10Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsr7ssxg2ukkdc28995rqmnq6ymdcwzcwmeda587eh5rzqxwtre67szyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47zugjd8</id>
    
      <title type="html">So, I&amp;#39;m going to start with simulation and build up something ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsr7ssxg2ukkdc28995rqmnq6ymdcwzcwmeda587eh5rzqxwtre67szyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47zugjd8" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsq8dlkna0j38a3upzs075h4auddgekq6nek9a9p7wdpl0c9aup75spe72pc&#39;&gt;nevent1q…72pc&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;So, I&amp;#39;m going to start with simulation and build up something vera-ish, to start with. And see what kind of memory bandwidth the simulator says it needs, and then we can plot further from there?
    </content>
    <updated>2024-08-14T05:35:10Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsq8dlkna0j38a3upzs075h4auddgekq6nek9a9p7wdpl0c9aup75szyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47u6hgz5</id>
    
      <title type="html">There&amp;#39;s also the insanity wolf option: DDR SDRAM. The ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsq8dlkna0j38a3upzs075h4auddgekq6nek9a9p7wdpl0c9aup75szyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47u6hgz5" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs83wx0hjw77mqq8uvp9dtfyrl2llpw4dc5hpspx6hygmrkmq5vddgd53vdt&#39;&gt;nevent1q…3vdt&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;There&amp;#39;s also the insanity wolf option: DDR SDRAM. The ECP5&amp;#39;s IO blocks support the relevant electrical standards, and have a bunch of gearing machinery to pull fast DDR data into slower parallel I/O inside the FPGA.&lt;br/&gt;&lt;br/&gt;That is _extremely_ out of my comfort zone though, and would require implementing a DRAM controller in the fabric as well. It&amp;#39;s, uh, a lot.
    </content>
    <updated>2024-08-14T05:34:06Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs83wx0hjw77mqq8uvp9dtfyrl2llpw4dc5hpspx6hygmrkmq5vddgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47uq77mk</id>
    
      <title type="html">ECP5 needs an external flash, same as the ice40. Fast QSPI could ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs83wx0hjw77mqq8uvp9dtfyrl2llpw4dc5hpspx6hygmrkmq5vddgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47uq77mk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspart0smehrqme5tsv9gwjmj6mrpstye8hngn3kgle5hvr0rkv2lsnlq4zl&#39;&gt;nevent1q…q4zl&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;ECP5 needs an external flash, same as the ice40.&lt;br/&gt;&lt;br/&gt;Fast QSPI could work for VRAM, what I don&amp;#39;t yet know is whether the bitrate works out. With the VERA design, there&amp;#39;s a bunch of 32-bit reads happening during frame drawing, pushing that out over QSPI is a lotta cycles at 4 bits per. Might work though.&lt;br/&gt;&lt;br/&gt;External RAM is also pretty spicy from a board design POV, north of 100MHz is starting to be seriously fast, at least for my level of design confidence. But we&amp;#39;ll see!
    </content>
    <updated>2024-08-14T05:30:40Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsw2apnk93hvmq7dag9669u2j6hufvph2558pdw4ryfjzrdfz9hc3gzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47nw3vlg</id>
    
      <title type="html">I&amp;#39;ll stick S-Video in the list as well. None of these are ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsw2apnk93hvmq7dag9669u2j6hufvph2558pdw4ryfjzrdfz9hc3gzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47nw3vlg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9xkp0tfv8qkl23v7epx62tkcvddpur42phjvq80fjy4889h4ndqgu8secd&#39;&gt;nevent1q…secd&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I&amp;#39;ll stick S-Video in the list as well. None of these are &amp;#34;hard&amp;#34; given enough gates and pins, at some point we&amp;#39;ll just hit the limit with one or the other and have to start cutting stuff. Or maybe it all fits, I don&amp;#39;t have a gut feeling for how full the FPGA will be.
    </content>
    <updated>2024-08-13T20:19:44Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs9xkp0tfv8qkl23v7epx62tkcvddpur42phjvq80fjy4889h4ndqgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47r3jp3p</id>
    
      <title type="html">Yeah I always assume VGA to HDMI is doable externally with a ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs9xkp0tfv8qkl23v7epx62tkcvddpur42phjvq80fjy4889h4ndqgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47r3jp3p" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdp6umt0ugufljxftj2cq33ha8dwmmnj3mwrhvwa8layapqyqzegcyyju8l&#39;&gt;nevent1q…ju8l&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yeah I always assume VGA to HDMI is doable externally with a dongle. It just seems a shame to have whole-ass digital signals on the output, and then shovel them through a DAC and ADC on their way to the monitor :) But the low end ECP5s don&amp;#39;t have TMDS serdes, so I don&amp;#39;t know if the gate cost is worth it.&lt;br/&gt;&lt;br/&gt;I have no idea how S-video works in the details, but skimming wikipedia, it&amp;#39;d need a similar YPbPr translator as for composite, and then just different mixing. Maybe!
    </content>
    <updated>2024-08-13T20:17:50Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsz7fdzxl0tr4f9gjdhvrhsm5nktc556d9auwknpzel64syn446jvczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47suv0k0</id>
    
      <title type="html">That&amp;#39;s about what I was picturing, yeah. Once I&amp;#39;m off ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsz7fdzxl0tr4f9gjdhvrhsm5nktc556d9auwknpzel64syn446jvczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47suv0k0" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0gdx5y5qsdddqq8ce7fc5zc9qm9wl64xrn97znfl9scrrz8sq2qcacv7g3&#39;&gt;nevent1q…v7g3&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;That&amp;#39;s about what I was picturing, yeah. Once I&amp;#39;m off work tonight I&amp;#39;ll try and write up a requirements doc just to remember the list of ponies, and then go off and see what can be done.&lt;br/&gt;&lt;br/&gt;In the digital video path, I&amp;#39;d like to squeeze in HDMI as a parallel path to VGA. Just mirrored output, not dual monitor. Just for convenience of hooking into modern monitors. And I guess maybe composite out if anyone cares, can&amp;#39;t say I do but 🤷. All nice-to-have only tho, no strong feelings
    </content>
    <updated>2024-08-13T20:12:50Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqspartwv0936r00u267j3gssdgkyfw93thvp49wjrafv846ewxt5lqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47qjq3rn</id>
    
      <title type="html">I guess an option is lower res, or bordered image. 320x200x4bpp ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqspartwv0936r00u267j3gssdgkyfw93thvp49wjrafv846ewxt5lqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47qjq3rn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvjtk6vvwc2szltpmhlztre5ajzx3mp7cxfetylpdedumpmpnfs4g4fcrzl&#39;&gt;nevent1q…crzl&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I guess an option is lower res, or bordered image. 320x200x4bpp can double buffer comfortably. Native output is likely 640x480, so needs to be a clean division of that field size, or edge borders.
    </content>
    <updated>2024-08-13T19:22:18Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsvjtk6vvwc2szltpmhlztre5ajzx3mp7cxfetylpdedumpmpnfs4gzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47y5x9h8</id>
    
      <title type="html">Ah ok. Monochrome 640x480 double buffered would fit, I think. ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsvjtk6vvwc2szltpmhlztre5ajzx3mp7cxfetylpdedumpmpnfs4gzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47y5x9h8" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqk8hvx23jhktsrfyxfttcna2fp8wzuymqprdhs6wxapl8snv9t8qvmw2cm&#39;&gt;nevent1q…w2cm&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Ah ok. Monochrome 640x480 double buffered would fit, I think. 2bpp, you&amp;#39;re down to a single frame with vera&amp;#39;s vram size, but if we&amp;#39;re entirely abandoning ice40 compat, no reason we have to stick to that if external ram timings work out.
    </content>
    <updated>2024-08-13T19:20:54Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqswd8dzycf7ygcqm9wl7qz3y3wd5ud95nwr6nw7p2pc8sq26lcuthczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47k8g5xk</id>
    
      <title type="html">Unless I&amp;#39;m misunderstanding, a full framebuffer would be ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqswd8dzycf7ygcqm9wl7qz3y3wd5ud95nwr6nw7p2pc8sq26lcuthczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47k8g5xk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9786rvpw7whuzpkgawqrhzwf32dlg7zdamwyjk9yr76gkyws96sctj4n6f&#39;&gt;nevent1q…4n6f&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Unless I&amp;#39;m misunderstanding, a full framebuffer would be ~2.5MiB each with 8bpp, which is definitely &amp;#34;fast external SRAM&amp;#34; territory if that&amp;#39;s the goal. Or am I not parsing correctly?&lt;br/&gt;&lt;br/&gt;If we&amp;#39;re talking exposing the address space as ordinary mapped memory, that seems quite doable. TBH I hadn&amp;#39;t even internalized how restrictive that external mapping is on the original vera design, wow. Yeah if targeting ECP5, burning 24&#43;8 bits on a direct memory map is a no-brainer.
    </content>
    <updated>2024-08-13T19:12:50Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqswcswfezdwxk346tt8zrfmjhzrzzx9fc3rj4w7skan7dwt06lekpczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47tz85ja</id>
    
      <title type="html">GPIO and timers easy, I _think_, assuming pins available. GPIO ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqswcswfezdwxk346tt8zrfmjhzrzzx9fc3rj4w7skan7dwt06lekpczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47tz85ja" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsztsxvj2tgp3cz4a33c08tdumj5wshh8khmk6qax9u9p7unqxca0cfh7j2c&#39;&gt;nevent1q…7j2c&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;GPIO and timers easy, I _think_, assuming pins available. GPIO would be limited to 3.3V and not much current drive so would probably need extra hardware to make robust (e.g. bidi buffer of some kind) if you&amp;#39;re thinking of letting people plug stuff into them. I&amp;#39;ll have to study the schematic for the 65X data bus, I don&amp;#39;t immediately see a difficulty other than pin count and logic element count. Noted as a thing to explore, though I&amp;#39;ll delay that and glue logic to after graphics work.
    </content>
    <updated>2024-08-13T18:22:57Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqstdv9f7ny3sg7xw9jyywdu3dnzweukes9f8deguk75acturd70jzgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47p9ye7x</id>
    
      <title type="html">that was my plan, yeah. Even if it ends up being API compatible, ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqstdv9f7ny3sg7xw9jyywdu3dnzweukes9f8deguk75acturd70jzgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47p9ye7x" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0ytkeqg7nr078wj49vpj5n9gvfcx06wnhyvtxqsvt4vmhacsz6lc5ncc4v&#39;&gt;nevent1q…cc4v&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;that was my plan, yeah. Even if it ends up being API compatible, it&amp;#39;s a distinct implementation and shouldn&amp;#39;t be named the same. Suggestions welcome, my only desire is I&amp;#39;d like to get away from &amp;#34;dude gives a female-coded name to things they make&amp;#34;, because it irrationally bugs me. My tinkering folder right now is called GARY, though I don&amp;#39;t have a backronym for it 😂 Graphics Adapter for Retro... Something?
    </content>
    <updated>2024-08-13T18:14:51Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsxn6ky4val9ldq0vmxqwjxyp6clpzwhhurcpa99d6d4cyt7agr2uczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47sayt3n</id>
    
      <title type="html">danke! I will go learn and ponder. Thanks for the pony request!</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsxn6ky4val9ldq0vmxqwjxyp6clpzwhhurcpa99d6d4cyt7agr2uczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47sayt3n" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8yn8d4mpdu0p8vgv2gugzaarly7xfarr97ugfv2jc9ugx2nnmjeqmska7n&#39;&gt;nevent1q…ka7n&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;danke! I will go learn and ponder. Thanks for the pony request!
    </content>
    <updated>2024-08-13T18:01:49Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqswpny4nxwnv9hccv2hhmjj5up7pv3rsk03ee3jhldcp8k7ze037ggzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47ug7p5n</id>
    
      <title type="html">palette reprogramming on the fly I believe already works on the ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqswpny4nxwnv9hccv2hhmjj5up7pv3rsk03ee3jhldcp8k7ze037ggzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47ug7p5n" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsz5m7tmzhpzvj9t62y7kjczatr7a88ywdznn0mqrgd6yknprcxuqshunqny&#39;&gt;nevent1q…nqny&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;palette reprogramming on the fly I believe already works on the existing reference design. Preserving it with the more capable other palette things in this thread would mean it definitely has to be read from main vram in real time, which I don&amp;#39;t know if that&amp;#39;s possible yet but will try.&lt;br/&gt;&lt;br/&gt;Display lists... Got pointers to systems that do this? I don&amp;#39;t quite visualize how this works so can&amp;#39;t tell if I can do it, or if it&amp;#39;s compatible with a tiling&#43;sprite engine.
    </content>
    <updated>2024-08-13T17:49:49Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs9nzl7j5e23hmyur8n6rr8w3v04j9f6svsdzrvpz0a254vq86v7wgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47y2vudz</id>
    
      <title type="html">The other thing I wanted for palette stuff was a cycling option. ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs9nzl7j5e23hmyur8n6rr8w3v04j9f6svsdzrvpz0a254vq86v7wgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47y2vudz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0at6k8cz2vfjykns788cmldgny457wucl2h3jz932u6tlded4dwgj9z45d&#39;&gt;nevent1q…z45d&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;The other thing I wanted for palette stuff was a cycling option. Less memory intensive than entire different palettes, I&amp;#39;m picturing just being able to define a few [start:end] ranges in the palette and a cycling speed, and the hardware automatically rolls the values in those slots. That might end up being too pricey in gates, again not sure until I hit the simulator. But I&amp;#39;m a sucker for colour cycling animation!
    </content>
    <updated>2024-08-13T17:47:42Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs0at6k8cz2vfjykns788cmldgny457wucl2h3jz932u6tlded4dwgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47t9ucmp</id>
    
      <title type="html">An easy hack: palette ram is in vram with a base addr, and at the ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs0at6k8cz2vfjykns788cmldgny457wucl2h3jz932u6tlded4dwgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47t9ucmp" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqm5jqm07d2vrlz7rcp6z5ggvpnsfmu09j5v2577frpevdt4dx7ag2ywcqn&#39;&gt;nevent1q…wcqn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;An easy hack: palette ram is in vram with a base addr, and at the start of each frame, stream 256 entries out from vram into the dedicated palette output ram before pixel painting starts. Palette writes only take effect on the following frame, effectively. Increases memory cost (have to store the palette twice), but the dead time during vsync should be plenty to do the copy without getting in the way of CPU access. Maybe that works... Unsure, will ponder!
    </content>
    <updated>2024-08-13T17:38:22Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsqm5jqm07d2vrlz7rcp6z5ggvpnsfmu09j5v2577frpevdt4dx7agzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47nflumg</id>
    
      <title type="html">Tricky part with the palette ram in particular is it&amp;#39;s ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsqm5jqm07d2vrlz7rcp6z5ggvpnsfmu09j5v2577frpevdt4dx7agzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47nflumg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqtjl0rd8r3slnu2dq2lsd9ur8cky36k9d209cqdzqtj60grpu57q62n8yq&#39;&gt;nevent1q…n8yq&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Tricky part with the palette ram in particular is it&amp;#39;s completely timing constrained in my design sketch: if I hand it an address, I _need_ the RGB data to be ready on the next cycle, because it&amp;#39;s all being pushed synchronously as each pixel&amp;#39;s being output. The other main vram access goes through arbiters and can accept a cycle or two of delay if there&amp;#39;s contention... But not the palette ram, at least in my current sketch. But possibly I can adjust where it sits to make that work.
    </content>
    <updated>2024-08-13T17:35:08Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsqtjl0rd8r3slnu2dq2lsd9ur8cky36k9d209cqdzqtj60grpu57qzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt477mzz8r</id>
    
      <title type="html">Understood. Big question there is vram throughput again. In the ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsqtjl0rd8r3slnu2dq2lsd9ur8cky36k9d209cqdzqtj60grpu57qzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt477mzz8r" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsytvyrrq4lqw48gwc8dxm8u7ty5hjddc3xmyp26hrjs783gu35h7s3sugn3&#39;&gt;nevent1q…ugn3&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Understood. Big question there is vram throughput again. In the vera design, it&amp;#39;s already 4 ports (one RW for the CPU, 3 RO for the two layers and the sprite engine), so it&amp;#39;s having to push what feels like an uncomfortable amount of bits when a frame is being output. I don&amp;#39;t think I saw it using dual-port RAM hw, so that&amp;#39;s an option for more margin. The storage might be optimizable, and the whole thing can run at higher MHz... Maybe there&amp;#39;s enough space for the palette. I&amp;#39;ll see.
    </content>
    <updated>2024-08-13T17:32:48Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqspez8v9lruhhclqf9m2qc62k0kewnlzhm4w3538v8kee2dpkvhtsqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt475fzjjf</id>
    
      <title type="html">Doable, although more or less tricky depending on what you want ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqspez8v9lruhhclqf9m2qc62k0kewnlzhm4w3538v8kee2dpkvhtsqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt475fzjjf" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs25ekhdzp4lrh7h9dqxkmux4t98uss4jlyquk7mxw27q320v0500qmp75mg&#39;&gt;nevent1q…75mg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Doable, although more or less tricky depending on what you want exactly. Currently palette ram is a separate mem with 256 idx -&amp;gt; RGB vals.&lt;br/&gt;&lt;br/&gt;Easy to implement: add offset register to that memory. Example: compositor says output palette idx 3, palette offset register = 100, we output RGB from memory entry 103. If offset register = 254, then output entry 1 (254&#43;3 with wraparound).&lt;br/&gt;&lt;br/&gt;Is that what you&amp;#39;d like? Or do you want to be able to put the palette at arbitrary vram addrs?
    </content>
    <updated>2024-08-13T17:19:34Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsv72l2jjxv0dmk0f6tsnwcmnkd48psuwcyfqgclkh3yzvcxh3sdxszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47acuset</id>
    
      <title type="html">Yup all good. I explicitly invited asking for a pony, knowing ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsv72l2jjxv0dmk0f6tsnwcmnkd48psuwcyfqgclkh3yzvcxh3sdxszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47acuset" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqst008mkv64a477039ruw629n3rl8jw9js0amx3szdp5fc4za4q8ecs7gndf&#39;&gt;nevent1q…gndf&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yup all good. I explicitly invited asking for a pony, knowing what constraints to aim for is great at this stage!
    </content>
    <updated>2024-08-13T17:10:00Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsye4rpq8jfd9ws9qc33fh2p7s5aetfwreevuu80mdxxfvjvlkyg8czyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47mary76</id>
    
      <title type="html">I should say, the timing I&amp;#39;m worried about here is on ice40 ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsye4rpq8jfd9ws9qc33fh2p7s5aetfwreevuu80mdxxfvjvlkyg8czyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47mary76" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszg323rvwzk563etf4je06lk2qrqqkpvpvmt772zj40hx6sw5gpgggdne3w&#39;&gt;nevent1q…ne3w&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I should say, the timing I&amp;#39;m worried about here is on ice40 with its internal RAM only. On ECP5 if external RAM is needed, different challenge: it should be able to comfortably run north of 100MHz internally, but it needs enough cycles to latch the bus request, round-trip to external RAM and put the response back out. So, it can run more cycles per PHI2, but also it would have more cycles of work to do. Not sure how that shakes out.
    </content>
    <updated>2024-08-13T17:04:28Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqszg323rvwzk563etf4je06lk2qrqqkpvpvmt772zj40hx6sw5gpggzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47qmqseq</id>
    
      <title type="html">It has one PLL block, and its datasheet claims that with ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqszg323rvwzk563etf4je06lk2qrqqkpvpvmt772zj40hx6sw5gpggzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47qmqseq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyuud38w5n08v3t30sn7cdquhp4szz3fweqkl4gp885xk4jkn79gqwxcucx&#39;&gt;nevent1q…cucx&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;It has one PLL block, and its datasheet claims that with carefully designed logic (not too-long combinatorial paths), it can hit a max of 100MHz. Conservatively, derating that to 50MHz that&amp;#39;s... Well, with the synchronizers on the bus that still leaves precious few cycles for reads, but it miiiight just about be possible to respond fast enough. Again, when I get to that point, simulation will be able to say for sure.
    </content>
    <updated>2024-08-13T17:00:10Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsyuud38w5n08v3t30sn7cdquhp4szz3fweqkl4gp885xk4jkn79gqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47cv0kgh</id>
    
      <title type="html">Consecutive as in the FPGA would receive first 8 bits on one PHI2 ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsyuud38w5n08v3t30sn7cdquhp4szz3fweqkl4gp885xk4jkn79gqzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47cv0kgh" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0xqwgz8hr2h6httcmpd4n7knmdltedk37s5vmtcnrcrnar59vl3q0d5h68&#39;&gt;nevent1q…5h68&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Consecutive as in the FPGA would receive first 8 bits on one PHI2 edge, and the other 8 bits on the immediately following PHI2 edge?&lt;br/&gt;&lt;br/&gt;Offhand that feels doable. Reads are the harder bit there, if you&amp;#39;re clocking at ~12MHz, and the FPGA is at 25MHz, and the bus has no clock stretching mechanism to let the FPGA delay its response.Writes are easier, can just latch the two writes into registers and process them at leisure.&lt;br/&gt;&lt;br/&gt;Big Q for ice40 is how fast I can clock the logic...
    </content>
    <updated>2024-08-13T16:57:23Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs2tg6gdzzefgv9tjh08yjn8mlv20nlshywr3evpajs45nv8uwcj9gzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47hmddtx</id>
    
      <title type="html">heh, we posted this simultaneously. Yeah, internal block ram as ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs2tg6gdzzefgv9tjh08yjn8mlv20nlshywr3evpajs45nv8uwcj9gzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47hmddtx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsv64qvpuza9pym8jesd7c4025gyjh6d4f9ep6cl264lpw5rc7ynjs420mvc&#39;&gt;nevent1q…0mvc&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;heh, we posted this simultaneously. Yeah, internal block ram as cache is feasible, the caveat there is that doing that could result in some pathological failure states where the CPU can set up a field that hits just the right cache misses to overload the memory bus and make it fail timing.
    </content>
    <updated>2024-08-13T16:49:15Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsvuwyzzczt36peqslnkjhdmsqcahs7p45rlw7jahmpels604u84fczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47t0gtt4</id>
    
      <title type="html">famous last words but there should be plenty of IO for an SRAM, ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsvuwyzzczt36peqslnkjhdmsqcahs7p45rlw7jahmpels604u84fczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47t0gtt4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsv69n6cnlk6fzac9ttrymsyrenrhjnm826hj9c23vqll0zt9qfrwsmy4zev&#39;&gt;nevent1q…4zev&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;famous last words but there should be plenty of IO for an SRAM, either a parallel 8-bit bus or even like a QSPI clocked faster than the pixel clock so that there&amp;#39;s enough memory bandwidth. Certainly there are options.
    </content>
    <updated>2024-08-13T16:43:13Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsyl8w2m7dsh52a6w2vah07rzk4mzpld3npngq9ycyrjaewxvvlm9qzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47td8qev</id>
    
      <title type="html">oh yeah if SRAM is necessary I&amp;#39;m assuming it&amp;#39;s hanging ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsyl8w2m7dsh52a6w2vah07rzk4mzpld3npngq9ycyrjaewxvvlm9qzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47td8qev" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszqwharn08h83ks88uruxmn7ag07c43q6m8nn653gt3m224ar0cqgk2se0f&#39;&gt;nevent1q…se0f&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;oh yeah if SRAM is necessary I&amp;#39;m assuming it&amp;#39;s hanging off the FPGA directly and not exposed to the rest of the system bus. From the rest of the machine&amp;#39;s POV, the FPGA&#43;its RAM still look like a single memory-mapped device with everything built in.
    </content>
    <updated>2024-08-13T16:22:36Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqszzsgh6umecch93sflazp99nd87dcqmrjwu4ud7rdxg2mgq62x89qzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt473fnpps</id>
    
      <title type="html">Note I didn&amp;#39;t hunt for the best source, I just reached for ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqszzsgh6umecch93sflazp99nd87dcqmrjwu4ud7rdxg2mgq62x89qzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt473fnpps" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs24kt62vjku50zvuafsgk0evqz5vwg6f5ajkctr66vc55jwhy9lwgj45fnk&#39;&gt;nevent1q…5fnk&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Note I didn&amp;#39;t hunt for the best source, I just reached for digikey because I know they stock them and unlike mouser their search doesn&amp;#39;t take 30s&#43; per. Prices I quoted are CAD not USD.&lt;br/&gt;&lt;br/&gt;Potential issue on the lower end ECP5 is the amount of RAM, it only has 73k in dedicated block RAM. Given the higher gate count I may be able to make up the balance with distributed RAM (repurposing the logic blocks as RAMs), or it may require a small external SRAM. Not sure yet.
    </content>
    <updated>2024-08-13T16:11:20Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs24kt62vjku50zvuafsgk0evqz5vwg6f5ajkctr66vc55jwhy9lwgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt4765f3dy</id>
    
      <title type="html">Using digikey as a pricing reference: the upduino&amp;#39;s ice40 is ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs24kt62vjku50zvuafsgk0evqz5vwg6f5ajkctr66vc55jwhy9lwgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt4765f3dy" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqj9zrlpehgadj34fc4jc8ydncexpthdmehuufx0x7dzf4lllf4dg23v88p&#39;&gt;nevent1q…v88p&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Using digikey as a pricing reference: the upduino&amp;#39;s ice40 is $15.70/ea, the cheapest ECP5 is $22.10/ea. That&amp;#39;s for double the logic gates and triple the pins, in a TQFP form factor that doesn&amp;#39;t suck too much to solder at home (esp. with hot plate).&lt;br/&gt;&lt;br/&gt;Top-end ECP5 (16x the gates and 6x the IO of ice40) is around $100. That&amp;#39;s the one of the dev board I have, but I don&amp;#39;t think there&amp;#39;s any need to go that far.
    </content>
    <updated>2024-08-13T16:09:39Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsdgskz2zxxjkggx28dc9gfh2z4wruuvl47g2nsxs0qsrpklhd3s7czyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt476x07j3</id>
    
      <title type="html">Ooh, hrm. Okay that may not be able to fly on ice40 then but ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsdgskz2zxxjkggx28dc9gfh2z4wruuvl47g2nsxs0qsrpklhd3s7czyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt476x07j3" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrdfs5tf24n755wle3hw85vgnj5ayp3rrwz3qlmtnahlzujhx88cgxx2ja9&#39;&gt;nevent1q…2ja9&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Ooh, hrm. Okay that may not be able to fly on ice40 then but I&amp;#39;ll see what I can do. I can definitely keep the CPU interface module well separated so that the interface can adjust in that way (e.g. if you switched to ECP5, or a pair of ice40 one for graphics one for audio&#43;glue or somesuch)
    </content>
    <updated>2024-08-13T16:00:29Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsrqf49kdkl2lzc776v5t3cmckr2km4q9awv26eumna0rczu05kmhczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47sxdzkj</id>
    
      <title type="html">Hmm, those were like that because of the X16&amp;#39;s narrow bus, is ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsrqf49kdkl2lzc776v5t3cmckr2km4q9awv26eumna0rczu05kmhczyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47sxdzkj" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsy4nh29zzwgskqdx0jycmc8f7l2w87tf0y5yfeffk8kdfn8qn07gsf5ftrv&#39;&gt;nevent1q…ftrv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Hmm, those were like that because of the X16&amp;#39;s narrow bus, is that right?&lt;br/&gt;&lt;br/&gt;Assuming there&amp;#39;s enough address bits for it, exposing the entire thing should be less logic, to implement, afaict. Noted, the CPU bus interface is far in the future (I&amp;#39;m starting from the output driver module) but I&amp;#39;ll see what I can do.&lt;br/&gt;&lt;br/&gt;I also earmarked &amp;#34;try to cram in the 65X glue logic&amp;#34;, if I can find some IO ports to scrounge (trivial on ECP5, tricky on ice40).
    </content>
    <updated>2024-08-13T15:52:43Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqszmggdz2dekdlrrgpdwehgcnuuyf7r234nm25nyna4xgqjm2khyaszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47mg8dqc</id>
    
      <title type="html">while I have a background thread ruminating on hardware design ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqszmggdz2dekdlrrgpdwehgcnuuyf7r234nm25nyna4xgqjm2khyaszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47mg8dqc" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsz83e50y08axjjcj9lxfnasnufey3lzlams6l00wh6gxqd465l8eshd2z2s&#39;&gt;nevent1q…2z2s&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;while I have a background thread ruminating on hardware design stuff, if you have things you wish vera did (aside from you know being correct and not glitching), lemme know. Right now I&amp;#39;m loosely designing to the vera&amp;#39;s progammer&amp;#39;s interface, but especially at this stage the field is wide open if you wanted it to do something different.&lt;br/&gt;&lt;br/&gt;(caveat: things that require more ram would lock us into ECP5-grade fpga &#43; external SRAM, rather than maybe being crammable into the ice40)
    </content>
    <updated>2024-08-13T15:44:28Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsz83e50y08axjjcj9lxfnasnufey3lzlams6l00wh6gxqd465l8eszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47gc2gx5</id>
    
      <title type="html">Sleep produced what I think is a working superstructure for the ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsz83e50y08axjjcj9lxfnasnufey3lzlams6l00wh6gxqd465l8eszyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47gc2gx5" />
    <content type="html">
      Sleep produced what I think is a working superstructure for the gateware I want to write, but I have to put on my serious pants and go do a day job. This sucks.
    </content>
    <updated>2024-08-13T15:37:44Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsrjmrmm82thmtp0zg42yx2glqk5xqd9p7vmc6umws5pl9aqu7dqkgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47karel0</id>
    
      <title type="html">The especially clever thing it does here, is the middle bit. It ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsrjmrmm82thmtp0zg42yx2glqk5xqd9p7vmc6umws5pl9aqu7dqkgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47karel0" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs92ggys7eg4lu2204fe2j3f0c9dexasheg4k9n4ekedtpmxmpa7kgz0x0g4&#39;&gt;nevent1q…x0g4&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;The especially clever thing it does here, is the middle bit. It wants to get a high VCO frequency so that it can divide back down and hit close to the mark, while also inheriting the lower jitter from that high VCO clock.&lt;br/&gt;&lt;br/&gt;Normally what you do is mess with the output divider and the feedback divider, to get an output clock that&amp;#39;s a multiple of your reference input. In effect you get to divide your input once, and multiply it once.&lt;br/&gt;&lt;br/&gt;But the calculator here uses a little trick to get a 2nd divide!
    </content>
    <updated>2024-08-13T04:37:10Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs92ggys7eg4lu2204fe2j3f0c9dexasheg4k9n4ekedtpmxmpa7kgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47uhtuh4</id>
    
      <title type="html">Wow nextpnr&amp;#39;s ECP5 PLL calculator is just wizardry. ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs92ggys7eg4lu2204fe2j3f0c9dexasheg4k9n4ekedtpmxmpa7kgzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47uhtuh4" />
    <content type="html">
      Wow nextpnr&amp;#39;s ECP5 PLL calculator is just wizardry.&lt;br/&gt;&lt;br/&gt;&amp;#34;Please make me a 25.175MHz clock from this 25MHz input clock&amp;#34;&lt;br/&gt;&lt;br/&gt;&amp;#34;Easy: first, divide that input by 8 for a 3.125MHz reference. Feed that into the VCO with a 145x feedback multiplier, for a 453.125MHz frequency reference. Finally, stick an 18x divider on the VCO, and there you go: 25.1736MHz, 55ppm off from what you wanted.&amp;#34;&lt;br/&gt;&lt;br/&gt;🤯
    </content>
    <updated>2024-08-13T03:27:35Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs8cu2u7ykfc07w8qd7f747m5tc9xzvmv9ahflsadp6ssfjhymx00gzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47gnkywp</id>
    
      <title type="html">Seems reasonable. Alternatively is there some way to add parts to ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs8cu2u7ykfc07w8qd7f747m5tc9xzvmv9ahflsadp6ssfjhymx00gzyrddzyl4perad0lm08u6dyqxllvknsnwvdh94mf2uktmqsrsjvt47gnkywp" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgw2dfnye07h644yf2r3z2x3plap3ljz53c4gfxgu66svu8zkaywsd9pddh&#39;&gt;nevent1q…pddh&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Seems reasonable. Alternatively is there some way to add parts to the BOM manually? Not sure what the convention is for socketed parts.
    </content>
    <updated>2024-08-12T05:05:12Z</updated>
  </entry>

</feed>