paranoid_gr Δημοσ. 27 Μαΐου 2011 Δημοσ. 27 Μαΐου 2011 Έχω να κάνω μια προσωμοίωση με τον Design compiler της Synopsys και έχω ένα πρόβλημα με τα τα pins(input και output) απο τα d flip-flop.Tην προσωμοίωση την κάνω πάνω σε ένα dcache_lfsr.Το warning που μου βγαζει το simulation είναι το εξής: # Check for warnings/errors check_design Warning: In design 'lsu_dcache_lfsr', input pin 'si[4]' of hierarchical cell 'lfsr_reg' has one or more internal loads, but is not connected to any nets. 'Logic 0' is assumed. (LINT-59) Warning: In design 'lsu_dcache_lfsr', input pin 'si[3]' of hierarchical cell 'lfsr_reg' has one or more internal loads, but is not connected to any nets. 'Logic 0' is assumed. (LINT-59) Warning: In design 'lsu_dcache_lfsr', input pin 'si[2]' of hierarchical cell 'lfsr_reg' has one or more internal loads, but is not connected to any nets. 'Logic 0' is assumed. (LINT-59) Warning: In design 'lsu_dcache_lfsr', input pin 'si[1]' of hierarchical cell 'lfsr_reg' has one or more internal loads, but is not connected to any nets. 'Logic 0' is assumed. (LINT-59) Warning: In design 'lsu_dcache_lfsr', input pin 'si[0]' of hierarchical cell 'lfsr_reg' has one or more internal loads, but is not connected to any nets. 'Logic 0' is assumed. (LINT-59) Warning: In design 'lsu_dcache_lfsr', port 'si' is not connected to any nets. (LINT-28) Warning: In design 'lsu_dcache_lfsr', port 'so' is not connected to any nets. (LINT-28) Warning: In design 'dff_s_SIZE5', input pin 'DATA1_4' of leaf cell 'C15' is connected to undriven net 'lfsr_reg/si[4]'. (LINT-58) Warning: In design 'dff_s_SIZE5', input pin 'DATA1_3' of leaf cell 'C15' is connected to undriven net 'lfsr_reg/si[3]'. (LINT-58) Warning: In design 'dff_s_SIZE5', input pin 'DATA1_2' of leaf cell 'C15' is connected to undriven net 'lfsr_reg/si[2]'. (LINT-58) Warning: In design 'dff_s_SIZE5', input pin 'DATA1_1' of leaf cell 'C15' is connected to undriven net 'lfsr_reg/si[1]'. (LINT-58) Warning: In design 'dff_s_SIZE5', input pin 'DATA1_0' of leaf cell 'C15' is connected to undriven net 'lfsr_reg/si[0]'. (LINT-58) Warning: In design 'dff_s_SIZE5', output port 'q[4]' is connected directly to output port 'so[4]'. (LINT-31) Warning: In design 'dff_s_SIZE5', output port 'q[3]' is connected directly to output port 'so[3]'. (LINT-31) Warning: In design 'dff_s_SIZE5', output port 'q[2]' is connected directly to output port 'so[2]'. (LINT-31) Warning: In design 'dff_s_SIZE5', output port 'q[1]' is connected directly to output port 'so[1]'. (LINT-31) Warning: In design 'dff_s_SIZE5', output port 'q[0]' is connected directly to output port 'so[0]'. (LINT-31) 1 Μήπως ξέρει κανείς πως να συνδέσω τα pins? Ευχαριστώ
Dr.Fuzzy Δημοσ. 27 Μαΐου 2011 Δημοσ. 27 Μαΐου 2011 Έχω να κάνω μια προσωμοίωση με τον Design compiler της Synopsys και έχω ένα πρόβλημα με τα τα pins(input και output) απο τα d flip-flop.Tην προσωμοίωση την κάνω πάνω σε ένα dcache_lfsr.Το warning που μου βγαζει το simulation είναι το εξής: Μήπως ξέρει κανείς πως να συνδέσω τα pins? Ευχαριστώ Κοίτα, σου λέει ότι στη σύνθεση που κάνεις μέρος της λογικής (μάλλον redundant, αν όλα είναι σωστά) γίνεται optimized με αποτέλεσμα τα pins αυτά να μην έχουν νόημα οπότε για να μην είναι floating τα καρφώνει σε λογικό 0.
paranoid_gr Δημοσ. 27 Μαΐου 2011 Μέλος Δημοσ. 27 Μαΐου 2011 Άμα καρφώνει κατευθείαν 0 τότε σημαίνει οτι δεν κάνει το shift o register και η έξοδος μου ειναι οι εξόδους των flip-flip 0 και 4(σύμφωνα με τον verilog κώδικα).Και το κρισιμο μονοπατι παει κατευθείαν απο την είσοδο στα 2 dff και μετα στις εξόδους(2bit έξοδος) και το slack είναι αρνητικό.Σωστό σύμφωνα με τα δεδομένα... Έχω κάνει ενα script που τρέχω με τις εντολές για τον compiler.Mήπως θα μπορούσες να το κοιτάξεις?
Dr.Fuzzy Δημοσ. 28 Μαΐου 2011 Δημοσ. 28 Μαΐου 2011 Άμα καρφώνει κατευθείαν 0 τότε σημαίνει οτι δεν κάνει το shift o register και η έξοδος μου ειναι οι εξόδους των flip-flip 0 και 4(σύμφωνα με τον verilog κώδικα).Και το κρισιμο μονοπατι παει κατευθείαν απο την είσοδο στα 2 dff και μετα στις εξόδους(2bit έξοδος) και το slack είναι αρνητικό.Σωστό σύμφωνα με τα δεδομένα... Έχω κάνει ενα script που τρέχω με τις εντολές για τον compiler.Mήπως θα μπορούσες να το κοιτάξεις? Για κάντο post να του ρίξω μια ματιά.
paranoid_gr Δημοσ. 28 Μαΐου 2011 Μέλος Δημοσ. 28 Μαΐου 2011 Aυτο είναι το script με τις εντολες για τον compiler. # Load up the verilog files (when more files are included there# will be more analyze lines) analyze -format verilog DFF_S.V analyze -format verilog ./lsu_dcache_lfsr.v # Tell dc_shell the name of the top level module elaborate lsu_dcache_lfsr -update # Set timing constaints, this says that a max of .5ns of delay from # input to output is alowable set_max_delay .5 -to [all_outputs] # Set the characteristics of the driving cell for all inputs set_driving_cell -lib_cell s[0] -pin Y [all_inputs] # If this were a clocked piece of logic we could set a clock # period to shoot for like this create_clock clk -period 1.500 # Check for warnings/errors check_design # Use module compiler for arth. DW components set dw_prefer_mc_inside true # ungroup everything ungroup -flatten -all # flatten it all, this forces all the hierarchy to be flattened out set flatten true -effort medium uniquify # This forces the compiler to spend as much effort (and time) # compiling this RTL to achieve timing possible compile_ultra # Now that the compile is complete report on the results report_area report_timing # Finally write the post synthesis netlist out to a verilog file write -f verilog lsu_dcache_lfsr -output lsu_dcache_lfsr_post_synth.v -hierarchy #Create .sdc file write_sdc lsu_dcache_lfsr.sdc Kαι αυτο είναι το αρχείο .synopsys_dc.setup που καλώ τις βιβλιοθήκες. #set LIB_NAME "osu018_stdcells" #the library name#set DFF_CELL "DFFNEGX1" #The typical (minimum size) DFF cell name. #set LIB_DFF_D "$LIB_NAME/$DFF_CELL/D" #The DFF input pin as library/cell/pin. #set DFF_CKQ 0.2; # Clk to Q in technology time units #The assumed value of the Clock-to-Q delay of the DFF in #technology units. #set DFF_SETUP 0.0; #The setup time of the DFF in technology units # Search paths set search_path " . ${synopsys_root}/libraries/syn ${synopsys_root}/dw/syn_ver ${synopsys_root}/dw/sim_ver " set target_library " lsi_10k.db " set symbol_library " lsi_10k.sdb " # Synthetic set synthetic_library " lsi_10k.sdb generic.sdb standard.sldb dw_foundation.sldb " # Link set link_library " * $target_library $synthetic_library " define_design_lib WORK -path ./WORK #set command_log_file "./command.log" define_design_lib WORK -path ./SYN/work gui_start # The top module name. set TOPLEVEL "lsu_dcache_lfsr" # A subdirectory to put reports in. set LOG_PATH "log/" # A subdirectory to put the synthesized (gate-level) verilog output in. set GATE_PATH "SYN/" # The subdirectory containing the unsynthesized (behavior) verilog input. set RTL_PATH "SRC/" # A name to supplement reports and file names with. set STAGE "final" # The clock input signal name. set CLK "clk" # The reset input signal name. set RST "rst" # The target clock period in library units. set CLK_PERIOD 0.1; # The clock uncertainty in library units. set CLK_UNCERTAINTY 0.1; Τα πρώτα είναι γτ πίστευω οτι ο compiler δεν φορτώνει τα synchronous dff που χρειάζομαι.Προσπάθησα να το περάσω και σαν submodule αλλά μου βγάζει error(όπως θα δεις παρακάτω) Kαι βάζω και το output log που εκανα για να έχεις ολοκληρωμένη άποψη. DC Professional DC Expert DC Ultra FloorPlan Manager HDL Compiler VHDL Compiler Library Compiler DesignWare Developer DFT Compiler BSD Compiler Power Compiler Version D-2010.03-SP3 for linux -- Jul 18, 2010 Copyright © 1988-2010 by Synopsys, Inc. ALL RIGHTS RESERVED This software and the associated documentation are confidential and proprietary to Synopsys, Inc. Your use or disclosure of this software is subject to the terms and conditions of a written license agreement between you, or your company, and Synopsys, Inc. The above trademark notice does not imply that you are licensed to use all of the listed products. You are licensed to use only those products for which you have lawfully obtained a valid license key. Initializing... # Load up the verilog files (when more files are included there # will be more analyze lines) analyze -format verilog DFF_S.V Running PRESTO HDLC Searching for ./DFF_S.V Searching for /opt/synopsys/design_compiler/D-2010.03-SP3/libraries/syn/DFF_S.V Searching for /opt/synopsys/design_compiler/D-2010.03-SP3/dw/syn_ver/DFF_S.V Searching for /opt/synopsys/design_compiler/D-2010.03-SP3/dw/sim_ver/DFF_S.V Error: Unable to open file `DFF_S.V': in search_path {. /opt/synopsys/design_compiler/D-2010.03-SP3/libraries/syn /opt/synopsys/design_compiler/D-2010.03-SP3/dw/syn_ver /opt/synopsys/design_compiler/D-2010.03-SP3/dw/sim_ver}. (VER-41) *** Presto compilation terminated with 1 errors. *** Loading db file '/opt/synopsys/design_compiler/D-2010.03-SP3/libraries/syn/lsi_10k.db' Loading db file '/opt/synopsys/design_compiler/D-2010.03-SP3/libraries/syn/lsi_10k.sdb' Loading db file '/opt/synopsys/design_compiler/D-2010.03-SP3/libraries/syn/generic.sdb' Loading db file '/opt/synopsys/design_compiler/D-2010.03-SP3/libraries/syn/standard.sldb' Loading db file '/opt/synopsys/design_compiler/D-2010.03-SP3/libraries/syn/dw_foundation.sldb' 0 analyze -format verilog ./lsu_dcache_lfsr.v Running PRESTO HDLC Compiling source file ./lsu_dcache_lfsr.v Presto compilation completed successfully. 1 # Tell dc_shell the name of the top level module elaborate lsu_dcache_lfsr -update Loading db file '/opt/synopsys/design_compiler/D-2010.03-SP3/libraries/syn/gtech.db' Loading link library 'lsi_10k' Loading link library 'gtech' Running PRESTO HDLC Presto compilation completed successfully. Elaborated 1 design. Current design is now 'lsu_dcache_lfsr'. Information: Building the design 'dff_s' instantiated from design 'lsu_dcache_lfsr' with the parameters "5". (HDL-193) Inferred memory devices in process in routine dff_s_SIZE5 line 74 in file './lsu_dcache_lfsr.v'. =============================================================================== | Register Name | Type | Width | Bus | MB | AR | AS | SR | SS | ST | =============================================================================== | q_reg | Flip-flop | 5 | Y | N | N | N | N | N | N | =============================================================================== Presto compilation completed successfully. 1 # Set timing constaints, this says that a max of .5ns of delay from # input to output is alowable set_max_delay .5 -to [all_outputs] 1 # Set the characteristics of the driving cell for all inputs set_driving_cell -lib_cell s[0] -pin Y [all_inputs] Error: Cannot find the specified driving cell in memory. (UID-993) 0 # If this were a clocked piece of logic we could set a clock # period to shoot for like this create_clock clk -period 1.500 1 # Check for warnings/errors check_design Warning: In design 'lsu_dcache_lfsr', input pin 'si[4]' of hierarchical cell 'lfsr_reg' has one or more internal loads, but is not connected to any nets. 'Logic 0' is assumed. (LINT-59) Warning: In design 'lsu_dcache_lfsr', input pin 'si[3]' of hierarchical cell 'lfsr_reg' has one or more internal loads, but is not connected to any nets. 'Logic 0' is assumed. (LINT-59) Warning: In design 'lsu_dcache_lfsr', input pin 'si[2]' of hierarchical cell 'lfsr_reg' has one or more internal loads, but is not connected to any nets. 'Logic 0' is assumed. (LINT-59) Warning: In design 'lsu_dcache_lfsr', input pin 'si[1]' of hierarchical cell 'lfsr_reg' has one or more internal loads, but is not connected to any nets. 'Logic 0' is assumed. (LINT-59) Warning: In design 'lsu_dcache_lfsr', input pin 'si[0]' of hierarchical cell 'lfsr_reg' has one or more internal loads, but is not connected to any nets. 'Logic 0' is assumed. (LINT-59) Warning: In design 'lsu_dcache_lfsr', port 'si' is not connected to any nets. (LINT-28) Warning: In design 'lsu_dcache_lfsr', port 'so' is not connected to any nets. (LINT-28) Warning: In design 'dff_s_SIZE5', input pin 'DATA1_4' of leaf cell 'C15' is connected to undriven net 'lfsr_reg/si[4]'. (LINT-58) Warning: In design 'dff_s_SIZE5', input pin 'DATA1_3' of leaf cell 'C15' is connected to undriven net 'lfsr_reg/si[3]'. (LINT-58) Warning: In design 'dff_s_SIZE5', input pin 'DATA1_2' of leaf cell 'C15' is connected to undriven net 'lfsr_reg/si[2]'. (LINT-58) Warning: In design 'dff_s_SIZE5', input pin 'DATA1_1' of leaf cell 'C15' is connected to undriven net 'lfsr_reg/si[1]'. (LINT-58) Warning: In design 'dff_s_SIZE5', input pin 'DATA1_0' of leaf cell 'C15' is connected to undriven net 'lfsr_reg/si[0]'. (LINT-58) Warning: In design 'dff_s_SIZE5', output port 'q[4]' is connected directly to output port 'so[4]'. (LINT-31) Warning: In design 'dff_s_SIZE5', output port 'q[3]' is connected directly to output port 'so[3]'. (LINT-31) Warning: In design 'dff_s_SIZE5', output port 'q[2]' is connected directly to output port 'so[2]'. (LINT-31) Warning: In design 'dff_s_SIZE5', output port 'q[1]' is connected directly to output port 'so[1]'. (LINT-31) Warning: In design 'dff_s_SIZE5', output port 'q[0]' is connected directly to output port 'so[0]'. (LINT-31) 1 # Use module compiler for arth. DW components set dw_prefer_mc_inside true Information: Variable 'dw_prefer_mc_inside' is obsolete and is being ignored. (INFO-100) true # ungroup everything ungroup -flatten -all Information: Updating design information... (UID-85) 1 # flatten it all, this forces all the hierarchy to be flattened out set flatten true -effort medium Error: wrong # args: should be "set varName ?newValue?" Use error_info for more info. (CMD-013) uniquify 1 # This forces the compiler to spend as much effort (and time) # compiling this RTL to achieve timing possible compile_ultra Alib files are up-to-date. Warning: The dw_prefer_mc_inside feature is obsolete. (UISN-47) Information: Evaluating DesignWare library utilization. (UISN-27) ============================================================================ | DesignWare Building Block Library | Version | Available | ============================================================================ | Basic DW Building Blocks | D-2010.03-DWBB_1007 | * | | Licensed DW Building Blocks | D-2010.03-DWBB_1007 | * | | lsi_10k.sdb | | | | generic.sdb | | | ============================================================================ Information: Sequential output inversion is enabled. SVF file must be used for formal verification. (OPT-1208) Information: There are 7 potential problems in your design. Please run 'check_design' for more information. (LINT-99) Loaded alib file './alib-52/lsi_10k.db.alib' Information: Ungrouping 0 of 1 hierarchies before Pass 1 (OPT-775) Beginning Pass 1 Mapping ------------------------ Processing 'lsu_dcache_lfsr' Updating timing information Information: Updating design information... (UID-85) Beginning Mapping Optimizations (Ultra High effort) ------------------------------- ELAPSED WORST NEG TOTAL NEG DESIGN TIME AREA SLACK SLACK RULE COST ENDPOINT --------- --------- --------- --------- --------- ------------------------- 0:00:04 86.0 2.84 15.2 0.0 0:00:05 86.0 2.84 15.2 0.0 0:00:05 86.0 2.84 15.2 0.0 0:00:05 85.0 2.84 15.2 0.0 Re-synthesis Optimization (Phase 1) Re-synthesis Optimization (Phase 2) Global Optimization (Phase 1) Global Optimization (Phase 2) Global Optimization (Phase 3) Global Optimization (Phase 4) Global Optimization (Phase 5) Global Optimization (Phase 6) Global Optimization (Phase 7) Global Optimization (Phase 8) Global Optimization (Phase 9) Global Optimization (Phase 10) Global Optimization (Phase 11) Global Optimization (Phase 12) Global Optimization (Phase 13) Global Optimization (Phase 14) Global Optimization (Phase 15) Global Optimization (Phase 16) Global Optimization (Phase 17) Global Optimization (Phase 18) Global Optimization (Phase 19) Global Optimization (Phase 20) Global Optimization (Phase 21) Global Optimization (Phase 22) Global Optimization (Phase 23) Global Optimization (Phase 24) Global Optimization (Phase 25) Global Optimization (Phase 26) Global Optimization (Phase 27) Global Optimization (Phase 28) Global Optimization (Phase 29) Beginning Delay Optimization Phase ---------------------------------- ELAPSED WORST NEG TOTAL NEG DESIGN TIME AREA SLACK SLACK RULE COST ENDPOINT --------- --------- --------- --------- --------- ------------------------- 0:00:05 69.0 2.84 14.7 0.0 0:00:05 76.0 2.84 14.4 0.0 0:00:05 76.0 2.84 14.4 0.0 0:00:05 76.0 2.84 14.4 0.0 0:00:05 76.0 2.84 14.4 0.0 0:00:05 76.0 2.84 14.4 0.0 0:00:05 76.0 2.84 14.4 0.0 0:00:05 76.0 2.84 14.4 0.0 0:00:05 76.0 2.84 14.4 0.0 0:00:05 76.0 2.84 14.4 0.0 0:00:05 76.0 2.84 14.4 0.0 Beginning Sequential Optimization --------------------------------- 0:00:05 76.0 2.84 14.4 0.0 0:00:05 77.0 2.84 14.4 0.0 Beginning Delay Optimization ---------------------------- 0:00:05 77.0 2.84 14.4 0.0 0:00:05 77.0 2.84 14.4 0.0 0:00:05 77.0 2.84 14.4 0.0 0:00:05 77.0 2.84 14.4 0.0 Beginning Sequential Optimization --------------------------------- 0:00:05 77.0 2.84 14.4 0.0 0:00:06 77.0 2.84 14.4 0.0 Beginning Delay Optimization ---------------------------- 0:00:06 77.0 2.84 14.4 0.0 0:00:06 77.0 2.84 14.4 0.0 0:00:06 77.0 2.84 14.4 0.0 0:00:06 77.0 2.84 14.4 0.0 Beginning Sequential Optimization --------------------------------- 0:00:06 77.0 2.84 14.4 0.0 0:00:06 77.0 2.84 14.4 0.0 0:00:06 77.0 2.84 14.4 0.0 0:00:06 76.0 2.84 14.3 0.0 0:00:06 76.0 2.84 14.3 0.0 0:00:08 76.0 2.84 15.1 0.0 0:00:08 76.0 2.84 15.1 0.0 ELAPSED WORST NEG TOTAL NEG DESIGN TIME AREA SLACK SLACK RULE COST ENDPOINT --------- --------- --------- --------- --------- ------------------------- 0:00:08 76.0 2.84 15.1 0.0 0:00:09 76.0 2.84 15.1 0.0 Beginning Area-Recovery Phase (max_area 0) ----------------------------- ELAPSED WORST NEG TOTAL NEG DESIGN TIME AREA SLACK SLACK RULE COST ENDPOINT --------- --------- --------- --------- --------- ------------------------- 0:00:09 76.0 2.84 15.1 0.0 Global Optimization (Phase 1) Global Optimization (Phase 2) Global Optimization (Phase 3) Global Optimization (Phase 4) Global Optimization (Phase 5) Global Optimization (Phase 1) Global Optimization (Phase 2) Global Optimization (Phase 3) Global Optimization (Phase 4) Global Optimization (Phase 5) Global Optimization (Phase 6) Global Optimization (Phase 7) Global Optimization (Phase 8) Global Optimization (Phase 9) Global Optimization (Phase 10) Global Optimization (Phase 11) Global Optimization (Phase 12) Global Optimization (Phase 13) Global Optimization (Phase 14) 0:00:09 72.0 2.84 14.8 0.0 0:00:09 72.0 2.84 14.8 0.0 0:00:09 76.0 2.84 14.6 0.0 0:00:09 76.0 2.84 14.6 0.0 0:00:09 76.0 2.84 14.6 0.0 0:00:09 76.0 2.84 14.6 0.0 0:00:09 76.0 2.84 14.6 0.0 0:00:09 76.0 2.84 14.6 0.0 0:00:09 76.0 2.84 14.6 0.0 0:00:09 76.0 2.84 14.6 0.0 0:00:09 76.0 2.84 14.6 0.0 0:00:09 76.0 2.84 14.6 0.0 Beginning Delay Optimization ---------------------------- 0:00:09 76.0 2.84 14.6 0.0 0:00:09 76.0 2.84 14.6 0.0 0:00:09 76.0 2.84 14.6 0.0 0:00:09 76.0 2.84 14.6 0.0 Beginning Delay Optimization ---------------------------- 0:00:09 76.0 2.84 14.6 0.0 0:00:09 76.0 2.84 14.6 0.0 0:00:09 76.0 2.84 14.6 0.0 0:00:09 76.0 2.84 14.6 0.0 Loading db file '/opt/synopsys/design_compiler/D-2010.03-SP3/libraries/syn/lsi_10k.db' Optimization Complete --------------------- 1 # Now that the compile is complete report on the results report_area Information: Updating graph... (UID-83) **************************************** Report : area Design : lsu_dcache_lfsr Version: D-2010.03-SP3 Date : Wed May 25 22:33:03 2011 **************************************** Information: Updating design information... (UID-85) Library(s) Used: lsi_10k (File: /opt/synopsys/design_compiler/D-2010.03-SP3/libraries/syn/lsi_10k.db) Number of ports: 8 Number of nets: 37 Number of cells: 29 Number of references: 15 Combinational area: 40.000000 Noncombinational area: 36.000000 Net Interconnect area: undefined (No wire load specified) Total cell area: 76.000000 Total area: undefined 1 report_timing **************************************** Report : timing -path full -delay max -max_paths 1 Design : lsu_dcache_lfsr Version: D-2010.03-SP3 Date : Wed May 25 22:33:03 2011 **************************************** Operating Conditions: Wire Load Model Mode: top Startpoint: lfsr_reg/q_reg[1] (rising edge-triggered flip-flop clocked by clk) Endpoint: lfsr_reg/q_reg[0] (rising edge-triggered flip-flop clocked by clk) Path Group: clk Path Type: max Point Incr Path ----------------------------------------------------------- clock clk (rise edge) 0.00 0.00 clock network delay (ideal) 0.00 0.00 lfsr_reg/q_reg[1]/CP (FD1) 0.00 0.00 r lfsr_reg/q_reg[1]/Q (FD1) 1.47 1.47 f U18/Z (ENP) 1.13 2.61 f U16/Z (AO6P) 0.93 3.54 r lfsr_reg/q_reg[0]/D (FD1) 0.00 3.54 r data arrival time 3.54 clock clk (rise edge) 1.50 1.50 clock network delay (ideal) 0.00 1.50 lfsr_reg/q_reg[0]/CP (FD1) 0.00 1.50 r library setup time -0.80 0.70 data required time 0.70 ----------------------------------------------------------- data required time 0.70 data arrival time -3.54 ----------------------------------------------------------- slack (VIOLATED) -2.84 Startpoint: lfsr_reg/q_reg[0] (rising edge-triggered flip-flop clocked by clk) Endpoint: out[1] (output port) Path Group: default Path Type: max Point Incr Path ----------------------------------------------------------- lfsr_reg/q_reg[0]/CP (FD1) 0.00 0.00 r lfsr_reg/q_reg[0]/Q (FD1) 1.42 1.42 f out[1] (out) 0.00 1.42 f data arrival time 1.42 max_delay 0.50 0.50 output external delay 0.00 0.50 data required time 0.50 ----------------------------------------------------------- data required time 0.50 data arrival time -1.42 ----------------------------------------------------------- slack (VIOLATED) -0.92 1 # Finally write the post synthesis netlist out to a verilog file write -f verilog lsu_dcache_lfsr -output lsu_dcache_lfsr_post_synth.v -hierarchy Writing verilog file '/home/inf2007/heleuthe/Desktop/p3/my_design/SRC/lsu_dcache_lfsr_post_synth.v'. 1 #Create .sdc file write_sdc lsu_dcache_lfsr.sdc 1 Information: Defining new variable 'dw_prefer_mc_inside'. (CMD-041) 1 dc_shell> dc_shell> Δεν κάνω exit γιατι μετα χρησιμοποιώ το gui_start για τα report. Eυχαριστώ για τον χρόνο σου.
Dr.Fuzzy Δημοσ. 29 Μαΐου 2011 Δημοσ. 29 Μαΐου 2011 Κοιτώντας το report πολύ γρήγορα έχεις ένα error: Error: Unable to open file `DFF_S.V': in search_path {. /opt/synopsys/design_compiler/D-2010.03-SP3/libraries/syn /opt/synopsys/design_compiler/D-2010.03-SP3/dw/syn_ver /opt/synopsys/design_compiler/D-2010.03-SP3/dw/sim_ver}. (VER-41) επίσης για προσπάθησε να το τρέξεις χωρίς ungroup και flatten all.
paranoid_gr Δημοσ. 29 Μαΐου 2011 Μέλος Δημοσ. 29 Μαΐου 2011 Aυτο το error είναι γιατι μετα η ανάλυση μου βγάζει οτι το Flip-flop δεν ειναι synchronous και εγώ θλεώ syncrhonous.
Dr.Fuzzy Δημοσ. 29 Μαΐου 2011 Δημοσ. 29 Μαΐου 2011 Aυτο το error είναι γιατι μετα η ανάλυση μου βγάζει οτι το Flip-flop δεν ειναι synchronous και εγώ θλεώ syncrhonous. Τι εννοείς δεν είναι synchronous, είναι latch, δεν έχω καταλάβει. Καλού κακού για κάνε post τη verilog να δω τι γίνεται.
paranoid_gr Δημοσ. 29 Μαΐου 2011 Μέλος Δημοσ. 29 Μαΐου 2011 Το διόρθωσα το error που λες.Ήθελε απλά να μετονομάσω το DFF_S.V σε dff_s.v και τώρα το τρέχει κανονικά το submodule.Και γενικώς διόρθωσα όλα τα errors. Δοκίμασα και αυτά που λες χωρίς ungroup και flatten και το αποτέλεσμα της σύνθεσης είναι το ίδιο. Kατέληξα στο συμπέρασμα οτι εκείνα τα warnings για τα pins που δεν είναι συνδεδεμένα σε nets είναι το προβλημα.Δοκίμασα με set_driving cells για all_inputs αλλα δεν μπορώ να τα συνδέσω.Αυτο δεν έπρεπε να το κάνει ο compiler απο μόνος του γτ ουσιαστικα αντιστοιχίζει την έξοδο των flip-flop και κάνει και ένα always block για το swap των bit. O verilog code του lfsr μαζί με το submodule είναι. /////////////////////////////////////////////////////////////////////////* // Module Name: lsu_dcache_lfsr */ //////////////////////////////////////////////////////////////////////// module lsu_dcache_lfsr (/*AUTOARG*/ // Outputs out, // Inputs advance, clk, se, si, so, reset ); input advance; input clk, se, si, so, reset; output [1:0] out; reg [4:0] q_next; wire [4:0] q; always @ (/*AUTOSENSE*/advance or q or reset) begin if (reset) q_next = 5'b11111; else if (advance) begin // lfsr -- stable at 000000, period of 63 q_next[1] = q[0]; q_next[2] = q[1]; q_next[3] = q[2]; q_next[4] = q[3]; q_next[0] = q[1] ^ q[4]; end else q_next = q; end // always @ (... assign out = {q[0], q[2]}; dff_s #(5) lfsr_reg(.din (q_next), .q (q), .clk (clk), .se(se), .si(), .so()); endmodule // lsu_dcache_lfsr // D FLIP FLOP!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // POSITVE-EDGE TRIGGERED FLOP with SCAN module dff_s (din, clk, q, se, si, so); // synopsys template parameter SIZE = 1; input [size-1:0] din ; // data in input clk ; // clk or scan clk output [size-1:0] q ; // output input se ; // scan-enable input [size-1:0] si ; // scan-input output [size-1:0] so ; // scan-output reg [size-1:0] q ; `ifdef NO_SCAN always @ (posedge clk) q[size-1:0] <= din[size-1:0] ; `else always @ (posedge clk) q[size-1:0] <= (se) ? si[size-1:0] : din[size-1:0] ; assign so[size-1:0] = q[size-1:0] ; `endif endmodule // dff_s
Dr.Fuzzy Δημοσ. 29 Μαΐου 2011 Δημοσ. 29 Μαΐου 2011 Το διόρθωσα το error που λες.Ήθελε απλά να μετονομάσω το DFF_S.V σε dff_s.v και τώρα το τρέχει κανονικά το submodule.Και γενικώς διόρθωσα όλα τα errors. Δοκίμασα και αυτά που λες χωρίς ungroup και flatten και το αποτέλεσμα της σύνθεσης είναι το ίδιο. Kατέληξα στο συμπέρασμα οτι εκείνα τα warnings για τα pins που δεν είναι συνδεδεμένα σε nets είναι το προβλημα.Δοκίμασα με set_driving cells για all_inputs αλλα δεν μπορώ να τα συνδέσω.Αυτο δεν έπρεπε να το κάνει ο compiler απο μόνος του γτ ουσιαστικα αντιστοιχίζει την έξοδο των flip-flop και κάνει και ένα always block για το swap των bit. O verilog code του lfsr μαζί με το submodule είναι. Πρόσεξε, με μια πολύ γρήγορη ματιά το παρακάτω είναι ασύγχρονη σχεδίαση! (με κάθε επιφύλαξη, δεν έχω αυτή τη στιγμή κάποιο εργαλείο σύνθεσης για να δοκιμάσω): always @ (/*AUTOSENSE*/advance or q or reset) καλύτερα να το αλλάξεις σε: always @ (posedge clk or negedge reset) // αν θες async reset // και να υλοποιήσεις μετά με if το advance or q ή always @ (posedge clk or negedge reset) // αν θες sync reset // και να υλοποιήσεις μετά με if το advance or q or reset
paranoid_gr Δημοσ. 30 Μαΐου 2011 Μέλος Δημοσ. 30 Μαΐου 2011 Οχι αυτο δεν γίνεται.Αυτοι είναι οι κώδικες απο την Sun.Δεν μπορώ να τους πειράξω.Καμιά άλλη ιδέα?
Dr.Fuzzy Δημοσ. 30 Μαΐου 2011 Δημοσ. 30 Μαΐου 2011 Οχι αυτο δεν γίνεται.Αυτοι είναι οι κώδικες απο την Sun.Δεν μπορώ να τους πειράξω.Καμιά άλλη ιδέα? Α ωραία... ...δοκίμασε τα εξής, ένα ένα: 1. > dff_s #(5) lfsr_reg(.din (q_next), .q (q), .clk (clk), .se(se), .si(), .so()); καντο > .si(si), .so(so)); 2. βάλε set_false_path τα paths που σου κάνει optimize για να μην τα συμπεριλάβει μέσα στο timing optimization.
paranoid_gr Δημοσ. 31 Μαΐου 2011 Μέλος Δημοσ. 31 Μαΐου 2011 Α ωραία... ...δοκίμασε τα εξής, ένα ένα: 1. > dff_s #(5) lfsr_reg(.din (q_next), .q (q), .clk (clk), .se(se), .si(), .so()); καντο > .si(si), .so(so)); Aυτό πρέπει να είναι.Γτ μετα θα κάνει αντιστοίχιση ανάμεσα στα pins και δεν θα μεινουν floating. 2. βάλε set_false_path τα paths που σου κάνει optimize για να μην τα συμπεριλάβει μέσα στο timing optimization. Είσαι σίγουρος??
Dr.Fuzzy Δημοσ. 31 Μαΐου 2011 Δημοσ. 31 Μαΐου 2011 Aυτό πρέπει να είναι.Γτ μετα θα κάνει αντιστοίχιση ανάμεσα στα pins και δεν θα μεινουν floating. Είσαι σίγουρος?? Είμαι για το 1. Το 2. δοκίμασε το μόνο αν δεν λυθεί με το 1.
paranoid_gr Δημοσ. 31 Μαΐου 2011 Μέλος Δημοσ. 31 Μαΐου 2011 Το 1 ήταν ένα πρόβλημα που πλέον διορθώθηκε και τώρα πλέον μου δίνει θετικό slack(αν και δεν είμαι οτι θέλω θετικό...Οπως δεν είμαι σίγουρος και για το αρνητικό :lol: ) dc_shell> report_timing**************************************** Report : timing -path full -delay max -max_paths 1 Design : lsu_dcache_lfsr Version: D-2010.03-SP3 Date : Tue May 31 18:27:40 2011 **************************************** Operating Conditions: Wire Load Model Mode: top Startpoint: lfsr_reg/q[2] (internal pin) Endpoint: out[0] (output port) Path Group: default Path Type: max Point Incr Path ----------------------------------------------------------- lfsr_reg/q[2] (dff_s) 0.00 0.00 r out[0] (out) 0.00 0.00 r data arrival time 0.00 max_delay 0.75 0.75 output external delay 0.00 0.75 data required time 0.75 ----------------------------------------------------------- data required time 0.75 data arrival time 0.00 ----------------------------------------------------------- slack (MET) 0.75 Aυτό που με προβληματίζει ειναι το data arrival time που μου δίνει 0.Γτ το 0.75 είναι αυτο που έχω δώσει εγώ με το set_max_delay to[all_outputs].Το set_false_path δεν είδα να κάνει και καμία διαφορά. Το πρόβλημα πλεόν νομίζω είναι πως να δώσω τιμές στα si,τα οποία είναι 5bit,δοκίμασα με set_drive αλλά εκει πρεπει να δώσω ή 0 ή 1,που είναι και unstable καταστάσεις.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.