GNU social JP
  • FAQ
  • Login
GNU social JPは日本のGNU socialサーバーです。
Usage/ToS/admin/test/Pleroma FE
  • Public

    • Public
    • Network
    • Groups
    • Featured
    • Popular
    • People

Conversation

Notices

  1. Embed this notice
    Andrew Zonenberg (azonenberg@ioc.exchange)'s status on Monday, 19-May-2025 11:35:25 JST Andrew Zonenberg Andrew Zonenberg

    FPGA/ASIC people: when you have a complex state machine fetching data from a memory with unpredictable latency (e.g. AXI bus that may have contention, or external DRAM) how do you figure out what to do when the data comes in?

    For my application there's no reordering possible within a single stream of requests so I'm thinking of having a FIFO of context objects that will "jog my memory" so that once data comes back, I know why it was read and how to handle it.

    In conversation about 7 days ago from ioc.exchange permalink
    • Embed this notice
      ✧✦Catherine✦✧ (whitequark@mastodon.social)'s status on Monday, 19-May-2025 11:35:24 JST ✧✦Catherine✦✧ ✧✦Catherine✦✧
      in reply to

      @azonenberg yep that's what I am generally using

      In conversation about 7 days ago permalink
    • Embed this notice
      ✧✦Catherine✦✧ (whitequark@mastodon.social)'s status on Monday, 19-May-2025 11:49:28 JST ✧✦Catherine✦✧ ✧✦Catherine✦✧
      in reply to

      @azonenberg that's exactly how i designed the glasgow (in future, amaranth-stdio, probably) I/O core. you give it the data to put in the output IOB registers plus metadata, and some cycles later (depending on the platform and configuration), it gives you back metadata and input values

      this makes it very easy to write things like high performance JTAG probes without worrying much about the implementation

      all stream-based, like AXI4-Stream but in Amaranth

      In conversation about 7 days ago permalink
    • Embed this notice
      Andrew Zonenberg (azonenberg@ioc.exchange)'s status on Monday, 19-May-2025 11:49:29 JST Andrew Zonenberg Andrew Zonenberg
      in reply to
      • ✧✦Catherine✦✧

      @whitequark This almost feels like it's going to turn into a task-flow architecture.

      Where instead of reading data then processing the response, you issue a read request attached to a context object and then wherever it shows up gets the data along with instructions on what to do with said data

      In conversation about 7 days ago permalink
    • Embed this notice
      ✧✦Catherine✦✧ (whitequark@mastodon.social)'s status on Monday, 19-May-2025 11:53:41 JST ✧✦Catherine✦✧ ✧✦Catherine✦✧
      in reply to

      @azonenberg yeah that's exactly why I picked this design, SiliconBlue devices have 1 cycle of latency for DDR I/O and Lattice devices have 3 (also i think Xilinx does?). i don't want to be tied by design to one specific platform

      In conversation about 7 days ago permalink
    • Embed this notice
      Andrew Zonenberg (azonenberg@ioc.exchange)'s status on Monday, 19-May-2025 11:53:42 JST Andrew Zonenberg Andrew Zonenberg
      in reply to
      • ✧✦Catherine✦✧

      @whitequark As of now I have a native sram interface to the memory (xilinx UltraRAM) but the latency is variable due to both the potential for me to add arbitration in front of it, and because I will likely be adding and removing pipeline stages for timing closure as the design evolves.

      So i don't want my read-side logic to make any assumptions about latency

      In conversation about 7 days ago permalink

      Attachments


    • Embed this notice
      Tube❄️Time (tubetime@mastodon.social)'s status on Tuesday, 20-May-2025 11:41:15 JST Tube❄️Time Tube❄️Time
      in reply to
      • ✧✦Catherine✦✧

      @azonenberg @whitequark i used this approach for a JTAG/I2C adapter. for efficiency, i packed a number of transfers into a single USB packet and needed a way to disburse all the received data and response codes. the API recorded the pointers, then you'd call a "flush" function that would generate the actual transfer and handle the results, after which the data at those pointers became valid.

      In conversation about 6 days ago permalink
    • Embed this notice
      ✧✦Catherine✦✧ (whitequark@mastodon.social)'s status on Tuesday, 20-May-2025 11:41:15 JST ✧✦Catherine✦✧ ✧✦Catherine✦✧
      in reply to
      • Tube❄️Time

      @tubetime @azonenberg this is exactly how my ARM7TDMI debugger works! it's a very effective approach

      In conversation about 6 days ago permalink

Feeds

  • Activity Streams
  • RSS 2.0
  • Atom
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.