Logical circuit design
ArchiTek home page
Objective


Although the methodology for logical circuit design is established, it greatly depends on the experience and knowledge of the person[1]and can vary greatly from person to person, with some people requiring much time, and in some cases some people applying mistaken methodology altogether. Especially when faced with Large scale LSI design, a high level of ability as well as balancing power is required, and in order to have good communication within all people involved in LSI design everyone should be well versed in the basics.


This webpage aims to provide a guidebook[2] which would assist members of LSI development to easily become experts. Further by publicly revealing this, we would like to obtian feedback and comments[3]from people other than menbers and hope that it will be useful to those who wish to learn logical circuit designs

Principle


We feel that logical design environment is much looser compared to software development. The reason seems to be that logical circuit design is greatly dependent on the technical ability of the person and the cost and is more individual based. Also there seem to be less textual approaches or training environment


That is not to say that having rules is a better thing. However if there are rules and methodology then it would contribute to focus of teamwork. Here would like to update various primitive functions and design examples which may help in defining rules for development as a team


But if the entire structure including minute details can be unifed structurally as well as in coding methodology, then it becomes easier to follow at every level like "kintaro" candy and re-layouting or re-joining is simple. Also the test procedures can be vastly reduced.


Kintaro Candy

Concept of circuit designing


KnowingUniversal parts(primitives)[4]lets you concentrate on architecture structure and like assembling pieces of a puzzle you can adopt an efficient methodLow level primitives are not as many. By combining primitives it is possible to make higher level circuits, and when the primitives have a universality then an even higher level circuit can be made.


Bottom up design where architecture is made from primitives and top down design where architecture is made from specifications are both symmetrically essential. And like wheels of a car, both are necessary for designing.Lacking knowledge of both a well balanced system can not be designed.But although specifications are variable, primitives are a constant and having a good knowledge of the primitives will help in efficiency in circuit design.


Design

Contents


One of the basics of primitivesPipelineIf the structure is properly understood then can apply this knowledge for smooth high level designMost algorithms can use the right angular properties of a pipeline to slice functions into separate circuits. Here will detail basics about the pipeline.


Next will detail several Technicswhich will provide hints on dsign of functional modules. Perhaps this may be insufficient but may provide reference when trying to convert an idea into an actual circuit.


FurtherDesign Exampleare provided along with actual coding. The basics are revealed but these have the potential for further expansion.

That is to say


How about this tutorial in actuality? people ask. It is a "Yes" in response to "Is this helpful" but "Maybe" in response to "will it provide concrete solutions"


We also at first thought that if we had a template and combinations to various primitives, then all that would be required would be to mechanically insert these into circuits. But in reality when faced with actual problem then need to put in place new logic. Thus this tutorial can provide samples for enhancing the thinking process, however to design actual solutions for problems the knowhow of a capable engineer is required.


The contents of this tutorial will have actual value upon upgrading. On the other hand we do not know the completeness of the contents and it is difficult to determine this which would like to state at the onset and apologize for this.

Logical Design > Home > Introduction    Next page(Language・Coding style)   Top of this page ▲

[1]
There are many textbooks on Introductory HDL, but beyond that there seem to be none. The way to learn seems to be to look at RTL made by earlier engineers, or to try to polish ones own knowhow by trial and error.

By doing this, everyone has an individual and unique culture and when looking at someone else's style can be a shock as well as a revelation. Maybe its not so much to say that like any architectural monument with artistic value, logical circuit design is also among these.
[2]
For an experienced designer, just by glancing at specifications and design details, can get an outline in mind. This kind of insight comes from a lot of experience, and it would be ideal to cache that knowhow inclusive of failures as well as successes.
[3]
When designing individually, it is quite possible to miss important specifications. On the other hand designing in a team of multitude of people has its own risks. Thus how the project is reviewed leads to upgrade of quality.
[4]
Studying our primitives to algorithms (not revealed here) it would be possible to understand our lock circuit design methodology. Also review the design examples. Many of these will help towards increasing understanding deeply.
[5]
Faster CPU performance or parallel operation of GPU through specialized hardware is sometimes questioned. Each has its merits as well as demerits and applications vary accordng to the time period. Basically there is no meaning to limiting the possibilities. It would be wise to use any method or concept efficiently and flexibly.