{"id":404067,"date":"2024-06-29T17:29:37","date_gmt":"2024-06-29T17:29:37","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=404067"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-06-29T17:29:37","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=404067","title":{"rendered":"<span>\u201cFPGA InsideOut\u201d \u2013 animation about CRC and parallel CRC calculation<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p><a href=\"https:\/\/habr.com\/ru\/post\/649023\/\" rel=\"noopener noreferrer nofollow\">\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \/ link to Russian version<\/a><\/p>\n<p>FPGA InsideOut is an attempt to make a set of educational FPGA videos presented in the \u201chuman-in-the-loop\u201d style. In these videos we will not only show how we are interfacing with an actual FPGA board but will also provide synchronous real-time visualisation of FPGA&#8217;s internal logic.<\/p>\n<p>For our first video we have picked a CRC circuit (cycle redundancy check) which is based on a linear feedback shift register. This circuit goes through several transformations during the course of the video. Intrigued? &#8212; let\u2019s watch the video.<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/62017b6acd09f7f6552eb591\" data-style=\"\" id=\"62017b6acd09f7f6552eb591\" width=\"\"><\/div>\n<p>As we just saw it is easy to start with a simple concept and \u201cunfold a story\u201d from it. In our video we\u00a0 explained not just a shift register circuit but also some theory behind CRC calculation and a method of converting a shift register into a parallel CRC circuit. Along the way we also demonstrated some signal propagation patterns through the combinational and sequential logic of the circuit.<\/p>\n<p>Here are some interesting candidates for experiments that are going to be covered in the future sessions: stream interfaces, pipelines, FIFOs, timings (STA), etc.<\/p>\n<p>Long time before FPGAs came about Confucius said \u2013 \u201cI see and I remember, I do and I understand\u201d. It is hard to disagree with this principle and this is why we also try to accompany our videos with Verilog code. This way you can replicate those designs yourself and explore them deeper on your own FPGA board.<\/p>\n<p>In the next article I will explain how such videos can be produced. I will also introduce a set of Python scripts for making them. The software will soon be published on Github &#8212; maybe it will be useful to someone who wishes to create similar videos, or maybe, community members would want to improve or contribute to its development. <\/p>\n<p>On this, I want to say thank you for your attention &#8212; your comments are very welcome.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/650275\/\"> https:\/\/habr.com\/ru\/articles\/650275\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p><a href=\"https:\/\/habr.com\/ru\/post\/649023\/\" rel=\"noopener noreferrer nofollow\">\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \/ link to Russian version<\/a><\/p>\n<p>FPGA InsideOut is an attempt to make a set of educational FPGA videos presented in the \u201chuman-in-the-loop\u201d style. In these videos we will not only show how we are interfacing with an actual FPGA board but will also provide synchronous real-time visualisation of FPGA&#8217;s internal logic.<\/p>\n<p>For our first video we have picked a CRC circuit (cycle redundancy check) which is based on a linear feedback shift register. This circuit goes through several transformations during the course of the video. Intrigued? &#8212; let\u2019s watch the video.<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/62017b6acd09f7f6552eb591\" data-style=\"\" id=\"62017b6acd09f7f6552eb591\" width=\"\"><\/div>\n<p>As we just saw it is easy to start with a simple concept and \u201cunfold a story\u201d from it. In our video we\u00a0 explained not just a shift register circuit but also some theory behind CRC calculation and a method of converting a shift register into a parallel CRC circuit. Along the way we also demonstrated some signal propagation patterns through the combinational and sequential logic of the circuit.<\/p>\n<p>Here are some interesting candidates for experiments that are going to be covered in the future sessions: stream interfaces, pipelines, FIFOs, timings (STA), etc.<\/p>\n<p>Long time before FPGAs came about Confucius said \u2013 \u201cI see and I remember, I do and I understand\u201d. It is hard to disagree with this principle and this is why we also try to accompany our videos with Verilog code. This way you can replicate those designs yourself and explore them deeper on your own FPGA board.<\/p>\n<p>In the next article I will explain how such videos can be produced. I will also introduce a set of Python scripts for making them. The software will soon be published on Github &#8212; maybe it will be useful to someone who wishes to create similar videos, or maybe, community members would want to improve or contribute to its development. <\/p>\n<p>On this, I want to say thank you for your attention &#8212; your comments are very welcome.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/650275\/\"> https:\/\/habr.com\/ru\/articles\/650275\/<\/a><br \/><\/br><\/br><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-404067","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/404067","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=404067"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/404067\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=404067"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=404067"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=404067"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}