{"id":1383,"date":"2021-05-02T16:27:05","date_gmt":"2021-05-02T21:27:05","guid":{"rendered":"https:\/\/www.computercollection.net\/?p=1383"},"modified":"2021-05-02T16:27:05","modified_gmt":"2021-05-02T21:27:05","slug":"ibm-1410-fpga-posted-to-github","status":"publish","type":"post","link":"https:\/\/www.computercollection.net\/index.php\/2021\/05\/02\/ibm-1410-fpga-posted-to-github\/","title":{"rendered":"IBM 1410 FPGA: Posted to Github"},"content":{"rendered":"\n<p>The last 12 months I have been pretty busy working on my 1410 in FPGA project, and there is now more to share, though I have not done much actual work since February &#8211; been too busy playing with other &#8220;toys&#8221;.&nbsp; 8D<br><br>First, I finished working through all of the IBM 1410 and IBM 1415 Automated Logic Diagrams &#8211; generating VHDL and testing the results with test benches.&nbsp; [Note that this includes the built-in 1401 compatibility mode, activated at the flip of a switch.] That took most of 2020.<br><br>So, the CPU generation in VHDL is now more or less complete, and I added a hand coded memory module for memory, as core is kind of hard to find on an FPGA development board.&nbsp; \ud83d\ude09&nbsp; I am currently using a Digilent Nexys 4, but I think it might have even fit on a Nexys 2 &#8211; there is plenty of room to spare, and there isn&#8217;t anything in the VHDL aside from, maybe, the memory implementation (though even that is pretty generic VHDL).<br><br>With this the CPU runs, at the very least, Unconditional branch (Jump), Halt, NOP and Set Word Mark instructions seemingly correctly &#8211; I haven&#8217;t tried any others.&nbsp; Somewhat surprisingly, aside from issues with the hand coded VHDL in triggers and the need to communicate pins tied to logic one or zero, the auto-generated VHDL works untouched.<br><br>I have updated the github repository for the C# database application that generates the VHDL from time to time (and which includes the complete database) at <a href=\"http:\/\/github.com\/cube1us\/IBM1410SMS\">http:\/\/github.com\/cube1us\/IBM1410SMS<\/a><br><br>There is now a <strong>*new*<\/strong> repository, <a href=\"http:\/\/github.com\/cube1us\/IBM1410FPGA\">http:\/\/github.com\/cube1us\/IBM1410FPGA<\/a> which holds the generated VHDL, some hand coded VHDL modules for certain SMS cards (typically for triggers, for example), the console and test benches I used along the way, and VHDL &#8220;Integration Tests&#8221; which are designed to be loaded onto the board &#8211; the current one being IntegrationTest3.<br><br>There will be, eventually, a third repository which will contain the C# code that &#8220;hosts&#8221; the IBM 1410 console and peripherals, communicating with the FPGA over a high speed serial over USB connection.&nbsp; I figured out that this should allow me to emulate peripherals without having to resort to sending data over Ethernet, SPI, I2C or the like.&nbsp; I have just started that, so it really isn&#8217;t at a point that there is much to share.<br><br>Once I have a console working (which will require a re-do of the console VHDL implementation, which right now communicates in ASCII, but should probably be using BCD), I should be able to pre-load into memory some of the CPU diagnostics, by loading a diagnostic routine into either my 1410 simulator (<a href=\"http:\/\/github.com\/cube1us\/1410\">http:\/\/github.com\/cube1us\/1410<\/a>), or Richard Cornwell&#8217;s emulator in SimH and then taking a snapshot of &#8220;core&#8221; to pre-load into the FPGA.&nbsp; At that point I expect I will be able to test the CPU pretty thoroughly.&nbsp; I hope and expect that will happen this year sometime.<br><br>Unfortunately, I do not have the ALDs (Automated Logic Diagrams) for the IBM 1414 I\/O Synchronizers, but I do have the Instruction Logic Diagrams which should allow me to code VHDL to emulate card, tape and maybe eventually even disk functions, so those might take a while.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The last 12 months I have been pretty busy working on my 1410 in FPGA project, and there is now more to share, though I have not done much actual work since February &#8211; been too busy playing with other &#8220;toys&#8221;.&nbsp; 8D First, I finished working through all of the IBM 1410 and IBM 1415 &hellip; <a href=\"https:\/\/www.computercollection.net\/index.php\/2021\/05\/02\/ibm-1410-fpga-posted-to-github\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;IBM 1410 FPGA: Posted to Github&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,7,9,15],"tags":[],"post_folder":[],"class_list":["post-1383","post","type-post","status-publish","format-standard","hentry","category-computers","category-electronics","category-hardware","category-ibm1410"],"_links":{"self":[{"href":"https:\/\/www.computercollection.net\/index.php\/wp-json\/wp\/v2\/posts\/1383","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.computercollection.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.computercollection.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.computercollection.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.computercollection.net\/index.php\/wp-json\/wp\/v2\/comments?post=1383"}],"version-history":[{"count":1,"href":"https:\/\/www.computercollection.net\/index.php\/wp-json\/wp\/v2\/posts\/1383\/revisions"}],"predecessor-version":[{"id":1384,"href":"https:\/\/www.computercollection.net\/index.php\/wp-json\/wp\/v2\/posts\/1383\/revisions\/1384"}],"wp:attachment":[{"href":"https:\/\/www.computercollection.net\/index.php\/wp-json\/wp\/v2\/media?parent=1383"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.computercollection.net\/index.php\/wp-json\/wp\/v2\/categories?post=1383"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.computercollection.net\/index.php\/wp-json\/wp\/v2\/tags?post=1383"},{"taxonomy":"post_folder","embeddable":true,"href":"https:\/\/www.computercollection.net\/index.php\/wp-json\/wp\/v2\/post_folder?post=1383"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}