Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Συστήματα CAD Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Συστήματα CAD Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών"— Μεταγράφημα παρουσίασης:

1 Συστήματα CAD Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών
Ροή Πληροφορικής Δαδαλιάρης Αντώνιος:

2 Front-End Design

3 RTL Design (1) Αρχική περιγραφή της δομής ή της συμπεριφοράς της σχεδίασης (και των υποσχεδιάσεων που την αποτελούν) σε κάποια γλώσσα περιγραφής υλικού (hardware description language – HDL). HDLs: ABEL SystemC SystemVerilog Verilog VHDL

4 RTL Design (2) Το εκάστοτε κύκλωμα που καλούμαστε να υλοποιήσουμε, μπορεί να σχεδιαστεί και να υλοποιηθεί εξίσου αποτελεσματικά και στις δύο επικρατέστερες γλώσσες περιγραφής υλικού (VHDL, Verilog). H επιλογή της γλώσσας βασίζεται: Στις προσωπικές προτιμήσεις του σχεδιαστή. Στα διαθέσιμα CAD εργαλεία. Marketing issues.

5 RTL Design: VHDL vs. Verilog (1)
Πλεονεκτήματα: Strongly typed language. Custom data types. Εύκολη περιγραφή ασύγχρονων σημάτων. Εύκολη διάκριση μεταξύ διαφορετικών κομματιών κώδικα. Μειονεκτήματα: Strongly typed language. Λίστες ευαισθησίας. Μετατροπές μεταξύ διαφορετικών τύπων δεδομένων.

6 RTL Design: VHDL vs. Verilog (2)
Πλεονεκτήματα: Μικρό συντακτικό, ομοιότητες με τη γλώσσα C. Οι περιγραφές χαμηλού επιπέδου είναι πιο κοντά στο πραγματικό hardware. Άμεση δημιουργία στιγμιοτύπων πυλών. Άμεση δήλωση καλωδίων (wires) και καταχωρητών (registers). Μειονεκτήματα: Weakly-typed language. Δεν υπάρχουν λίστες ευαισθησίας. Δεν υπάρχει η δυνατότητα δημιουργίας νέων τύπων δεδομένων. Η διαφορά μεταξύ ενός wire και ενός reg δεν είναι πάντοτε εμφανής στον απλό χρήστη. Μειομένη υποστήριξη διαχείρισης ασύγχρονων σημάτων.

7 RTL Design: VHDL vs. Verilog (3)

8 RTL Design: VHDL vs. Verilog (4)
VHDL Description LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY fulladd IS PORT ( A: IN STD_LOGIC; B: IN STD_LOGIC; Cin: IN STD_LOGIC; S: OUT STD_LOGIC; Cout: OUT STD_LOGIC); END fulladd ; ARCHITECTURE beh OF fulladd IS BEGIN S <= A XOR B XOR Cin ; Cout <= (A AND B) OR (Cin AND A) OR (Cin AND B) ; END beh ;

9 RTL Design: VHDL vs. Verilog (5)
Verilog Description module fulladd(A, B, Cin, S, Cout); input A; input B; input Cin; output S; output Cout; wire S, Cout; assign sum=a^b^c; assign carry=((a&b) | (b&c) | (a&c)); endmodule

10 RTL Simulation (1) H περιγραφή μιας σχεδίασης σε επίπεδο RTL βρίσκεται σε υψηλότερο επίπεδο αφαίρεσης απ'ότι η αντίστοιχη περιγραφή της σε επίπεδο πυλών (gate level). Παρόλαυτα, η διαδικασία της προσομοίωσης κρίνεται απαραίτητη στο πρώιμο αυτό στάδιο διότι αποτελεί τον πρώτο βασικό έλεγχο ορθότητας πριν την επερχόμενη διαδικασία της σύνθεσης. Βασικό πλεονέκτημα της διαδικασίας προσομοίωσης στο προκείμενο επίπεδο είναι η ταχύτητα εκτέλεσής της. CAD Tool: ModelSim (Mentor Graphics)

11 RTL Simulation (2) Ροή Προσομοίωσης: VHDL file/files creation
Το ModelSim χρησιμοποιείται για την προσομοίωση, επαλήθευση και αποσφαλμάτωση σχεδιάσεων οι οποίες περιγράφονται σε μια από τις ακόλουθες γλώσσες περιγραφής υλικού: VHDL Verilog System Verilog System C Ροή Προσομοίωσης: VHDL file/files creation Library declaration Library mapping Compilation Simulation Waveform Generation

12 RTL Simulation (3) VHDL file/files creation: Ο κώδικας (ή οι κώδικες σε περίπτωση που έχουμε ιεραρχική σχεδίαση) του κυκλώματος μπορεί να γραφτεί σε οποιονδήποτε text editor. Library declaration & mapping: Δημιουργία μιας βιβλιοθήκης για την αποθήκευση της σχεδίασής μας. Η βιβλιοθήκη αυτή πρέπει, ακολούθως, να αντιστοιχιστεί σε κάποια ή κάποιες από τις προϋπάρχουσες βιβλιοθήκες οι οποίες περιλαμβάνουν ορισμούς και υλοποιήσεις βασικών συναρτήσεων και πράξεων που ενδέχεται να χρειαστούν.

13 RTL Simulation (4) Compilation: Έλαγχος συντακτικής ορθότητας.
Waveform generation: Δημιουργία κατάλληλης κυματομορφής στην οποία μπορούμε να παρατηρήσουμε την εναλλαγή τιμών κάθε σήματος της σχεδίασης κατά την πάροδο του χρόνου.

14 RTL Simulation (5) RTL Simulation Script: cd /myFiles/FullAdder
vlib work vmap work work vcom fulladder.vhd vsim fulladd force A 1 force B 0 force Cin 0 run 1000

15 RTL Simulation (6)

16 Synthesis Ορισμός: Σύνθεση (synthesis) ονομάζεται η διαδικασία κατά την οποία μετατρέπουμε μια σχεδίαση, η οποία μας δίνεται σε HDL κώδικα, σε ένα βέλτιστο netlist σε επίπεδο πυλών το οποίο προσδιορίζεται πλήρως από μια τεχνολογική βιβλιοθήκη. ASIC Toolsets: Synopsys (Design Compiler) Cadence Magma

17 Simplified Synthesis

18 Synthesis (Design Compiler) (1)
Μπορεί να λάβει στην είσοδό του τόσο ιεραρχικές όσο και μονολιθικές σχεδιάσεις. Δύναται να συνθέσει τόσο συνδυαστικά όσο και ακολουθιακά κυκλώματα, βελτιώνοντας την ταχύτητα απόκρισής τουςμ τον χώρο που καταλαμβάνουν και την ισχύ που καταναλώνουν.

19 Synthesis (Design Compiler) (2)

20 Synthesis (Design Compiler) (3)

21 Synthesis (Design Compiler) (4)

22 Synthesis (Design Compiler) (5)
TCL – Tool Command Language Δημιουργήθηκε από τον John Ousterhout στο UC Berkeley. Scripting γλώσσα. Ευκολία στην αυτοματοποίηση επαναλαμβανόμενων εργασιών. Χρησιμοποιείται σε συνάρτηση με την πλειοψηφία των βιομηχανικών CAD εργαλείων. Εύκολη και γρήγορη εκμάθηση. Εύκολη στη χρήση και την εφαρμογή της σε οποιοδήποτε περιβάλλον. Πρακτικά όλη η διαδικασία υλοποίησης μιας σχεδίασης μέσω της χρήσης CAD εργαλείων, πραγματοποιείται με την αλλεπάλλληλη εφαρμογή tcl scripts. Οι πληροφορίες από τα reports που προκύπτουν είναι αυτές που καθορίζουν κατά πόσο ο σχεδιαστής θα “αναγκαστεί“ να χρησιμοποιήσει την εκάστοτε γραφική διεπαφή.

23 Synthesis (Design Compiler) (6)
set stdcells_home /path_to_standard_cell_library_folder set_app_var search_path /path_to_design_folder set_app_var target_library "cells.db" set_app_var synthetic_library "dw_foundation.sldb" set_app_var link_library "* $target_library $synthetic_library" set_app_var mw_logic1_net "VDD" set_app_var mw_logic0_net "VSS" create_mw_lib -technology /path/ "gcdGCDUnit_rtl_LIB" open_mw_lib "gcdGCDUnit_rtl_LIB" check_library define_design_lib WORK -path "./work" Στο πρώτο κομμάτι του script καλούμαστε να καθορίσουμε τις μεταβλητές περιβάλλοντος της σύνθεσης. Καθορίζουμε τα folder paths που οδηγούν σε εκείνα τα σημεία του δίσκου όπου έχουν αποθηκευτεί τα αρχεία της σχεδίασής μας, τα αρχεία της τεχνολογικής βιβλιοθήκης και όποια επιπρόσθετα αρχεία δύναται να βοηθήσουν την διαδικασία της σύνθεσης. Target Library Synthetic Library

24 Synthesis (Design Compiler) (7)
Target Library: Η τεχνολογική βιβλιοθήκη της οποίας τα κελιά θέλουμε να χρησιμοποιηθούν από τον DC για το τελικό mapping. Synthetic Library (DesignWare Library): Διαθέτει τεχνολογικά ανεξάρτητες κυκλωματικές οντότητες (components). Εκτέλεση βελτιστοποιήσεων υψηλού βαθμού κατά την χρήση της στην διαδικασία της σύνθεσης (αριθμητικές βελτιστοποιήσεις, επιλογή καταλληλότερων αναπαραστάσεων, επιλογή καταλληλότερων υλοποιήσεων).

25 Synthesis (Design Compiler) (8)
analyze -format verilog "myDesign.v subDesign.v" elaborate "module or entity name" link check_design analyze: Έλεγχος συντακτικής ορθότητας του HDL κώδικα και του κατά πόσο η λογική που περιγράφεται είναι συνθέσιμη με βάση τις βιβλιοθήκες επιλογής. Μετατροπή και αποθήκευση της σχεδίασης σε μια ενδιάμεση μορφή. elaborate: Μετατροπή της σχεδίασης (στην μορφή που έχει ληφθεί από το παραπάνω βήμα) σε “πραγματικό“ υλικό (π.χ. αντικατάσταση αριθμητικών τελεστών με συνθετικούς τελεστές της DesignWare βιβλιοθήκης). check_design: Έλεγχος συνέπειας. Η σχεδίαση δεν μπορεί να συντεθεί εάν ο προκείμενος έλεγχος εμφανίσει λάθη(ERRORS) (συνήθως εμφανίζει πληθώρα από WARNINGS).

26 Synthesis (Design Compiler) (9)
set_clock_latency 0.1 find(clock, "clk") set_clock_transition 0.01 find(clock, "clk") set_clock_uncertainty -setup 0.1 find(clock, "clk") set_clock_uncertainty -hold 0.1 find(clock, "clk") set_load 0 all_outputs() set_input_delay 1.0 -clock clk -max all_inputs() set_output_delay -max 1.0 -clock clk all_outputs() set_max_area 0 Ο DC καταβάλει την καλύτερη δυνατή προσπάθεια να συνθέσει το κύκλωμα μη παραβιάζοντας τους περιορισμούς που έχουν τεθεί. Design Rule Constraints: Περιορισμοί που προκύπτουν από την τεχνολογική βιβλιοθήκη που χρησιμοποιούμε. User Specified Constraints: Περίοδος ρολογιού, αβεβαιότητα ρολογιού, χωρητικότητα στις εξόδους κλπ. Ο περιορισμός που αφορά την περίοδο του ρολογιού είναι πολύ σημαντικός (πολύ μικρή περίοδος – μεγάλος χρόνος επεξεργασίας του κυκλώματος, πολύ μεγάλη περίοδος συντηρητικό τελικό αποτέλεσμα).

27 Synthesis (Design Compiler) (10)
compile_ultra change_names -rules verilog -hierarchy write -format ddc -hierarchy -output gcdGCDUnit_rtl.mapped.ddc write -f verilog -hierarchy -output gcdGCDUnit_rtl.mapped.v write_sdf gcdGCDUnit_rtl.mapped.sdf write_sdc -nosplit gcdGCDUnit_rtl.mapped.sdc report_timing -transition_time -nets -attributes -nosplit report_area -nosplit -hierarchy report_power -nosplit -hier report_reference -nosplit -hierarchy report_resources -nosplit -hierarchy compile_ultra: Mε την εντολή αυτή εκκινείται η διαδικασία της σύνθεσης. Κατά το compilation εμφανίζεται στην κονσόλα του εργαλείου ένα progress report που περιγράφει με ποιόν τρόπο βελτιστοποιείται η σχεδίαση (π.χ. πόσα passes γίνονται κατά την διαδικασία βελτιστοποίησης της καταλαμβανόμενης από το κύκλωμα συνολικής περιοχής κλπ.). write: Δημιουργία κατάλληλων αρχείων εξόδου για την χρησιμοποίησή τους σε επόμενα βήματα της διαδικασίας σχεδίασης. report: Δημιουργία αναφορών για τον έλεγχο του τελικού αποτελέσματος.

28 Synthesis (Design Compiler) (11)

29 Synthesis (Design Compiler) (12)
**************************************** Report : cell Design : counter Attributes: BO - reference allows boundary optimization b - black box (unknown) d - dont_touch h - hierarchical n - noncombinational r - removable u - contains unmapped logic Cell Reference Library Area Attributes U AO22X saed90nm_typ d U AO22X saed90nm_typ d U AO22X saed90nm_typ d U AO22X saed90nm_typ d Cell Report

30 Synthesis (Design Compiler) (13)
**************************************** Report : hierarchy Design : counter counter AO21X saed90nm_typ AO22X saed90nm_typ DFFX saed90nm_typ INVX saed90nm_typ NOR2X saed90nm_typ XNOR2X saed90nm_typ XOR2X saed90nm_typ counter_DW01_inc_0 HADDX saed90nm_typ INVX saed90nm_typ XOR2X saed90nm_typ Hierarchy Report

31 Synthesis (Design Compiler) (14)
**************************************** Report : area Design : counter Library(s) Used: saed90nm_typ Number of ports: Number of nets: Number of cells: Number of combinational cells: Number of sequential cells: Number of macros: Number of buf/inv: Number of references: Combinational area: Noncombinational area: Net Interconnect area: Total cell area: Total area: Area Report

32 Synthesis (Design Compiler) (15)
**************************************** Report : power Design : counter Library(s) Used: saed90nm_typ Global Operating Voltage = 1.2 Power-specific unit information : Voltage Units = 1V Capacitance Units = ff Time Units = 1ns Dynamic Power Units = 1uW (derived from V,C,T units) Leakage Power Units = 1pW Cell Internal Power = uW (74%) Net Switching Power = uW (26%) Total Dynamic Power = uW (100%) Cell Leakage Power = uW Internal Switching Leakage Total Power Group Power Power Power Power ( % ) Attrs io_pad ( %) …. combinational e ( %) Total uW uW e+06 pW uW Power Report

33 Synthesis (Design Compiler) (16)
**************************************** Report : timing -path full -delay max -max_paths 1 Design : counter Operating Conditions: TYPICAL Library: saed90nm_typ Point Incr Path clock clk (rise edge) clock network delay (ideal) out_reg_0_/CLK (DFFX1) r …. out_reg_7_/D (DFFX1) r data arrival time clock clk (rise edge) clock network delay (ideal) out_reg_7_/CLK (DFFX1) r library setup time data required time data arrival time slack (MET) Timing Report

34 Synthesis (Design Compiler) (17)
############################################################## ##### # Created by write_sdc on Wed Nov 15 09:40: set sdc_version 1.9 set_units -time ns -resistance MOhm -capacitance fF -voltage V -current uA set_load -pin_load 5 [get_ports {out[7]}] …. create_clock [get_ports clk] -period 10 -waveform {0 5} set_input_delay -clock clk [get_ports clk] set_input_delay -clock clk [get_ports reset] set_output_delay -clock clk [get_ports {out[7]}] set_drive [get_ports up_down] set_drive [get_ports clk] set_drive [get_ports reset] Design Constraints Report

35 Synthesis (Design Compiler) (18)
**************************************** Report : constraint -all_violators Design : counter Version: F SP3 Date : Wed Nov 15 09:40: max_area Required Actual Design Area Area Slack counter (VIOLATED) Violators Report

36 Synthesis (Design Compiler) (18)
library IEEE; use IEEE.std_logic_1164.all; entity counter is port( out_port : out VHDLOUT_TYPE; up_down, clk : in std_logic; data : in VHDLOUT_TYPE; reset : in std_logic); end counter; architecture SYN of counter is component XOR2X1 port( IN1, IN2 : in std_logic; Q : out std_logic); end component; …. begin U4 : AO22X1 port map( IN1 => N11, IN2 => n1, IN3 => N19, IN4 => n2, Q => N27 ); end SYN; VHDL Netlist

37 Synthesis (Design Compiler) (19)

38 Synthesis (Design Compiler) (20)


Κατέβασμα ppt "Συστήματα CAD Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google