{"id":2,"date":"2015-09-10T11:35:17","date_gmt":"2015-09-10T10:35:17","guid":{"rendered":"https:\/\/blogs.ncl.ac.uk\/jrbeaumont\/?p=2"},"modified":"2016-10-27T17:51:47","modified_gmt":"2016-10-27T16:51:47","slug":"designing-asynchronous-logic-gates-using-behavioural-concepts-i-a-buffer","status":"publish","type":"post","link":"https:\/\/blogs.ncl.ac.uk\/jrbeaumont\/2015\/09\/10\/designing-asynchronous-logic-gates-using-behavioural-concepts-i-a-buffer\/","title":{"rendered":"Designing asynchronous logic gates using behavioural concepts: An Introduction"},"content":{"rendered":"<p>Hello, and welcome to\u00a0a series describing some\u00a0of the more simple\u00a0ideas of\u00a0my PhD research, based on designing asynchronous circuits using<em> concepts<\/em>, an abstract language used to describe behaviours of specifications at signal, gate and protocol levels.<\/p>\n<p>Simply put, concepts are a textual form of describing relationships between signal transitions in a system.\u00a0 They are <em>compositional<\/em> and thus, several concepts can be composed to produce a new concept, which can then be composed with other concepts and so on.<\/p>\n<p>Concepts can be used to describe smaller aspects of a system, such as\u00a0<em>causal relationships<\/em>, <em>initial states<\/em> and\u00a0<em>quiescent transitions<\/em>. However, due to their compositionality, they can be composed, and then used to describe<em> logic gates<\/em> or <em>protocols<\/em>\u00a0and the transitions which occur within these. This removes the need to describe the signal interactions of gates and protocols, which can be lengthy, and a gate or protocol can simply be referred to by it&#8217;s name and the signals it uses.<\/p>\n<p>This series will be used to discuss the design of logic gates\u00a0using concepts.\u00a0 Concepts are described using various operators which have been defined\u00a0in a\u00a0Haskell program, which serves as the backend for this method.\u00a0 Any operators we meet in during this series will be described.<\/p>\n<p>A graphical front end, <a href=\"http:\/\/www.workcraft.org\/\">Workcraft<\/a>,will eventually be used for viewing <em>Signal Transition Graphs <\/em>(STGs)\u00a0converted from concepts using an algorithm, which will be described in these posts.<\/p>\n<p>The following posts in this series will begin by describing some simple gates, explaining how concepts are used to describe them. Then, how these are\u00a0converted to produce an STG will\u00a0be\u00a0explained. Some other basic ideas of concepts and the conversion process will also be explained, for example, how initial states are applied, whether they are defined or not as concepts.<\/p>\n<p>Following the basics, some more complex gates will be described, as well as how to make the descriptions of these gates simpler. This will all start with the following post: <a href=\"https:\/\/blogs.ncl.ac.uk\/jrbeaumont\/2015\/09\/30\/designing-asynchronous-logic-gates-using-behavioural-concepts-i-a-buffer-2\/\"><em><strong>Concepts I: A buffer<\/strong><\/em><\/a>.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello, and welcome to\u00a0a series describing some\u00a0of the more simple\u00a0ideas of\u00a0my PhD research, based on designing asynchronous circuits using concepts, an abstract language used to describe behaviours of specifications at signal, gate and protocol levels. Simply put, concepts are a textual form of describing relationships between signal transitions in a system.\u00a0 They are compositional and &hellip; <a href=\"https:\/\/blogs.ncl.ac.uk\/jrbeaumont\/2015\/09\/10\/designing-asynchronous-logic-gates-using-behavioural-concepts-i-a-buffer\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Designing asynchronous logic gates using behavioural concepts: An Introduction<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":6010,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,2],"tags":[],"class_list":["post-2","post","type-post","status-publish","format-standard","hentry","category-asynchronous","category-concepts"],"_links":{"self":[{"href":"https:\/\/blogs.ncl.ac.uk\/jrbeaumont\/wp-json\/wp\/v2\/posts\/2","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.ncl.ac.uk\/jrbeaumont\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.ncl.ac.uk\/jrbeaumont\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.ncl.ac.uk\/jrbeaumont\/wp-json\/wp\/v2\/users\/6010"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.ncl.ac.uk\/jrbeaumont\/wp-json\/wp\/v2\/comments?post=2"}],"version-history":[{"count":7,"href":"https:\/\/blogs.ncl.ac.uk\/jrbeaumont\/wp-json\/wp\/v2\/posts\/2\/revisions"}],"predecessor-version":[{"id":52,"href":"https:\/\/blogs.ncl.ac.uk\/jrbeaumont\/wp-json\/wp\/v2\/posts\/2\/revisions\/52"}],"wp:attachment":[{"href":"https:\/\/blogs.ncl.ac.uk\/jrbeaumont\/wp-json\/wp\/v2\/media?parent=2"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.ncl.ac.uk\/jrbeaumont\/wp-json\/wp\/v2\/categories?post=2"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.ncl.ac.uk\/jrbeaumont\/wp-json\/wp\/v2\/tags?post=2"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}