reggae_eda 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: d6797ae44568ddca7bcff5383cdedc84307c4f1bdb69728de72891e17d9197db
4
+ data.tar.gz: cfef7c0cd1dc0e6e162c32bb180623973c8cf34adb4f7c6c0c2c8fee03102d03
5
+ SHA512:
6
+ metadata.gz: f3b92c0ac2ab91a693062c76f006182fe06d9510f166402a44431bccf44da9d82ab7b2edd1c352060d686eb1074be455c02887a4b3382572d944e2fc679b39c9
7
+ data.tar.gz: 0abe3380b547362a9f6d37e02932cf78d4b3c7b527e48bdb04495659ed175a2f6480202aedf223f2c026ecb6df5e7f009aacf26f420446b980a3663f0162eee4
@@ -0,0 +1,255 @@
1
+ ## This file is a general .xdc for the Nexys4 DDR Rev. C
2
+ ## To use it in a project:
3
+ ## - uncomment the lines corresponding to used pins
4
+ ## - rename the used ports (in each line, after get_ports) according to the top level signal names in the project
5
+
6
+ ## Clock signal
7
+
8
+ set_property -dict { PACKAGE_PIN E3 IOSTANDARD LVCMOS33 } [get_ports { clk }]; #IO_L12P_T1_MRCC_35 Sch=clk100mhz
9
+ create_clock -add -name clk -period 10.00 -waveform {0 5} [get_ports {clk}];
10
+
11
+
12
+ ##Switches
13
+
14
+ set_property -dict { PACKAGE_PIN J15 IOSTANDARD LVCMOS33 } [get_ports { reset_n }]; #IO_L24N_T3_RS0_15 Sch=sw[0]
15
+ # set_property -dict { PACKAGE_PIN L16 IOSTANDARD LVCMOS33 } [get_ports { switches[1] }]; #IO_L3N_T0_DQS_EMCCLK_14 Sch=sw[1]
16
+ # set_property -dict { PACKAGE_PIN M13 IOSTANDARD LVCMOS33 } [get_ports { switches[2] }]; #IO_L6N_T0_D08_VREF_14 Sch=sw[2]
17
+ # set_property -dict { PACKAGE_PIN R15 IOSTANDARD LVCMOS33 } [get_ports { switches[3] }]; #IO_L13N_T2_MRCC_14 Sch=sw[3]
18
+ # set_property -dict { PACKAGE_PIN R17 IOSTANDARD LVCMOS33 } [get_ports { switches[4] }]; #IO_L12N_T1_MRCC_14 Sch=sw[4]
19
+ # set_property -dict { PACKAGE_PIN T18 IOSTANDARD LVCMOS33 } [get_ports { switches[5] }]; #IO_L7N_T1_D10_14 Sch=sw[5]
20
+ # set_property -dict { PACKAGE_PIN U18 IOSTANDARD LVCMOS33 } [get_ports { switches[6] }]; #IO_L17N_T2_A13_D29_14 Sch=sw[6]
21
+ # set_property -dict { PACKAGE_PIN R13 IOSTANDARD LVCMOS33 } [get_ports { switches[7] }]; #IO_L5N_T0_D07_14 Sch=sw[7]
22
+ # set_property -dict { PACKAGE_PIN T8 IOSTANDARD LVCMOS18 } [get_ports { switches[8] }]; #IO_L24N_T3_34 Sch=sw[8]
23
+ # set_property -dict { PACKAGE_PIN U8 IOSTANDARD LVCMOS18 } [get_ports { switches[9] }]; #IO_25_34 Sch=sw[9]
24
+ # set_property -dict { PACKAGE_PIN R16 IOSTANDARD LVCMOS33 } [get_ports { switches[10] }]; #IO_L15P_T2_DQS_RDWR_B_14 Sch=sw[10]
25
+ # set_property -dict { PACKAGE_PIN T13 IOSTANDARD LVCMOS33 } [get_ports { switches[11] }]; #IO_L23P_T3_A03_D19_14 Sch=sw[11]
26
+ # set_property -dict { PACKAGE_PIN H6 IOSTANDARD LVCMOS33 } [get_ports { switches[12] }]; #IO_L24P_T3_35 Sch=sw[12]
27
+ # set_property -dict { PACKAGE_PIN U12 IOSTANDARD LVCMOS33 } [get_ports { switches[13] }]; #IO_L20P_T3_A08_D24_14 Sch=sw[13]
28
+ # set_property -dict { PACKAGE_PIN U11 IOSTANDARD LVCMOS33 } [get_ports { switches[14] }]; #IO_L19N_T3_A09_D25_VREF_14 Sch=sw[14]
29
+ # set_property -dict { PACKAGE_PIN V10 IOSTANDARD LVCMOS33 } [get_ports { switches[15] }]; #IO_L21P_T3_DQS_14 Sch=sw[15]
30
+
31
+
32
+ ## LEDs
33
+
34
+ set_property -dict { PACKAGE_PIN H17 IOSTANDARD LVCMOS33 } [get_ports { leds[0] }]; #IO_L18P_T2_A24_15 Sch=led[0]
35
+ set_property -dict { PACKAGE_PIN K15 IOSTANDARD LVCMOS33 } [get_ports { leds[1] }]; #IO_L24P_T3_RS1_15 Sch=led[1]
36
+ set_property -dict { PACKAGE_PIN J13 IOSTANDARD LVCMOS33 } [get_ports { leds[2] }]; #IO_L17N_T2_A25_15 Sch=led[2]
37
+ set_property -dict { PACKAGE_PIN N14 IOSTANDARD LVCMOS33 } [get_ports { leds[3] }]; #IO_L8P_T1_D11_14 Sch=led[3]
38
+ set_property -dict { PACKAGE_PIN R18 IOSTANDARD LVCMOS33 } [get_ports { leds[4] }]; #IO_L7P_T1_D09_14 Sch=led[4]
39
+ set_property -dict { PACKAGE_PIN V17 IOSTANDARD LVCMOS33 } [get_ports { leds[5] }]; #IO_L18N_T2_A11_D27_14 Sch=led[5]
40
+ set_property -dict { PACKAGE_PIN U17 IOSTANDARD LVCMOS33 } [get_ports { leds[6] }]; #IO_L17P_T2_A14_D30_14 Sch=led[6]
41
+ set_property -dict { PACKAGE_PIN U16 IOSTANDARD LVCMOS33 } [get_ports { leds[7] }]; #IO_L18P_T2_A12_D28_14 Sch=led[7]
42
+ set_property -dict { PACKAGE_PIN V16 IOSTANDARD LVCMOS33 } [get_ports { leds[8] }]; #IO_L16N_T2_A15_D31_14 Sch=led[8]
43
+ set_property -dict { PACKAGE_PIN T15 IOSTANDARD LVCMOS33 } [get_ports { leds[9] }]; #IO_L14N_T2_SRCC_14 Sch=led[9]
44
+ set_property -dict { PACKAGE_PIN U14 IOSTANDARD LVCMOS33 } [get_ports { leds[10] }]; #IO_L22P_T3_A05_D21_14 Sch=led[10]
45
+ set_property -dict { PACKAGE_PIN T16 IOSTANDARD LVCMOS33 } [get_ports { leds[11] }]; #IO_L15N_T2_DQS_DOUT_CSO_B_14 Sch=led[11]
46
+ set_property -dict { PACKAGE_PIN V15 IOSTANDARD LVCMOS33 } [get_ports { leds[12] }]; #IO_L16P_T2_CSI_B_14 Sch=led[12]
47
+ set_property -dict { PACKAGE_PIN V14 IOSTANDARD LVCMOS33 } [get_ports { leds[13] }]; #IO_L22N_T3_A04_D20_14 Sch=led[13]
48
+ set_property -dict { PACKAGE_PIN V12 IOSTANDARD LVCMOS33 } [get_ports { leds[14] }]; #IO_L20N_T3_A07_D23_14 Sch=led[14]
49
+ set_property -dict { PACKAGE_PIN V11 IOSTANDARD LVCMOS33 } [get_ports { leds[15] }]; #IO_L21N_T3_DQS_A06_D22_14 Sch=led[15]
50
+
51
+ #set_property -dict { PACKAGE_PIN R12 IOSTANDARD LVCMOS33 } [get_ports { LED16_B }]; #IO_L5P_T0_D06_14 Sch=led16_b
52
+ #set_property -dict { PACKAGE_PIN M16 IOSTANDARD LVCMOS33 } [get_ports { LED16_G }]; #IO_L10P_T1_D14_14 Sch=led16_g
53
+ #set_property -dict { PACKAGE_PIN N15 IOSTANDARD LVCMOS33 } [get_ports { LED16_R }]; #IO_L11P_T1_SRCC_14 Sch=led16_r
54
+ #set_property -dict { PACKAGE_PIN G14 IOSTANDARD LVCMOS33 } [get_ports { LED17_B }]; #IO_L15N_T2_DQS_ADV_B_15 Sch=led17_b
55
+ #set_property -dict { PACKAGE_PIN R11 IOSTANDARD LVCMOS33 } [get_ports { LED17_G }]; #IO_0_14 Sch=led17_g
56
+ #set_property -dict { PACKAGE_PIN N16 IOSTANDARD LVCMOS33 } [get_ports { LED17_R }]; #IO_L11N_T1_SRCC_14 Sch=led17_r
57
+
58
+
59
+ ##7 segment display
60
+
61
+ # set_property -dict { PACKAGE_PIN T10 IOSTANDARD LVCMOS33 } [get_ports { segments[0] }]; #IO_L24N_T3_A00_D16_14 Sch=ca
62
+ # set_property -dict { PACKAGE_PIN R10 IOSTANDARD LVCMOS33 } [get_ports { segments[1] }]; #IO_25_14 Sch=cb
63
+ # set_property -dict { PACKAGE_PIN K16 IOSTANDARD LVCMOS33 } [get_ports { segments[2] }]; #IO_25_15 Sch=cc
64
+ # set_property -dict { PACKAGE_PIN K13 IOSTANDARD LVCMOS33 } [get_ports { segments[3] }]; #IO_L17P_T2_A26_15 Sch=cd
65
+ # set_property -dict { PACKAGE_PIN P15 IOSTANDARD LVCMOS33 } [get_ports { segments[4] }]; #IO_L13P_T2_MRCC_14 Sch=ce
66
+ # set_property -dict { PACKAGE_PIN T11 IOSTANDARD LVCMOS33 } [get_ports { segments[5] }]; #IO_L19P_T3_A10_D26_14 Sch=cf
67
+ # set_property -dict { PACKAGE_PIN L18 IOSTANDARD LVCMOS33 } [get_ports { segments[6] }]; #IO_L4P_T0_D04_14 Sch=cg
68
+
69
+ #set_property -dict { PACKAGE_PIN H15 IOSTANDARD LVCMOS33 } [get_ports { DP }]; #IO_L19N_T3_A21_VREF_15 Sch=dp
70
+
71
+ # 4 x 7-segments NEEDED
72
+ # set_property -dict { PACKAGE_PIN J17 IOSTANDARD LVCMOS33 } [get_ports { anodes[0] }]; #IO_L23P_T3_FOE_B_15 Sch=an[0]
73
+ # set_property -dict { PACKAGE_PIN J18 IOSTANDARD LVCMOS33 } [get_ports { anodes[1] }]; #IO_L23N_T3_FWE_B_15 Sch=an[1]
74
+ # set_property -dict { PACKAGE_PIN T9 IOSTANDARD LVCMOS33 } [get_ports { anodes[2] }]; #IO_L24P_T3_A01_D17_14 Sch=an[2]
75
+ # set_property -dict { PACKAGE_PIN J14 IOSTANDARD LVCMOS33 } [get_ports { anodes[3] }]; #IO_L19P_T3_A22_15 Sch=an[3]
76
+ # set_property -dict { PACKAGE_PIN P14 IOSTANDARD LVCMOS33 } [get_ports { anodes[4] }]; #IO_L8N_T1_D12_14 Sch=an[4]
77
+ # set_property -dict { PACKAGE_PIN T14 IOSTANDARD LVCMOS33 } [get_ports { anodes[5] }]; #IO_L14P_T2_SRCC_14 Sch=an[5]
78
+ # set_property -dict { PACKAGE_PIN K2 IOSTANDARD LVCMOS33 } [get_ports { anodes[6] }]; #IO_L23P_T3_35 Sch=an[6]
79
+ # set_property -dict { PACKAGE_PIN U13 IOSTANDARD LVCMOS33 } [get_ports { anodes[7] }]; #IO_L23N_T3_A02_D18_14 Sch=an[7]
80
+
81
+ ##Buttons
82
+
83
+ #set_property -dict { PACKAGE_PIN C12 IOSTANDARD LVCMOS33 } [get_ports { reset_n }]; #IO_L3P_T0_DQS_AD1P_15 Sch=cpu_resetn
84
+
85
+ #set_property -dict { PACKAGE_PIN N17 IOSTANDARD LVCMOS33 } [get_ports { BTNC }]; #IO_L9P_T1_DQS_14 Sch=btnc
86
+ #set_property -dict { PACKAGE_PIN M18 IOSTANDARD LVCMOS33 } [get_ports { BTNU }]; #IO_L4N_T0_D05_14 Sch=btnu
87
+ #set_property -dict { PACKAGE_PIN P17 IOSTANDARD LVCMOS33 } [get_ports { BTNL }]; #IO_L12P_T1_MRCC_14 Sch=btnl
88
+ #set_property -dict { PACKAGE_PIN M17 IOSTANDARD LVCMOS33 } [get_ports { BTNR }]; #IO_L10N_T1_D15_14 Sch=btnr
89
+
90
+ #set_property -dict { PACKAGE_PIN P18 IOSTANDARD LVCMOS33 } [get_ports { BTND }]; #IO_L9N_T1_DQS_D13_14 Sch=btnd
91
+
92
+
93
+ ##Pmod Headers
94
+
95
+
96
+ ##Pmod Header JA
97
+
98
+ #set_property -dict { PACKAGE_PIN C17 IOSTANDARD LVCMOS33 } [get_ports { JA[1] }]; #IO_L20N_T3_A19_15 Sch=ja[1]
99
+ #set_property -dict { PACKAGE_PIN D18 IOSTANDARD LVCMOS33 } [get_ports { JA[2] }]; #IO_L21N_T3_DQS_A18_15 Sch=ja[2]
100
+ #set_property -dict { PACKAGE_PIN E18 IOSTANDARD LVCMOS33 } [get_ports { JA[3] }]; #IO_L21P_T3_DQS_15 Sch=ja[3]
101
+ #set_property -dict { PACKAGE_PIN G17 IOSTANDARD LVCMOS33 } [get_ports { JA[4] }]; #IO_L18N_T2_A23_15 Sch=ja[4]
102
+ #set_property -dict { PACKAGE_PIN D17 IOSTANDARD LVCMOS33 } [get_ports { JA[7] }]; #IO_L16N_T2_A27_15 Sch=ja[7]
103
+ #set_property -dict { PACKAGE_PIN E17 IOSTANDARD LVCMOS33 } [get_ports { JA[8] }]; #IO_L16P_T2_A28_15 Sch=ja[8]
104
+ #set_property -dict { PACKAGE_PIN F18 IOSTANDARD LVCMOS33 } [get_ports { JA[9] }]; #IO_L22N_T3_A16_15 Sch=ja[9]
105
+ #set_property -dict { PACKAGE_PIN G18 IOSTANDARD LVCMOS33 } [get_ports { JA[10] }]; #IO_L22P_T3_A17_15 Sch=ja[10]
106
+
107
+
108
+ ##Pmod Header JB
109
+
110
+ #set_property -dict { PACKAGE_PIN D14 IOSTANDARD LVCMOS33 } [get_ports { JB[1] }]; #IO_L1P_T0_AD0P_15 Sch=jb[1]
111
+ #set_property -dict { PACKAGE_PIN F16 IOSTANDARD LVCMOS33 } [get_ports { JB[2] }]; #IO_L14N_T2_SRCC_15 Sch=jb[2]
112
+ #set_property -dict { PACKAGE_PIN G16 IOSTANDARD LVCMOS33 } [get_ports { JB[3] }]; #IO_L13N_T2_MRCC_15 Sch=jb[3]
113
+ #set_property -dict { PACKAGE_PIN H14 IOSTANDARD LVCMOS33 } [get_ports { JB[4] }]; #IO_L15P_T2_DQS_15 Sch=jb[4]
114
+ #set_property -dict { PACKAGE_PIN E16 IOSTANDARD LVCMOS33 } [get_ports { JB[7] }]; #IO_L11N_T1_SRCC_15 Sch=jb[7]
115
+ #set_property -dict { PACKAGE_PIN F13 IOSTANDARD LVCMOS33 } [get_ports { JB[8] }]; #IO_L5P_T0_AD9P_15 Sch=jb[8]
116
+ #set_property -dict { PACKAGE_PIN G13 IOSTANDARD LVCMOS33 } [get_ports { JB[9] }]; #IO_0_15 Sch=jb[9]
117
+ #set_property -dict { PACKAGE_PIN H16 IOSTANDARD LVCMOS33 } [get_ports { JB[10] }]; #IO_L13P_T2_MRCC_15 Sch=jb[10]
118
+
119
+
120
+ ##Pmod Header JC
121
+
122
+ #set_property -dict { PACKAGE_PIN K1 IOSTANDARD LVCMOS33 } [get_ports { JC[1] }]; #IO_L23N_T3_35 Sch=jc[1]
123
+ #set_property -dict { PACKAGE_PIN F6 IOSTANDARD LVCMOS33 } [get_ports { JC[2] }]; #IO_L19N_T3_VREF_35 Sch=jc[2]
124
+ #set_property -dict { PACKAGE_PIN J2 IOSTANDARD LVCMOS33 } [get_ports { JC[3] }]; #IO_L22N_T3_35 Sch=jc[3]
125
+ #set_property -dict { PACKAGE_PIN G6 IOSTANDARD LVCMOS33 } [get_ports { JC[4] }]; #IO_L19P_T3_35 Sch=jc[4]
126
+ #set_property -dict { PACKAGE_PIN E7 IOSTANDARD LVCMOS33 } [get_ports { JC[7] }]; #IO_L6P_T0_35 Sch=jc[7]
127
+ #set_property -dict { PACKAGE_PIN J3 IOSTANDARD LVCMOS33 } [get_ports { JC[8] }]; #IO_L22P_T3_35 Sch=jc[8]
128
+ #set_property -dict { PACKAGE_PIN J4 IOSTANDARD LVCMOS33 } [get_ports { JC[9] }]; #IO_L21P_T3_DQS_35 Sch=jc[9]
129
+ #set_property -dict { PACKAGE_PIN E6 IOSTANDARD LVCMOS33 } [get_ports { JC[10] }]; #IO_L5P_T0_AD13P_35 Sch=jc[10]
130
+
131
+
132
+ ##Pmod Header JD
133
+
134
+ #set_property -dict { PACKAGE_PIN H4 IOSTANDARD LVCMOS33 } [get_ports { JD[1] }]; #IO_L21N_T3_DQS_35 Sch=jd[1]
135
+ #set_property -dict { PACKAGE_PIN H1 IOSTANDARD LVCMOS33 } [get_ports { JD[2] }]; #IO_L17P_T2_35 Sch=jd[2]
136
+ #set_property -dict { PACKAGE_PIN G1 IOSTANDARD LVCMOS33 } [get_ports { JD[3] }]; #IO_L17N_T2_35 Sch=jd[3]
137
+ #set_property -dict { PACKAGE_PIN G3 IOSTANDARD LVCMOS33 } [get_ports { JD[4] }]; #IO_L20N_T3_35 Sch=jd[4]
138
+ #set_property -dict { PACKAGE_PIN H2 IOSTANDARD LVCMOS33 } [get_ports { JD[7] }]; #IO_L15P_T2_DQS_35 Sch=jd[7]
139
+ #set_property -dict { PACKAGE_PIN G4 IOSTANDARD LVCMOS33 } [get_ports { JD[8] }]; #IO_L20P_T3_35 Sch=jd[8]
140
+ #set_property -dict { PACKAGE_PIN G2 IOSTANDARD LVCMOS33 } [get_ports { JD[9] }]; #IO_L15N_T2_DQS_35 Sch=jd[9]
141
+ #set_property -dict { PACKAGE_PIN F3 IOSTANDARD LVCMOS33 } [get_ports { JD[10] }]; #IO_L13N_T2_MRCC_35 Sch=jd[10]
142
+
143
+
144
+ ##Pmod Header JXADC
145
+
146
+ #set_property -dict { PACKAGE_PIN A14 IOSTANDARD LVDS } [get_ports { XA_N[1] }]; #IO_L9N_T1_DQS_AD3N_15 Sch=xa_n[1]
147
+ #set_property -dict { PACKAGE_PIN A13 IOSTANDARD LVDS } [get_ports { XA_P[1] }]; #IO_L9P_T1_DQS_AD3P_15 Sch=xa_p[1]
148
+ #set_property -dict { PACKAGE_PIN A16 IOSTANDARD LVDS } [get_ports { XA_N[2] }]; #IO_L8N_T1_AD10N_15 Sch=xa_n[2]
149
+ #set_property -dict { PACKAGE_PIN A15 IOSTANDARD LVDS } [get_ports { XA_P[2] }]; #IO_L8P_T1_AD10P_15 Sch=xa_p[2]
150
+ #set_property -dict { PACKAGE_PIN B17 IOSTANDARD LVDS } [get_ports { XA_N[3] }]; #IO_L7N_T1_AD2N_15 Sch=xa_n[3]
151
+ #set_property -dict { PACKAGE_PIN B16 IOSTANDARD LVDS } [get_ports { XA_P[3] }]; #IO_L7P_T1_AD2P_15 Sch=xa_p[3]
152
+ #set_property -dict { PACKAGE_PIN A18 IOSTANDARD LVDS } [get_ports { XA_N[4] }]; #IO_L10N_T1_AD11N_15 Sch=xa_n[4]
153
+ #set_property -dict { PACKAGE_PIN B18 IOSTANDARD LVDS } [get_ports { XA_P[4] }]; #IO_L10P_T1_AD11P_15 Sch=xa_p[4]
154
+
155
+
156
+ ##VGA Connector
157
+
158
+ #set_property -dict { PACKAGE_PIN A3 IOSTANDARD LVCMOS33 } [get_ports { VGA_R[0] }]; #IO_L8N_T1_AD14N_35 Sch=vga_r[0]
159
+ #set_property -dict { PACKAGE_PIN B4 IOSTANDARD LVCMOS33 } [get_ports { VGA_R[1] }]; #IO_L7N_T1_AD6N_35 Sch=vga_r[1]
160
+ #set_property -dict { PACKAGE_PIN C5 IOSTANDARD LVCMOS33 } [get_ports { VGA_R[2] }]; #IO_L1N_T0_AD4N_35 Sch=vga_r[2]
161
+ #set_property -dict { PACKAGE_PIN A4 IOSTANDARD LVCMOS33 } [get_ports { VGA_R[3] }]; #IO_L8P_T1_AD14P_35 Sch=vga_r[3]
162
+
163
+ #set_property -dict { PACKAGE_PIN C6 IOSTANDARD LVCMOS33 } [get_ports { VGA_G[0] }]; #IO_L1P_T0_AD4P_35 Sch=vga_g[0]
164
+ #set_property -dict { PACKAGE_PIN A5 IOSTANDARD LVCMOS33 } [get_ports { VGA_G[1] }]; #IO_L3N_T0_DQS_AD5N_35 Sch=vga_g[1]
165
+ #set_property -dict { PACKAGE_PIN B6 IOSTANDARD LVCMOS33 } [get_ports { VGA_G[2] }]; #IO_L2N_T0_AD12N_35 Sch=vga_g[2]
166
+ #set_property -dict { PACKAGE_PIN A6 IOSTANDARD LVCMOS33 } [get_ports { VGA_G[3] }]; #IO_L3P_T0_DQS_AD5P_35 Sch=vga_g[3]
167
+
168
+ #set_property -dict { PACKAGE_PIN B7 IOSTANDARD LVCMOS33 } [get_ports { VGA_B[0] }]; #IO_L2P_T0_AD12P_35 Sch=vga_b[0]
169
+ #set_property -dict { PACKAGE_PIN C7 IOSTANDARD LVCMOS33 } [get_ports { VGA_B[1] }]; #IO_L4N_T0_35 Sch=vga_b[1]
170
+ #set_property -dict { PACKAGE_PIN D7 IOSTANDARD LVCMOS33 } [get_ports { VGA_B[2] }]; #IO_L6N_T0_VREF_35 Sch=vga_b[2]
171
+ #set_property -dict { PACKAGE_PIN D8 IOSTANDARD LVCMOS33 } [get_ports { VGA_B[3] }]; #IO_L4P_T0_35 Sch=vga_b[3]
172
+
173
+ #set_property -dict { PACKAGE_PIN B11 IOSTANDARD LVCMOS33 } [get_ports { VGA_HS }]; #IO_L4P_T0_15 Sch=vga_hs
174
+ #set_property -dict { PACKAGE_PIN B12 IOSTANDARD LVCMOS33 } [get_ports { VGA_VS }]; #IO_L3N_T0_DQS_AD1N_15 Sch=vga_vs
175
+
176
+
177
+ ##Micro SD Connector
178
+
179
+ #set_property -dict { PACKAGE_PIN E2 IOSTANDARD LVCMOS33 } [get_ports { SD_RESET }]; #IO_L14P_T2_SRCC_35 Sch=sd_reset
180
+ #set_property -dict { PACKAGE_PIN A1 IOSTANDARD LVCMOS33 } [get_ports { SD_CD }]; #IO_L9N_T1_DQS_AD7N_35 Sch=sd_cd
181
+ #set_property -dict { PACKAGE_PIN B1 IOSTANDARD LVCMOS33 } [get_ports { SD_SCK }]; #IO_L9P_T1_DQS_AD7P_35 Sch=sd_sck
182
+ #set_property -dict { PACKAGE_PIN C1 IOSTANDARD LVCMOS33 } [get_ports { SD_CMD }]; #IO_L16N_T2_35 Sch=sd_cmd
183
+ #set_property -dict { PACKAGE_PIN C2 IOSTANDARD LVCMOS33 } [get_ports { SD_DAT[0] }]; #IO_L16P_T2_35 Sch=sd_dat[0]
184
+ #set_property -dict { PACKAGE_PIN E1 IOSTANDARD LVCMOS33 } [get_ports { SD_DAT[1] }]; #IO_L18N_T2_35 Sch=sd_dat[1]
185
+ #set_property -dict { PACKAGE_PIN F1 IOSTANDARD LVCMOS33 } [get_ports { SD_DAT[2] }]; #IO_L18P_T2_35 Sch=sd_dat[2]
186
+ #set_property -dict { PACKAGE_PIN D2 IOSTANDARD LVCMOS33 } [get_ports { SD_DAT[3] }]; #IO_L14N_T2_SRCC_35 Sch=sd_dat[3]
187
+
188
+
189
+ ##Accelerometer
190
+
191
+ #set_property -dict { PACKAGE_PIN E15 IOSTANDARD LVCMOS33 } [get_ports { ACL_MISO }]; #IO_L11P_T1_SRCC_15 Sch=acl_miso
192
+ #set_property -dict { PACKAGE_PIN F14 IOSTANDARD LVCMOS33 } [get_ports { ACL_MOSI }]; #IO_L5N_T0_AD9N_15 Sch=acl_mosi
193
+ #set_property -dict { PACKAGE_PIN F15 IOSTANDARD LVCMOS33 } [get_ports { ACL_SCLK }]; #IO_L14P_T2_SRCC_15 Sch=acl_sclk
194
+ #set_property -dict { PACKAGE_PIN D15 IOSTANDARD LVCMOS33 } [get_ports { ACL_CSN }]; #IO_L12P_T1_MRCC_15 Sch=acl_csn
195
+ #set_property -dict { PACKAGE_PIN B13 IOSTANDARD LVCMOS33 } [get_ports { ACL_INT[1] }]; #IO_L2P_T0_AD8P_15 Sch=acl_int[1]
196
+ #set_property -dict { PACKAGE_PIN C16 IOSTANDARD LVCMOS33 } [get_ports { ACL_INT[2] }]; #IO_L20P_T3_A20_15 Sch=acl_int[2]
197
+
198
+
199
+ ##Temperature Sensor
200
+
201
+ #set_property -dict { PACKAGE_PIN C14 IOSTANDARD LVCMOS33 } [get_ports { TMP_SCL }]; #IO_L1N_T0_AD0N_15 Sch=tmp_scl
202
+ #set_property -dict { PACKAGE_PIN C15 IOSTANDARD LVCMOS33 } [get_ports { TMP_SDA }]; #IO_L12N_T1_MRCC_15 Sch=tmp_sda
203
+ #set_property -dict { PACKAGE_PIN D13 IOSTANDARD LVCMOS33 } [get_ports { TMP_INT }]; #IO_L6N_T0_VREF_15 Sch=tmp_int
204
+ #set_property -dict { PACKAGE_PIN B14 IOSTANDARD LVCMOS33 } [get_ports { TMP_CT }]; #IO_L2N_T0_AD8N_15 Sch=tmp_ct
205
+
206
+ ##Omnidirectional Microphone
207
+
208
+ #set_property -dict { PACKAGE_PIN J5 IOSTANDARD LVCMOS33 } [get_ports { M_CLK }]; #IO_25_35 Sch=m_clk
209
+ #set_property -dict { PACKAGE_PIN H5 IOSTANDARD LVCMOS33 } [get_ports { M_DATA }]; #IO_L24N_T3_35 Sch=m_data
210
+ #set_property -dict { PACKAGE_PIN F5 IOSTANDARD LVCMOS33 } [get_ports { M_LRSEL }]; #IO_0_35 Sch=m_lrsel
211
+
212
+
213
+ ##PWM Audio Amplifier
214
+
215
+ #set_property -dict { PACKAGE_PIN A11 IOSTANDARD LVCMOS33 } [get_ports { AUD_PWM }]; #IO_L4N_T0_15 Sch=aud_pwm
216
+ #set_property -dict { PACKAGE_PIN D12 IOSTANDARD LVCMOS33 } [get_ports { AUD_SD }]; #IO_L6P_T0_15 Sch=aud_sd
217
+
218
+
219
+ ##USB-RS232 Interface
220
+
221
+ set_property -dict { PACKAGE_PIN C4 IOSTANDARD LVCMOS33 } [get_ports { rx }]; #IO_L7P_T1_AD6P_35 Sch=uart_txd_in
222
+ set_property -dict { PACKAGE_PIN D4 IOSTANDARD LVCMOS33 } [get_ports { tx }]; #IO_L11N_T1_SRCC_35 Sch=uart_rxd_out
223
+
224
+ #set_property -dict { PACKAGE_PIN D3 IOSTANDARD LVCMOS33 } [get_ports { UART_CTS }]; #IO_L12N_T1_MRCC_35 Sch=uart_cts
225
+ #set_property -dict { PACKAGE_PIN E5 IOSTANDARD LVCMOS33 } [get_ports { UART_RTS }]; #IO_L5N_T0_AD13N_35 Sch=uart_rts
226
+
227
+ ##USB HID (PS/2)
228
+
229
+ #set_property -dict { PACKAGE_PIN F4 IOSTANDARD LVCMOS33 } [get_ports { PS2_CLK }]; #IO_L13P_T2_MRCC_35 Sch=ps2_clk
230
+ #set_property -dict { PACKAGE_PIN B2 IOSTANDARD LVCMOS33 } [get_ports { PS2_DATA }]; #IO_L10N_T1_AD15N_35 Sch=ps2_data
231
+
232
+
233
+ ##SMSC Ethernet PHY
234
+
235
+ #set_property -dict { PACKAGE_PIN C9 IOSTANDARD LVCMOS33 } [get_ports { ETH_MDC }]; #IO_L11P_T1_SRCC_16 Sch=eth_mdc
236
+ #set_property -dict { PACKAGE_PIN A9 IOSTANDARD LVCMOS33 } [get_ports { ETH_MDIO }]; #IO_L14N_T2_SRCC_16 Sch=eth_mdio
237
+ #set_property -dict { PACKAGE_PIN B3 IOSTANDARD LVCMOS33 } [get_ports { ETH_RSTN }]; #IO_L10P_T1_AD15P_35 Sch=eth_rstn
238
+ #set_property -dict { PACKAGE_PIN D9 IOSTANDARD LVCMOS33 } [get_ports { ETH_CRSDV }]; #IO_L6N_T0_VREF_16 Sch=eth_crsdv
239
+ #set_property -dict { PACKAGE_PIN C10 IOSTANDARD LVCMOS33 } [get_ports { ETH_RXERR }]; #IO_L13N_T2_MRCC_16 Sch=eth_rxerr
240
+ #set_property -dict { PACKAGE_PIN C11 IOSTANDARD LVCMOS33 } [get_ports { ETH_RXD[0] }]; #IO_L13P_T2_MRCC_16 Sch=eth_rxd[0]
241
+ #set_property -dict { PACKAGE_PIN D10 IOSTANDARD LVCMOS33 } [get_ports { ETH_RXD[1] }]; #IO_L19N_T3_VREF_16 Sch=eth_rxd[1]
242
+ #set_property -dict { PACKAGE_PIN B9 IOSTANDARD LVCMOS33 } [get_ports { ETH_TXEN }]; #IO_L11N_T1_SRCC_16 Sch=eth_txen
243
+ #set_property -dict { PACKAGE_PIN A10 IOSTANDARD LVCMOS33 } [get_ports { ETH_TXD[0] }]; #IO_L14P_T2_SRCC_16 Sch=eth_txd[0]
244
+ #set_property -dict { PACKAGE_PIN A8 IOSTANDARD LVCMOS33 } [get_ports { ETH_TXD[1] }]; #IO_L12N_T1_MRCC_16 Sch=eth_txd[1]
245
+ #set_property -dict { PACKAGE_PIN D5 IOSTANDARD LVCMOS33 } [get_ports { ETH_REFCLK }]; #IO_L11P_T1_SRCC_35 Sch=eth_refclk
246
+ #set_property -dict { PACKAGE_PIN B8 IOSTANDARD LVCMOS33 } [get_ports { ETH_INTN }]; #IO_L12P_T1_MRCC_16 Sch=eth_intn
247
+
248
+
249
+ ##Quad SPI Flash
250
+
251
+ #set_property -dict { PACKAGE_PIN K17 IOSTANDARD LVCMOS33 } [get_ports { QSPI_DQ[0] }]; #IO_L1P_T0_D00_MOSI_14 Sch=qspi_dq[0]
252
+ #set_property -dict { PACKAGE_PIN K18 IOSTANDARD LVCMOS33 } [get_ports { QSPI_DQ[1] }]; #IO_L1N_T0_D01_DIN_14 Sch=qspi_dq[1]
253
+ #set_property -dict { PACKAGE_PIN L14 IOSTANDARD LVCMOS33 } [get_ports { QSPI_DQ[2] }]; #IO_L2P_T0_D02_14 Sch=qspi_dq[2]
254
+ #set_property -dict { PACKAGE_PIN M14 IOSTANDARD LVCMOS33 } [get_ports { QSPI_DQ[3] }]; #IO_L2N_T0_D03_14 Sch=qspi_dq[3]
255
+ #set_property -dict { PACKAGE_PIN L13 IOSTANDARD LVCMOS33 } [get_ports { QSPI_CSN }]; #IO_L6P_T0_FCS_B_14 Sch=qspi_csn
@@ -0,0 +1,109 @@
1
+ -- Listing 4.20
2
+ library ieee;
3
+ use ieee.std_logic_1164.all;
4
+ use ieee.numeric_std.all;
5
+ entity fifo is
6
+ generic(
7
+ B: natural:=8; -- number of bits
8
+ W: natural:=4 -- number of address bits
9
+ );
10
+ port(
11
+ clk, reset_n: in std_logic;
12
+ rd, wr: in std_logic;
13
+ w_data: in std_logic_vector (B-1 downto 0);
14
+ empty, full: out std_logic;
15
+ r_data: out std_logic_vector (B-1 downto 0)
16
+ );
17
+ end fifo;
18
+
19
+ architecture arch of fifo is
20
+ type reg_file_type is array (2**W-1 downto 0) of
21
+ std_logic_vector(B-1 downto 0);
22
+ signal array_reg: reg_file_type;
23
+ signal w_ptr_reg, w_ptr_next, w_ptr_succ:
24
+ std_logic_vector(W-1 downto 0);
25
+ signal r_ptr_reg, r_ptr_next, r_ptr_succ:
26
+ std_logic_vector(W-1 downto 0);
27
+ signal full_reg, empty_reg, full_next, empty_next:
28
+ std_logic;
29
+ signal wr_op: std_logic_vector(1 downto 0);
30
+ signal wr_en: std_logic;
31
+ begin
32
+ --=================================================
33
+ -- register file
34
+ --=================================================
35
+ process(clk,reset_n)
36
+ begin
37
+ if (reset_n='0') then
38
+ array_reg <= (others=>(others=>'0'));
39
+ elsif (clk'event and clk='1') then
40
+ if wr_en='1' then
41
+ array_reg(to_integer(unsigned(w_ptr_reg)))
42
+ <= w_data;
43
+ end if;
44
+ end if;
45
+ end process;
46
+ -- read port
47
+ r_data <= array_reg(to_integer(unsigned(r_ptr_reg)));
48
+ -- write enabled only when FIFO is not full
49
+ wr_en <= wr and (not full_reg);
50
+
51
+ --=================================================
52
+ -- fifo control logic
53
+ --=================================================
54
+ -- register for read and write pointers
55
+ process(clk,reset_n)
56
+ begin
57
+ if (reset_n='0') then
58
+ w_ptr_reg <= (others=>'0');
59
+ r_ptr_reg <= (others=>'0');
60
+ full_reg <= '0';
61
+ empty_reg <= '1';
62
+ elsif (clk'event and clk='1') then
63
+ w_ptr_reg <= w_ptr_next;
64
+ r_ptr_reg <= r_ptr_next;
65
+ full_reg <= full_next;
66
+ empty_reg <= empty_next;
67
+ end if;
68
+ end process;
69
+
70
+ -- successive pointer values
71
+ w_ptr_succ <= std_logic_vector(unsigned(w_ptr_reg)+1);
72
+ r_ptr_succ <= std_logic_vector(unsigned(r_ptr_reg)+1);
73
+
74
+ -- next-state logic for read and write pointers
75
+ wr_op <= wr & rd;
76
+ process(w_ptr_reg,w_ptr_succ,r_ptr_reg,r_ptr_succ,wr_op,
77
+ empty_reg,full_reg)
78
+ begin
79
+ w_ptr_next <= w_ptr_reg;
80
+ r_ptr_next <= r_ptr_reg;
81
+ full_next <= full_reg;
82
+ empty_next <= empty_reg;
83
+ case wr_op is
84
+ when "00" => -- no op
85
+ when "01" => -- read
86
+ if (empty_reg /= '1') then -- not empty
87
+ r_ptr_next <= r_ptr_succ;
88
+ full_next <= '0';
89
+ if (r_ptr_succ=w_ptr_reg) then
90
+ empty_next <='1';
91
+ end if;
92
+ end if;
93
+ when "10" => -- write
94
+ if (full_reg /= '1') then -- not full
95
+ w_ptr_next <= w_ptr_succ;
96
+ empty_next <= '0';
97
+ if (w_ptr_succ=r_ptr_reg) then
98
+ full_next <='1';
99
+ end if;
100
+ end if;
101
+ when others => -- write/read;
102
+ w_ptr_next <= w_ptr_succ;
103
+ r_ptr_next <= r_ptr_succ;
104
+ end case;
105
+ end process;
106
+ -- output
107
+ full <= full_reg;
108
+ empty <= empty_reg;
109
+ end arch;
@@ -0,0 +1,45 @@
1
+ -- Listing 7.2
2
+ library ieee;
3
+ use ieee.std_logic_1164.all;
4
+ entity flag_buf is
5
+ generic(W: integer:=8);
6
+ port(
7
+ clk, reset_n: in std_logic;
8
+ clr_flag, set_flag: in std_logic;
9
+ din: in std_logic_vector(W-1 downto 0);
10
+ dout: out std_logic_vector(W-1 downto 0);
11
+ flag: out std_logic
12
+ );
13
+ end flag_buf;
14
+
15
+ architecture arch of flag_buf is
16
+ signal buf_reg, buf_next: std_logic_vector(W-1 downto 0);
17
+ signal flag_reg, flag_next: std_logic;
18
+ begin
19
+ -- FF & register
20
+ process(clk,reset_n)
21
+ begin
22
+ if reset_n='0' then
23
+ buf_reg <= (others=>'0');
24
+ flag_reg <= '0';
25
+ elsif (clk'event and clk='1') then
26
+ buf_reg <= buf_next;
27
+ flag_reg <= flag_next;
28
+ end if;
29
+ end process;
30
+ -- next-state logic
31
+ process(buf_reg,flag_reg,set_flag,clr_flag,din)
32
+ begin
33
+ buf_next <= buf_reg;
34
+ flag_next <= flag_reg;
35
+ if (set_flag='1') then
36
+ buf_next <= din;
37
+ flag_next <= '1';
38
+ elsif (clr_flag='1') then
39
+ flag_next <= '0';
40
+ end if;
41
+ end process;
42
+ -- output logic
43
+ dout <= buf_reg;
44
+ flag <= flag_reg;
45
+ end arch;
@@ -0,0 +1,36 @@
1
+ -- pong chu version
2
+ library ieee;
3
+ use ieee.std_logic_1164.all;
4
+ use ieee.numeric_std.all;
5
+ entity mod_m_counter is
6
+ generic(
7
+ N : integer := 4; -- number of bits
8
+ M : integer := 10 -- mod-M
9
+ );
10
+ port(
11
+ clk, reset_n : in std_logic;
12
+ max_tick : out std_logic;
13
+ q : out std_logic_vector(N-1 downto 0)
14
+ );
15
+ end mod_m_counter;
16
+
17
+ architecture arch of mod_m_counter is
18
+ signal r_reg : unsigned(N-1 downto 0);
19
+ signal r_next : unsigned(N-1 downto 0);
20
+ begin
21
+ -- register
22
+ process(clk, reset_n)
23
+ begin
24
+ if (reset_n = '0') then
25
+ r_reg <= (others => '0');
26
+ elsif (clk'event and clk = '1') then
27
+ r_reg <= r_next;
28
+ end if;
29
+ end process;
30
+ -- next-state logic
31
+ r_next <= (others => '0') when r_reg = (M-1) else
32
+ r_reg + 1;
33
+ -- output logic
34
+ q <= std_logic_vector(r_reg);
35
+ max_tick <= '1' when r_reg = (M-1) else '0';
36
+ end arch;