The developers create more and more complex devices because the requirements to functional qua- lities are increasing. The complexity of a design process and a program code amount significantly increase because of using high-level hardware description languages (HDL) [1, 2] in development of devices on a chip (VLSI). A Source Lines of Code (the number of lines in the program) is used to estimate program code complexity. The indicator is used to predict the amount of efforts required to develop devices using HDL and to estimate programming productivity or maintainability.
In practice one of the popular HDL languages is VHDL (VHSIC (Very high speed integrated circuits) Hardware Description Language)). The basis of its structure and use is an object-oriented approach. VHDL language is used to develop hardware of any complexity: chips, circuit boards, blocks, devices and systems. The language is convenient for using in projects design as well as their verification.
Multiple CAD Systems [3] designed for individual work are used for schematic design. They do not contain means for collective development of complex projects.
Wizard-technologies RUP [4], ARIS [5] etc. are used to design complex software in industrial practice. The technologies have proven themselves in the development of complex computer-aided systems. They ensure the success growth of their creation. However, the use of such technologies as the subject domain tools is difficult from a methodological point of view in design object development (VLSI). These technologies do not support distributed work on the basis of modern Internet technologies.
The paper proposes distribution of calculations for solving design tasks of radio-electronic equipment on a multiprocessor system in order to reduce execution time in [6]. However, the distributed design technologies themselves are not considered.
The authors propose distributed system architecture for complex VHDL programs design. Its methodological basis is creation and reuse of structural-functional linguistic models (SFLM) [7]. The system is organized on a multi-agent role approach. The collaboration technology of the team of designers who are on a remote operation includes a web-based interface.
System Architecture Overview
Fig. 1 shows a general architecture of a distributed design system including software components and their interaction.
The architecture is based on Common Object Request Broker Architecture (CORBA) technology. It allows organizing unified information environment. Its elements can interact with each other regardless of their particular implementation, i.e. ‘registration’ in the distributed system. Software applications from different servers are connected on the basis of the middleware development. Bridging between applications is implemented using Object Request Broker which is responsible for client-server interaction between objects [8].
The following subsystems are identified as functional modules: a subsystem of project tasks management, a routing subsystem, a subsystem of design solution, a subsystem of SFLM template search, a subsystem of testing and optimization [2].
Technologies of system activity
One of the system activity technologies is the use of a private cloud as a mean for organizing a distributed design process with centralized storage of project decisions. A private cloud is an infrastructure for using by a single organization which includes several units [9].
We suggest to use a multi-agent approach as an organizational framework of SFLM distributed design system. The types of agents are the following:
– an interface agent that provides agents binding;
– a design tasks management agent that provides development of parallel network circuit of tasks (PNCT) and design tasks distribution between designers;
– an agent of design solution development that provides activities related to creation of design solutions using VHDL, i.e. development of SFLM, SFLM template and lexical and semantic analysis of the code;
– an agent of a design solutions synthesis that provides the search of design solutions ready to unite and created by designers and their synthesis into a single design solution;
– a routing agent that provides a binding role between local or distributed agents located on other servers which act as a storage or developer of design solutions;
– a search agent that provides of a search request formation for design decision and clustering data in order to reduce data search time;
– a knowledge base agent that provides the operations connected with the knowledge base;
– a working memory agent that controls a system status and distributes a load for agents and the entire system [10].
The server part of the system is based on a MVC template (model-view-controller) which allows dividing the system into three easily modifiable and practically independent components that are responsible for various tasks [11].
The controller presents GET and POST user requests management. The main functions are activation and coordination of actions, necessary resources and objects. The controller activates the model for system task and selects an appropriate view to display.
The model is a set of rules for system functioning. Representation provides various methods for displaying data obtained from the model. The system uses representations in the form of a template which is filled with data. Fig. 2 shows the process of system operation according to the MVC template.
Fig. 3 presents a sequence diagram as the MVC template demonstration on the operations of authorization and analysis of VHDL code.
The basis of the developed distributed design system is a methodology for top-down design: from specifications on the part of a designed device to generation of a design solution that describes the device operation.
VHDL program can include of one or more files. The object – architecture couple is an integral part of each program file. An object is an interface part indicating how to include the object inside another one located at higher level in the hierarchy. The architecture defines the algorithm of the object operation. One object can correspond to several architectures that describe different operation algorithms. Thus, taking into account VHDL program structure, it is possible to create the libraries of objects, procedures, types, etc., carry out the decision of project tasks in parallel by several designers, use objects from other projects, test projects with the same methodology.
The authors propose to use associative-oriented model of parallel job management – PNCT [12] to organize design workflow management in the system.
Fig. 4 shows the process of system operation. The numbers represent the design procedure from developing specifications to filling the knowledge base by design decisions. (A) represents the formation of VHDL code of program memory (PRAM) in the web editor with syntax highlighting. (B) is a schematic presentation of (DRAM) VHDL code data memory formation in the web editor with syntax highlighting. (C) represents the editing of program memory specifications (PRAM) [13].
The main synthesis operations are merge of designed device parts on various stages of development:
– VHDL programs code merge is produced by combining of development branches in a distributed GIT versions control system;
– SFLM merge is produced by combining blocks into a design solution which solves the task;
– identification of connection between the components due to the card ports formation on the basis of the specification and its integration into a parent element.
Formed SFLM allows organizing a convenient search of design decisions by different criteria such as a designed device type, ports and others. SFLM is a set of functional blocks of designed device. It means that the process of creating a new design solution may be presented as writing a new code or as constructing from various blocks.
The principle of SFLM templates reuse is a central in the system, i.e. structural-functional models created by some designers can be used by others to create a new design solution which is also stored in the knowledge base.
The described web-oriented system structure is stored as PHP scripts and single files which are called templates. The data base is used to store the system content and PNCT data; the knowledge base is used to store design solutions. The agents described above process data obtained from the knowledge base (design decisions) and the database (PNCT controllers). The implementation of web interface allowed minimizing the requirements for hardware and software of users’ workstations, eliminate binding to the specific operating system (OS) and use open OS (Linux) because the developed system is cross-platform.
The proposed system for VHDL objects design provides development and filling of VHDL programs library. It allows reusing the design decisions with data modification taking into account requirements of the new tasks. Commercial introduction of the system will allow making the design more efficient due to the transfer of the part of routine operations to the agents, such as design solutions search and synthesis, as well as improving the quality of process control of collective design and reducing development costs.
Commercial introduction of the system will allow making design more efficient due to transferring a part of routine operations to agents including search and synthesis of design solutions. It can also improve the quality of process control of collective design and reduce costs for project development (according to SLOC metrics) by 5–7 %.
References
1. Ugryumov E.P. Tsifrovaya skhemotekhnika: uchebnoe posobie dlya vuzov [Digital Circuit Design: Study Book for Universities]. St. Petersburg, BHV-Petersburg Publ., 2005, 800 p.
2. Afanasyev A.N., Khorodov V.S. Distributed design of structural and functional VHDL models. Vestnik Ulyanovskogo gosudarstvennogo tekhnicheskogo universiteta [Vestnik of Ulyanovsk State Technical University]. 2014, no. 2 (66), pp. 41–45 (in Russ.).
3. Amosov V.V. Skhemotekhnika i sredstva proektirovaniya tsifrovykh ustroystv [Circuitry and Design Tools of Digital Devices]. St. Petersburg, BHV-Petersburg Publ., 2007, 560 p.
4. IBM Rational Unified Process (RUP). Available at: http://www-01.ibm.com/software/rational/rup/ (accessed November 10, 2014).
5. Business process management discussions, news and articles. ARIS BPM Community. Available at: http://www.ariscommunity.com (accessed November 10, 2014).
6. Glushan V.M., Lavrik P.V. Raspredelennye SAPR. Arkhitektura i vozmozhnosti [Distributed CAD. Architecture and Opportunities]. Stary Oskol, TNT Publ., 2014, 188 p.
7. Afanasyev A.N., Igonin A.G. A neuro-semantic approach application for functional models analysis and synthesis in design systems. Vestnik Izhevskogo gosudarstvennogo tekhnicheskogo universiteta [The Bulletin of Izhevsk State Technical University]. 2007, no. 1, pp. 66–69 (in Russ.).
8. Malysheva E.Yu. Uchebno-metodicheskiy kompleks po distsipline “Raspredelennye informatsionnye sistemy” [Methodical Kit on Discipline “Distributed Information Systems”]. Tolyatti, PVGUS Publ., 2013, pp. 19–24.
9. Green R. Cloud Technologies in CAD. CAD/CAM/CAE Observer. 2013, no. 6, pp. 30–33.
10. Khorodov V.S. Design of multi-agent distributed system for creating design solutions using structural and functional linguistic models. Obyektnye sistemy: materialy VIII mezhdunar. nauch.-praktich. konf. [Object Systems: Proc. of the 8th Int. Science and Practice Conf.]. Rostov-on-Don, 2014, pp. 19–23 (in Russ.).
11. Chris Pitt. Pro PHP MVC (Expert's Voice in Open Source). New York, Apress, 2012, 471 p.
12. Afanasyev A.N., Khorodov V.S. A workflow management model in a distributed design system for VHDL-objects. Tekhnicheskie nauki – ot teorii k praktike: sbornik statey po materialam XXXVII mezhdunar. nauch.-praktich. konf. [Technical Sciences – From Theory to Practice: a Collection of Articles Based on 37th Int. Science and Practice Conf.]. Novosibirsk, SibAK Publ., 2014, pp. 6–11.
13. Sergienko A.M. VHDL dlya proektirovaniya vychislitelnykh ustroystv [VHDL for Computing Devices Design]. 2003, pp. 161–194.