|
||||||||||||||||||||||||||||
Enforcing Design Rules to Develop Reusable IPby Kanwar Pal Singh and Ramakrishna Ayyagari Abstract We conclude with a mention of future work which can be done to enhance the capabilities of the design checking tool as well as the extension in the methodology to support system level designs. 1 Introduction Reuse is not something new. This is practised widely in software domain where code modules are used across different programs. In hardware domain, design blocks are reused in different SOC designs. It is different in a very significant way. The real test for design is fabrication and thousands of dollars can be lost because of erroneous designs which can be due to as simple reason as one wrong line of RTL code. With such high stakes design practices need to be systematic and standardized at the very start of the design IP development cycle. This would reduce the issues while integrating the pre-developed design blocks in the complete SOC design. 1.1 Factors inhibiting design re-use The issues mentioned here are a broad category of the issues which can result in the SOC designer wasting a lot of resources in making the design block compatible with the rest of the design and verifying the complete SOC. • Bad Coding styles practised in the design. 1.2 Proposed Solution To develop re-usable designs, the design IP developers across the globe, need to qualify the designs against the reusability standards, so that the user who consumes the design faces the least number of issues while integrating it in the SOC design. To enforce these standards on all the design IP developers there is a need to have a very easy, efficient way of doing standard enforcement early in the IP development stage by using an EDA tool. In the methodology described in this paper, we propose a flow in the IP development cycle which will enforce re-use standards very early in the IP design development cycle. We also discuss the features in the EDA tool which enable the implementation of this flow. This results in gain of "Time to Market" for both the IP vendor and the SOC designer. 2 Modeling guidelines to promote design reuse To considerably reduce the issues which designers face during integration of design blocks to develop a complete SOC design, the design developer needs to follow a set of guidelines during designing. The rules discussed in this section form a set of rules which can be used to qualify the designs for reuse. 2.1 Good HDL coding practices The HDL designs are considered unfit for re-use because they are not easily understandable. The code is not structured and it is hard to modify and understand the design. The following rules can qualify the design with respect to the good coding practices. • Follow standard naming conventions• Do not use HDL reserved words • Use functions • Use Loops and arrays • Use meaningful labels 2.2 Standard Clocking scheme rules • No gated and internally generated clocks • All sequential elements positive edge triggered
• Resets other than initial resets need to be synchronous resets.
• Use only IEEE standard types in VHDL designs • Use technology independent libraries
• Avoid combinational feedback loops • Specify complete sensitivity list to avoid simulation synthesis mismatches • In verilog designs use non-blocking assignments in "always" blocks • Keep FSM logic and non-FSM logic in separate modules 2.6 Testability rules • Avoid gated clocks • Combine clock systems for testing • All scannable flip-flops should be driven by same clock
• Group combinational logic in the same module as destination register 3 Methodology to enforce re-usability standards on the Design Design IP development cycle basically comprises of Feature planning, Design planning, Design implementation & Design productization. The proposed methodology is targeted at the design implementation stage. Here we propose a flow which is an extension of the existing design checking step which every designer anyway runs after writing the HDL design code. The IP reuse qualification set of rules can be broadly divided into pre-synthesis checks and post synthesis checks. Instead of running the design checking step once, we propose a flow in which the design checking tool will be run twice in the design cycle. The aim is to catch the issues which can be problems in integration of the design block and verifiability of the design. It is not possible to catch these issues if only RTL level design checking is done. As per the flow there will be two executions of design checking step: The Phase-I pre-synthesis step will qualify the HDL code against: • Good HDL coding practices• Portability issues • Synthesizability issues • Standard clocking scheme • Standard reset scheme
• Power consideration and area constraints • Potential timing issues To catch the post synthesis issues the design checking tool will be run on the design netlist. This step is proposed as a new step in the design development flow. Post synthesis analysis will report DFT rule violations as well as structural loops, feedthroughs and latches in the design. DFT issues can not be caught in the analysis of the RTL view of the design as the scan chain is inserted during the synthesis of the design. The issues like structural loops, feedthroughs and latches in the design will also be caught with accuracy when the design netlist is analyzed as the netlist is the structural view of the design. After synthesis the per module gate count estimation is also available which can be used to report area constraint violations. To enable the above mentioned analysis the EDA tool should be capable of analyzing the synthesized netlist of the design and also capable to read and analyze the timing library for the design. The issues caught here are potential problems during low level implementation of the design. Discovering these post-synthesis issues is one of the value adds this methodology proposes. Flow diagram showing the proposed methodology in the IP development cycle 4- New Features in the design checking tool
4.2 Pseudo synthesis capability 4.3 Capability to run on the synthesized netlist 4.4 Capability to customize the existing rules 4.5 Capability of augmenting the existing set of rules 5 Experimental results The IPs used were: UART : Communication controller UART coreGPIO : General-purpose I/O core Minirisc : Mini-RISC Microcontroller/CPU Wb_dma: DMA/Bridge IP core
In the experimental analysis of the above mentioned IPs, following violations were reported: Some pre-synthesis violations were: • Signal assigned under clock but never reset• Reset of a flip-flop is an expression • Gated clock in the design • Naming convention violations • Variable defined in the process is unused • In a module the clock signal is used as a set/reset • Unequal length across comparator operator • Delay in nonblocking statement
Some post-synthesis violations were: • Combinational path across units• Feedthroughs • Top level output not registered • Latches in the design
In the UART design the clock gating was detected for clock RRegL of flip-flop RxAv RxAvProc : process(RRegL,Reset,ReadA)begin if ReadA = '1' or Reset = '1' then RxAv <= '0'; -- Negate RxAv when RReg -- read elsif Rising_Edge(RRegL) then RxAv <= '1'; -- Assert RxAv when RReg -- written end if; end process;
when 0 => -- idle RRegL <= '0'; if RxD = '0' then -- Start Bit SampleCnt := 0; BitPos := 1; end if; when 10 => -- Stop Bit BitPos := 0; -- next is idle RRegL <= '1'; -- Indicate byte -- received DataO <= RReg; -- Store received -- byte when others => if SampleCnt = 1 then -- Sample RxD --on 1 RReg(BitPos-2) <= RxD; -- Deserialisation end if; if SampleCnt = 3 then -- Increment -- BitPos on 3 BitPos := BitPos + 1; end if; end case; 5.2 Post-synthesis analysis of the UART design Catching these issues is a real value add for the IP designer as removing these issues upfront from the design will enable better integration of the design block into the complete SOC design and also make the design block testable. Several design groups (both internal and external) have used this tool and implemented the proposed methodology in their design cycles. The feedback from these groups show the acceptance of this methodology. The capabilities of the design checking tool have been much appreciated and have been used to customize the existing set of rules and create new rules much to the advantage of the SOC designers. 6 Related work
In this paper, a methodology to qualify design IPs for reusability, is proposed. The enhancements in the existing design checking tool to support this methodology were also discussed. This methodology when implemented qualifies the design for re-use and reduces the issues faced in the integration of the design block in the SOC. This also reduces the "Time to market" considerably. As this is an extension of the existing technology, this fits in very well in the design IP development cycle and is not a big overhead. The need for a globally accepted standard set of rules for design re-use was also brought forward. The design community need to accept this reality that to tap the real power of re-use this standardization needs to be done. The features in the tool are ready to accommodate any such standardization. As of now, this methodology is proposed for the qualification of the HDL designs. Some of the features which are planned extensions in the design checking tool include adding the scoring capability and additional language support for writing custom rules. This scoring will be weighed according to the importance of the rule. i.e whether the certain design practice is prohibited, mandatory or recommended. This gives the designer percentage compliance of the design to the prescribed set of rules. The capability to create custom rules will also be enhanced, to allow the user to write new rules using other languages e.g Perl,tcl. Designers are more conversant with these languages. With the advent of system level designing, this methodology can be extended to the qualification of system level design IPs. The industry standards around the re-usability of the system level designs written in SystemC or SystemVerilog need to be developed. The same technology could also be enhanced to have the additional capabilities to qualify a System level design for reusability.
|
Home | Feedback | Register | Site Map |
All material on this site Copyright © 2017 Design And Reuse S.A. All rights reserved. |