{"action":"created","issue":{"url":"https://api.github.com/repos/martinisgroup/servers/issues/37","labels_url":"https://api.github.com/repos/martinisgroup/servers/issues/37/labels{/name}","comments_url":"https://api.github.com/repos/martinisgroup/servers/issues/37/comments","events_url":"https://api.github.com/repos/martinisgroup/servers/issues/37/events","html_url":"https://github.com/martinisgroup/servers/issues/37","id":57520297,"number":37,"title":"What is a DacRunner and why do I need one?","user":{"login":"pomalley","id":1106276,"avatar_url":"https://avatars.githubusercontent.com/u/1106276?v=3","gravatar_id":"","url":"https://api.github.com/users/pomalley","html_url":"https://github.com/pomalley","followers_url":"https://api.github.com/users/pomalley/followers","following_url":"https://api.github.com/users/pomalley/following{/other_user}","gists_url":"https://api.github.com/users/pomalley/gists{/gist_id}","starred_url":"https://api.github.com/users/pomalley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pomalley/subscriptions","organizations_url":"https://api.github.com/users/pomalley/orgs","repos_url":"https://api.github.com/users/pomalley/repos","events_url":"https://api.github.com/users/pomalley/events{/privacy}","received_events_url":"https://api.github.com/users/pomalley/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/martinisgroup/servers/labels/question","name":"question","color":"cc317c"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-02-12T21:13:01Z","updated_at":"2015-02-13T01:40:50Z","closed_at":null,"body":"I thought we were almost there with the jump table stuff, and then I realized I have no idea how `run_sequence` actually works. So now I'm wondering how much of the DacRunner stuff is going to need to be changed for the JT. Are there any gotchas here I should be aware of? (For DacRunners or run_sequence as a whole or anything else.)"},"comment":{"url":"https://api.github.com/repos/martinisgroup/servers/issues/comments/74190524","html_url":"https://github.com/martinisgroup/servers/issues/37#issuecomment-74190524","issue_url":"https://api.github.com/repos/martinisgroup/servers/issues/37","id":74190524,"user":{"login":"DanielSank","id":4584456,"avatar_url":"https://avatars.githubusercontent.com/u/4584456?v=3","gravatar_id":"","url":"https://api.github.com/users/DanielSank","html_url":"https://github.com/DanielSank","followers_url":"https://api.github.com/users/DanielSank/followers","following_url":"https://api.github.com/users/DanielSank/following{/other_user}","gists_url":"https://api.github.com/users/DanielSank/gists{/gist_id}","starred_url":"https://api.github.com/users/DanielSank/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DanielSank/subscriptions","organizations_url":"https://api.github.com/users/DanielSank/orgs","repos_url":"https://api.github.com/users/DanielSank/repos","events_url":"https://api.github.com/users/DanielSank/events{/privacy}","received_events_url":"https://api.github.com/users/DanielSank/received_events","type":"User","site_admin":false},"created_at":"2015-02-13T01:40:50Z","updated_at":"2015-02-13T01:40:50Z","body":"The DacRunner is essentially storage of sequence data (SRAM, memory, jump table). The runner has  reference to an instance of one of the FPGA classes. That FPGA instance represents the _physical_ device, and the runner represents one sequence's idea of what that physical device should do.\r\n\r\nEach context talking to the FPGA server stores its sequence data (SRAM, etc) on the context object. When it comes time to actually run, that data is transferred to a runner. The runner is responsible for making packets to send to the direct ethernet server which is why it needs to know information about the sequence. It makes these packets by sending the configuration info into it's FPGA instance's packet construction methods. Those packets are then sent to the direct ethernet server.\r\n"}}