OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [rel_1/] [or1200/] [syn/] [scr/] [top_cpu.scr] - Blame information for rev 1780

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 159 lampret
/*
2
 * User defines for synthesizing CPU
3
 *
4
 */
5
TOPLEVEL = cpu
6
include select_tech.inc
7
CLK = clk
8
RST = rst
9
CLK_PERIOD = 2.25       /* 444 MHz */
10
MAX_AREA = 0            /* Push hard */
11
DO_UNGROUP = yes        /* yes, no */
12
DO_VERIFY = no          /* yes, no */
13
RAMS = art_rams18       /* fake, art_rams18 */
14
 
15
/* Starting timestamp */
16
sh date
17
 
18
/* Set some basic variables related to environment */
19
include set_env.inc
20
STAGE = initial
21
 
22
/* Load libraries */
23
include tech_ + TECH + .inc
24
 
25
/* Load RAMs */
26
if (RAMS == "art_rams18") {
27
        include tech_art_rams18.inc
28
} else if (RAMS == "fake") {
29
        include read_fake_rams.inc
30
} else {
31
        echo "Unsupported RAMs"
32
        exit
33
}
34
 
35
/* Load HDL source files */
36
include read_design.inc         > LOG_PATH + read_design_ + TOPLEVEL + .log
37
 
38
/* Set design top */
39
current_design TOPLEVEL
40
 
41
/* Link all blocks and uniquify them */
42
link
43
uniquify
44
check_design                    > LOG_PATH + check_design_ + TOPLEVEL + .log
45
 
46
/* Apply constraints */
47
if (TECH == "vs_umc18") {
48
        include cons_vs_umc18.inc
49
} else if (TECH == "art_umc18") {
50
        include cons_art_umc18.inc
51
} else {
52
        echo "Error: Unsupported technology"
53
        exit
54
}
55
 
56
/* Transform arithmetics */
57
transform_csa -group
58
 
59
/* Don't touch multp2_32x32 */
60
set_dont_touch multp2_32x32
61
 
62
/* Lets do basic synthesis */
63
if (DO_UNGROUP == "yes") {
64
        ungroup -all
65
}
66
compile -boundary_optimization -ungroup_all -map_effort medium
67
 
68
/* Generate reports for basic synthesis */
69
include reports.inc
70
 
71
/* Dump gate-level from basic synthesis */
72
include save_design.inc
73
 
74
/* Remove dont_touch from multp2_32x32 */
75
remove_attribute multp2_32x32 dont_touch
76
 
77
/* Advance to incremental synthesis, push hard */
78
STAGE = incremental
79
compile -incremental -boundary_optimization -ungroup_all -map_effort high
80
 
81
/* Optimize registers */
82
optimize_registers
83
 
84
/* Dump gate-level from incremental synthesis */
85
include save_design.inc
86
 
87
/* Generate reports for incremental synthesis */
88
include reports.inc
89
 
90
/* Set area constraint */
91
STAGE = final
92
set_max_area MAX_AREA
93
compile -incremental -boundary_optimization -auto_ungroup -map_effort medium
94
 
95
/* Dump gate-level from final synthesis */
96
include save_design.inc
97
 
98
/* Generate reports for final synthesis */
99
include reports.inc
100
 
101
/* Verify design */
102
if (DO_VERIFY == "yes") {
103
        compile -no_map -verify         > LOG_PATH + verify_ + TOPLEVEL + .log
104
}
105
 
106
/* Finish */
107
sh date
108
exit
109
 
110
 
111
 
112
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.