next up previous contents
Next: D C Source Code Up: C Tutorial: Using VHDL for FPGAs Previous: C.3 vhdl-syn.h

C.4 boris.dcsh

 

/***********************************************
** boris.dcsh
** Scott Harrington
** Synopsys Design Compiler script
** execute with dc_shell -f boris.dcsh
*/

/* These variables have tended to change from version to version.
** Check the current Xilinx/Synopsys Interface manual.
** These work for Xilinx 5.1.0 and Synopsys 3.2b tools.
*/
search_path = {. \
        /opt/digital/share/xilinx3/xact/synopsys/libraries/syn \
        /opt/digital/synopsys3.2b/libraries/syn}

link_library = {xprim_3042-50.db xprim_3000-50.db \
        xgen_3000.db xdc_3000-50.db}

target_library = {xprim_3042-50.db xprim_3000-50.db \
        xgen_3000.db xdc_3000-50.db}

symbol_library = xc3000.sdb

define_design_lib WORK -path ./WORK

compile_fix_multiple_port_nets = true

/* These variables make the SEDIF output file work with Xilinx XMAKE */
bus_naming_style = "%s<%d>"
bus_dimension_separator_style = "><"
bus_inference_style = "%s<%d>"
edifout_netlist_only = true
edifout_power_and_ground_representation = cell
edifout_write_properties_list = "instance_number port_location part"

designer = "Scott Harrington"
company = "Duke EE"
TOP = "boris"

/* Read the VHDL source for each module in the project */

analyze -format vhdl pointers.vhd
elaborate pointers

analyze -format vhdl natasha.vhd
elaborate natasha

analyze -format vhdl boris.vhd
elaborate boris

current_design TOP

/* Other compilation and constraint options are available.
** Read the latest Xilinx/Synopsys Interface manual.
*/
set_operating_conditions WCCOM
set_wire_load "3042-50_avg"
set_port_is_pad "*"
set_pad_type -slewrate high all_outputs()

/* This command looks at the top VHDL module's ports and attaches
** IPAD, OPAD, or IOPAD blocks as necessary.
*/
insert_pads 

remove_constraint -all

create_clock "Clk" -period 100
uniquify 

/* Compile the design to Xilinx technology.
** boundary_optimization allows reductions across VHDL processes
*/

compile -ungroup_all -boundary_optimization 

/* Write some statistics to disk files */
report_area > TOP + ".area"
report_timing > TOP + ".timing"

set_attribute TOP "part" -type string "3042pc84-50"

write -format db -hierarchy -output TOP + ".db"

xnfout_library_version = "5.0.0"
write -format edif -hierarchy -output TOP + ".sedif"

exit


Scott E. Harrington
Sat Apr 29 18:56:25 EDT 1995