Προς το περιεχόμενο

Synopsys Design compiler-Πρόβλημα


paranoid_gr

Προτεινόμενες αναρτήσεις

Δημοσ.

Έχω να κάνω μια προσωμοίωση με τον 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?

 

Ευχαριστώ

Δημοσ.

Έχω να κάνω μια προσωμοίωση με τον Design compiler της Synopsys και έχω ένα πρόβλημα με τα τα pins(input και output) απο τα d flip-flop.Tην προσωμοίωση την κάνω πάνω σε ένα dcache_lfsr.Το warning που μου βγαζει το simulation είναι το εξής:

 

 

 

Μήπως ξέρει κανείς πως να συνδέσω τα pins?

 

Ευχαριστώ

 

Κοίτα, σου λέει ότι στη σύνθεση που κάνεις μέρος της λογικής (μάλλον redundant, αν όλα είναι σωστά) γίνεται optimized με αποτέλεσμα τα pins αυτά να μην έχουν νόημα οπότε για να μην είναι floating τα καρφώνει σε λογικό 0.

Δημοσ.

Άμα καρφώνει κατευθείαν 0 τότε σημαίνει οτι δεν κάνει το shift o register και η έξοδος μου ειναι οι εξόδους των flip-flip 0 και 4(σύμφωνα με τον verilog κώδικα).Και το κρισιμο μονοπατι παει κατευθείαν απο την είσοδο στα 2 dff και μετα στις εξόδους(2bit έξοδος) και το slack είναι αρνητικό.Σωστό σύμφωνα με τα δεδομένα...

 

Έχω κάνει ενα script που τρέχω με τις εντολές για τον compiler.Mήπως θα μπορούσες να το κοιτάξεις?

Δημοσ.

Άμα καρφώνει κατευθείαν 0 τότε σημαίνει οτι δεν κάνει το shift o register και η έξοδος μου ειναι οι εξόδους των flip-flip 0 και 4(σύμφωνα με τον verilog κώδικα).Και το κρισιμο μονοπατι παει κατευθείαν απο την είσοδο στα 2 dff και μετα στις εξόδους(2bit έξοδος) και το slack είναι αρνητικό.Σωστό σύμφωνα με τα δεδομένα...

 

Έχω κάνει ενα script που τρέχω με τις εντολές για τον compiler.Mήπως θα μπορούσες να το κοιτάξεις?

 

Για κάντο post να του ρίξω μια ματιά.

Δημοσ.

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υχαριστώ για τον χρόνο σου.

Δημοσ.

Κοιτώντας το 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.

Δημοσ.

Aυτο το error είναι γιατι μετα η ανάλυση μου βγάζει οτι το Flip-flop δεν ειναι synchronous και εγώ θλεώ syncrhonous.

 

Τι εννοείς δεν είναι synchronous, είναι latch, δεν έχω καταλάβει. Καλού κακού για κάνε post τη verilog να δω τι γίνεται.

Δημοσ.

Το διόρθωσα το 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

 

Δημοσ.

Το διόρθωσα το 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

Δημοσ.

Οχι αυτο δεν γίνεται.Αυτοι είναι οι κώδικες απο την Sun.Δεν μπορώ να τους πειράξω.Καμιά άλλη ιδέα?

 

Α ωραία...:mad:

 

...δοκίμασε τα εξής, ένα ένα:

 

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.

Δημοσ.

Α ωραία...:mad:

 

...δοκίμασε τα εξής, ένα ένα:

 

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.

 

Είσαι σίγουρος??

Δημοσ.

Aυτό πρέπει να είναι.Γτ μετα θα κάνει αντιστοίχιση ανάμεσα στα pins και δεν θα μεινουν floating.

 

 

Είσαι σίγουρος??

 

Είμαι για το 1.

Το 2. δοκίμασε το μόνο αν δεν λυθεί με το 1.

Δημοσ.

Το 1 ήταν ένα πρόβλημα που πλέον διορθώθηκε και τώρα πλέον μου δίνει θετικό slack(αν και δεν είμαι οτι θέλω θετικό...Οπως δεν είμαι σίγουρος και για το αρνητικό :confused: :lol: :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 καταστάσεις.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...