summaryrefslogtreecommitdiff
path: root/tcl/init.tcl
blob: 4e4660dcf60de73cd67c555d9bced041dd710566 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
project_new pdp8 -revision pdp8 -overwrite

set_global_assignment -name DEVICE 10CL025YU256I7G

set_global_assignment -name TOP_LEVEL_ENTITY top
set_global_assignment -name VERILOG_INPUT_VERSION SYSTEMVERILOG_2005
set_global_assignment -name VERILOG_MACRO "SYNTHESIS=1"
#set_global_assignment -name VERILOG_MACRO "NO_L1_CACHE=1"
set_global_assignment -name NUM_PARALLEL_PROCESSORS 1
set_global_assignment -name ENABLE_SIGNALTAP OFF

proc pin {net loc} {
    set_location_assignment -to $net "PIN_$loc"
    set_instance_assignment -name IO_STANDARD "3.3V LVTTL" -to $net
}

proc iopin {net loc} {
    pin $net $loc
    set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to $net
}

proc rampin {net loc} {
    set_location_assignment -to $net "PIN_$loc"
    set_instance_assignment -name IO_STANDARD "1.8V" -to $net
}

pin clock   E1

iopin resetn    J15

iopin gpioa[1]      L13
iopin gpioa[2]      L16
iopin gpioa[3]      L15
iopin gpioa[4]      K16
iopin gpioa[5]      P16
iopin gpioa[6]      R16
iopin gpioa[7]      N16
iopin gpioa[8]      N15
iopin gpioa[9]      N14
iopin gpioa[10]     P15
iopin gpiob[13]     N8
iopin gpiob[14]     P8
iopin gpiob[15]     M8
iopin gpiob[16]     L8
iopin gpiob[17]     R7
iopin gpiob[18]     T7
iopin gpiob[19]     L7
iopin gpiob[20]     M7
iopin gpiob[21]     R6
iopin gpiob[22]     T6
iopin gpiob[23]     T2
iopin gpiob[24]     M6
iopin gpiob[25]     R5
iopin gpiob[26]     T5
iopin gpiob[27]     N5
iopin gpiob[28]     N6
iopin gpioc[31]     R4
iopin gpioc[32]     T4
iopin gpioc[33]     N3
iopin gpioc[34]     P3
iopin gpioc[35]     R3
iopin gpioc[36]     T3
iopin gpioc[37]     P6
iopin gpioc[38]     P2
iopin gpioc[39]     P1
iopin gpioc[40]     R1

# Arduino shield pins: (seen from top)
#
# https://upload.wikimedia.org/wikipedia/commons/c/c9/Pinout_of_ARDUINO_Board_and_ATMega328PU.svg
#
#                SCL
#                SDA
#               AREF
#                GND
# NC              13
# IOREF           12
# RESET           11
# 3.3V            10
# 5V               9
# GND              8
# GND
# VIN              7
#                  6
# A0               5
# A1               4
# A2               3
# A3               2
# A4               1(RX)
# A5               0(TX)
#
# Equivalent FPGA pins:
#
#               N2 or D8 (?)
#               N1 or C8 (?)
#               -
#               GND
# -             L1
# -             L2
# L3            K1
# 3.3V          L4
# 5V            K5
# GND           K2
# GND
# -             J1
#               J2
# -             G1
# -             G2
# -             D1
# -             F3
# -             C2
# -             B1

pin rs232_txd   B1
pin rs232_rxd   C2
pin rs232_rts   F3
pin rs232_cts   D1

pin debug_rx    K2
pin debug_tx    K5

rampin ram_data[0]  T12
rampin ram_data[1]  T13
rampin ram_data[2]  T11
rampin ram_data[3]  R10
rampin ram_data[4]  T10
rampin ram_data[5]  R11
rampin ram_data[6]  R12
rampin ram_data[7]  R13
rampin ram_csn      P9
rampin ram_rwds     T14
rampin ram_clkp     P14
rampin ram_clkn     R14
rampin ram_resetn   N9

# This is the clock for timing-driven synthesis, not timing analysis.
# See clocks.sdf for the other clock.
create_base_clock -fmax "50 MHz" clock

proc add_files {typ ext dir} {
    foreach name [glob -nocomplain -directory $dir -type f "*.$ext"] {
        set_global_assignment -name "${typ}_FILE" $name
    }
}

proc add_dir {dir} {
    add_files CDF cdf $dir
    add_files HEX hex $dir
    add_files SDC sdc $dir
    add_files USE_SIGNALTAP stp $dir
    add_files SIGNALTAP stp $dir
    add_files VERILOG sv $dir
    add_files VERILOG svh $dir

    foreach subdir [glob -nocomplain -directory $dir -type d *] {
        add_dir $subdir
    }
}

add_dir .

project_close