Beruflich Dokumente
Kultur Dokumente
MAPLD2011
Agenda
Fail-safe design assurance guidelines (DO-254) HDL coding in hardware design life cycle Automated HDL code reviews
www.aldec.com
www.aldec.com
A B C D E
www.aldec.com
aircraft,
Major failure reduces flight safety margins and the capability of the
aircraft to the point where potential injuries could occur.
Section 5.2
Concept. Design
Detailed Design
Section 5.4
Implement.
Product transition
Section 5.1
Section 5.3
Section 5.5
www.aldec.com
www.aldec.com
HDL Design is a typical process for Detailed Design phase HDL describes functional behavior of the actual hardware Text-based entry method requires advanced editors to facilitate
design development
HDL Editor Block Diagram Editor FSM Editor
www.aldec.com
Code and implementation data must be documented Automatic HDL Code visualization is essential
Code2Graphics Export to PDF/HTML
www.aldec.com
www.aldec.com
10
www.aldec.com
11
Review session details (minutes, AIs) must be kept as a proof DO-254 project reviews:
SOI-1: examination of planning documents SOI-2: design audit (after requirements, architecture, coding, and other internal reviews are done)
Flow Diagrams Documentation
Project Hierarchy
www.aldec.com
12
Industry
In-house
Specified: DO-254
www.aldec.com
13
HDL Coding
Implementation
www.aldec.com
14
www.aldec.com
15
HDL Coding
Implementation
www.aldec.com
16
www.aldec.com
17
www.aldec.com
18
process ( CLOCK, RESET, ENABLE ) begin if RESET='0' then FIBOUT <= "00000001"; PREV_FIB <= "00000000"; elsif falling_edge(CLOCK) and ENABLE='1' then PREV_FIB <= FIBOUT;
Detail message
00000000 should be parameterized.
case (FIBOUT="00000000") and (PREV_FIB="00000000") is when true => FIBOUT <= "00000001"; when others => FIBOUT <= FIBADD; end case;
www.aldec.com
19
www.aldec.com
20
or BIN) begin if (S == 2'b00) begin Y = AIN & BIN; Z = 0; end else if (S == 2'b01) begin Y = 0; Z = AIN | BIN; end else if (S == 2'b10) begin Y = 0; end else begin Y = 1; Z = 0; end end endmodule
Main message
The always process description infers latch for 1 signal.
Detail message
Signal Z" is not assigned in all cases.
www.aldec.com
21
www.aldec.com
22
module add_sub( CLK_1, CLK_2, ADD_SUB, ARG_A, ARG_B, RES ); input CLK_1, CLK_2; input ADD_SUB; input [`BIT_LENGTH-1:0] ARG_A, ARG_B; output [`BIT_LENGTH-1:0] RES; wire [`BIT_LENGTH-1:0] res_add, res_sub, trnsmt; adder adder( .A ( ARG_A ), .CLK( CLK_1 ), .B ( ARG_B ), .RES( res_add ) ); Violation message subtractor subtractor( .CLK( CLK_1 ), Comb. logic is present on ), The "first_stage_ff flip-flop .A ( ARG_A clock domains crossing path!), .B ( ARG_B obtains data from another clock .RES( res_sub ) domain through combinational ); logic risk of functional errors div2 div2( .CLK( CLK_2 ), caused by propagation of .ARG( trnsmt ), incorrect values/glitches. .RES( RES ) ); assign trnsmt = ( ADD_SUB )? res_add : res_sub; endmodule
www.aldec.com
23
Group #1
Phase #1
Violation DB #1
Criteria #1
Group #N
Phase #N
Violation DB #N
Criteria #N
www.aldec.com
24
3. Violations
4. Viewpoints
www.aldec.com
25
Quality report
www.aldec.com
26
Executable flows based on predefined or custom coding standards Tools for results analysis and documentation Three preset groups recommended for DO-254 designs
www.aldec.com