@@ -0,0 +1,13 | |||||
|
1 | # | |||
|
2 | TECHNOLOGY=Spartan6 | |||
|
3 | ISETECH="Spartan6" | |||
|
4 | PART=XC6SLX45 | |||
|
5 | PACKAGE=fgg484 | |||
|
6 | SPEED=-3 | |||
|
7 | SYNFREQ=220 | |||
|
8 | PROMGENPAR= | |||
|
9 | ||||
|
10 | MANUFACTURER=Xilinx | |||
|
11 | MGCPART=XC6SLX45$(PACKAGE) | |||
|
12 | MGCTECHNOLOGY=SPARTAN-6 | |||
|
13 | MGCPACKAGE=$(PACKAGE) |
@@ -0,0 +1,20 | |||||
|
1 | NET "CLK" LOC = "A6" | IOSTANDARD = LVCMOS33; | |||
|
2 | ||||
|
3 | NET "RESET" CLOCK_DEDICATED_ROUTE = FALSE; | |||
|
4 | NET "RESET" LOC = "AB11" | IOSTANDARD = LVTTL; | |||
|
5 | ||||
|
6 | NET "DAC_nCLR" LOC = "R11" | IOSTANDARD = LVCMOS33; | |||
|
7 | NET "DAC_nCS" LOC = "T12" | IOSTANDARD = LVCMOS33; | |||
|
8 | NET "CAL_IN_SCK" LOC = "R13" | IOSTANDARD = LVCMOS33; | |||
|
9 | NET "DAC_SDI(0)" LOC = "P5" | IOSTANDARD = LVCMOS33; | |||
|
10 | NET "DAC_SDI(1)" LOC = "M5" | IOSTANDARD = LVCMOS33; | |||
|
11 | NET "DAC_SDI(2)" LOC = "C8" | IOSTANDARD = LVCMOS33; | |||
|
12 | NET "DAC_SDI(3)" LOC = "M6" | IOSTANDARD = LVCMOS33; | |||
|
13 | NET "DAC_SDI(4)" LOC = "K22" | IOSTANDARD = LVCMOS33; | |||
|
14 | NET "DAC_SDI(5)" LOC = "L22" | IOSTANDARD = LVCMOS33; | |||
|
15 | NET "DAC_SDI(6)" LOC = "G19" | IOSTANDARD = LVCMOS33; | |||
|
16 | NET "DAC_SDI(7)" LOC = "F20" | IOSTANDARD = LVCMOS33; | |||
|
17 | ||||
|
18 | ||||
|
19 | ||||
|
20 |
@@ -0,0 +1,24 | |||||
|
1 | -g DebugBitstream:No | |||
|
2 | -g Binary:no | |||
|
3 | -b | |||
|
4 | -g CRC:Enable | |||
|
5 | -g ConfigRate:26 | |||
|
6 | -g ProgPin:PullUp | |||
|
7 | -g DonePin:PullUp | |||
|
8 | -g TckPin:PullUp | |||
|
9 | -g TdiPin:PullUp | |||
|
10 | -g TdoPin:PullUp | |||
|
11 | -g TmsPin:PullUp | |||
|
12 | -g UnusedPin:PullDown | |||
|
13 | -g UserID:0xFFFFFFFF | |||
|
14 | -g SPI_buswidth:4 | |||
|
15 | -g StartUpClk:CCLK | |||
|
16 | -g DONE_cycle:4 | |||
|
17 | -g GTS_cycle:5 | |||
|
18 | -g GWE_cycle:6 | |||
|
19 | -g LCK_cycle:NoWait | |||
|
20 | -g Security:None | |||
|
21 | -g Persist:No | |||
|
22 | -g ReadBack | |||
|
23 | -g DonePipe:No | |||
|
24 | -g DriveDone:Yes |
@@ -0,0 +1,7 | |||||
|
1 | setMode -bscan | |||
|
2 | setCable -p usb21 | |||
|
3 | identify | |||
|
4 | assignfile -p 1 -file xilinx-sp605-xc6slx45t.bit | |||
|
5 | program -p 1 | |||
|
6 | quit | |||
|
7 |
@@ -0,0 +1,7 | |||||
|
1 | setMode -bs | |||
|
2 | setCable -port auto | |||
|
3 | Identify | |||
|
4 | identifyMPM | |||
|
5 | assignFile -p 2 -file "xilinx-sp605-xc6slx45t.bit" | |||
|
6 | Program -p 2 -defaultVersion 0 | |||
|
7 | quit |
@@ -0,0 +1,63 | |||||
|
1 | library ieee; | |||
|
2 | use ieee.std_logic_1164.all; | |||
|
3 | use IEEE.numeric_std.all; | |||
|
4 | library grlib, techmap; | |||
|
5 | use grlib.amba.all; | |||
|
6 | use grlib.amba.all; | |||
|
7 | use grlib.stdlib.all; | |||
|
8 | use techmap.gencomp.all; | |||
|
9 | use techmap.allclkgen.all; | |||
|
10 | library gaisler; | |||
|
11 | use gaisler.memctrl.all; | |||
|
12 | use gaisler.leon3.all; | |||
|
13 | use gaisler.uart.all; | |||
|
14 | use gaisler.misc.all; | |||
|
15 | --use gaisler.sim.all; | |||
|
16 | library lpp; | |||
|
17 | use lpp.lpp_ad_conv.all; | |||
|
18 | use lpp.lpp_amba.all; | |||
|
19 | use lpp.apb_devices_list.all; | |||
|
20 | use lpp.general_purpose.all; | |||
|
21 | ||||
|
22 | ||||
|
23 | use work.config.all; | |||
|
24 | --================================================================== | |||
|
25 | -- | |||
|
26 | -- | |||
|
27 | -- FPGA FREQ = 48MHz | |||
|
28 | -- ADC Oscillator frequency = 12MHz | |||
|
29 | -- | |||
|
30 | -- | |||
|
31 | --================================================================== | |||
|
32 | ||||
|
33 | entity BeagleSynth is | |||
|
34 | generic ( | |||
|
35 | fabtech : integer := CFG_FABTECH; | |||
|
36 | memtech : integer := CFG_MEMTECH; | |||
|
37 | padtech : integer := CFG_PADTECH; | |||
|
38 | clktech : integer := CFG_CLKTECH | |||
|
39 | ); | |||
|
40 | port ( | |||
|
41 | reset : in std_ulogic; | |||
|
42 | clk : in std_ulogic; | |||
|
43 | DAC_nCLR : out std_ulogic; | |||
|
44 | DAC_nCS : out std_ulogic; | |||
|
45 | CAL_IN_SCK : out std_ulogic; | |||
|
46 | DAC_SDI : out std_ulogic_vector(7 downto 0) | |||
|
47 | ); | |||
|
48 | end; | |||
|
49 | ||||
|
50 | architecture rtl of BeagleSynth is | |||
|
51 | ||||
|
52 | begin | |||
|
53 | ||||
|
54 | DAC_nCLR <= '1'; | |||
|
55 | DAC_nCS <= '1'; | |||
|
56 | CAL_IN_SCK <= '1'; | |||
|
57 | DAC_SDI <= (others =>'1'); | |||
|
58 | ||||
|
59 | ||||
|
60 | end rtl; | |||
|
61 | ||||
|
62 | ||||
|
63 |
@@ -0,0 +1,46 | |||||
|
1 | include .config | |||
|
2 | ||||
|
3 | #GRLIB=$(GRLIB) | |||
|
4 | TOP=BeagleSynth | |||
|
5 | BOARD=BeagleSynth | |||
|
6 | #BOARD=SP601 | |||
|
7 | include ../../boards/$(BOARD)/Makefile.inc | |||
|
8 | DEVICE=$(PART)-$(PACKAGE)$(SPEED) | |||
|
9 | #UCF=$(GRLIB)/boards/$(BOARD)/ICI3.ucf | |||
|
10 | UCF=../../boards/$(BOARD)/default.ucf | |||
|
11 | QSF=../../boards/$(BOARD)/$(TOP).qsf | |||
|
12 | EFFORT=high | |||
|
13 | ISEMAPOPT="-timing" | |||
|
14 | XSTOPT="" | |||
|
15 | SYNPOPT="set_option -maxfan 100; set_option -pipe 1; set_option -retiming 1; set_option -write_apr_constraint 0" | |||
|
16 | VHDLOPTSYNFILES= | |||
|
17 | ||||
|
18 | ||||
|
19 | VHDLSYNFILES= \ | |||
|
20 | config.vhd BeagleSynth.vhd | |||
|
21 | #VHDLSIMFILES=testbench.vhd | |||
|
22 | #SIMTOP=testbench | |||
|
23 | #SDCFILE=$(GRLIB)/boards/$(BOARD)/default.sdc | |||
|
24 | SDCFILE=default.sdc | |||
|
25 | BITGEN=../../boards/$(BOARD)/default.ut | |||
|
26 | CLEAN=soft-clean | |||
|
27 | VCOMOPT=-explicit | |||
|
28 | TECHLIBS = secureip unisim | |||
|
29 | ||||
|
30 | LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ | |||
|
31 | tmtc openchip cypress ihp gleichmann gsi fmf spansion | |||
|
32 | DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest \ | |||
|
33 | leon4 leon4b64 l2cache gr1553b iommu haps ascs slink coremp7 pwm \ | |||
|
34 | ac97 hcan usb | |||
|
35 | DIRADD = | |||
|
36 | FILEADD = | |||
|
37 | FILESKIP = grcan.vhd ddr2.v mobile_ddr.v | |||
|
38 | ||||
|
39 | include $(GRLIB)/bin/Makefile | |||
|
40 | include $(GRLIB)/software/leon3/Makefile | |||
|
41 | ||||
|
42 | ||||
|
43 | ################## project specific targets ########################## | |||
|
44 | ||||
|
45 | flash: | |||
|
46 | xc3sprog -c ftdi -p 1 ici4.bit |
@@ -0,0 +1,145 | |||||
|
1 | ||||
|
2 | ||||
|
3 | ||||
|
4 | ----------------------------------------------------------------------------- | |||
|
5 | -- LEON3 Demonstration design test bench configuration | |||
|
6 | -- Copyright (C) 2009 Aeroflex Gaisler | |||
|
7 | ------------------------------------------------------------------------------ | |||
|
8 | ||||
|
9 | ||||
|
10 | library techmap; | |||
|
11 | use techmap.gencomp.all; | |||
|
12 | LIBRARY IEEE; | |||
|
13 | USE IEEE.numeric_std.ALL; | |||
|
14 | USE IEEE.std_logic_1164.ALL; | |||
|
15 | ||||
|
16 | ||||
|
17 | package config is | |||
|
18 | -- Technology and synthesis options | |||
|
19 | constant CFG_FABTECH : integer := spartan6; | |||
|
20 | constant CFG_MEMTECH : integer := spartan6; | |||
|
21 | constant CFG_PADTECH : integer := spartan6; | |||
|
22 | -- Clock generator | |||
|
23 | constant CFG_CLKTECH : integer := spartan6; | |||
|
24 | constant SEND_CONSTANT_DATA : integer := 0; | |||
|
25 | constant SEND_MINF_VALUE : integer := 0; | |||
|
26 | ||||
|
27 | ||||
|
28 | ||||
|
29 | constant LF1cst : std_logic_vector(15 downto 0) := X"1111"; | |||
|
30 | constant LF2cst : std_logic_vector(15 downto 0) := X"2222"; | |||
|
31 | constant LF3cst : std_logic_vector(15 downto 0) := X"3333"; | |||
|
32 | ||||
|
33 | ||||
|
34 | constant AMR1Xcst : std_logic_vector(23 downto 0):= X"000001"; | |||
|
35 | constant AMR1Ycst : std_logic_vector(23 downto 0):= X"111111"; | |||
|
36 | constant AMR1Zcst : std_logic_vector(23 downto 0):= X"7FFFFF"; | |||
|
37 | ||||
|
38 | constant AMR2Xcst : std_logic_vector(23 downto 0):= X"800000"; | |||
|
39 | constant AMR2Ycst : std_logic_vector(23 downto 0):= X"000002"; | |||
|
40 | constant AMR2Zcst : std_logic_vector(23 downto 0):= X"800001"; | |||
|
41 | ||||
|
42 | constant AMR3Xcst : std_logic_vector(23 downto 0):= X"AAAAAA"; | |||
|
43 | constant AMR3Ycst : std_logic_vector(23 downto 0):= X"BBBBBB"; | |||
|
44 | constant AMR3Zcst : std_logic_vector(23 downto 0):= X"CCCCCC"; | |||
|
45 | ||||
|
46 | constant AMR4Xcst : std_logic_vector(23 downto 0):= X"DDDDDD"; | |||
|
47 | constant AMR4Ycst : std_logic_vector(23 downto 0):= X"EEEEEE"; | |||
|
48 | constant AMR4Zcst : std_logic_vector(23 downto 0):= X"FFFFFF"; | |||
|
49 | ||||
|
50 | constant Temp1cst : std_logic_vector(23 downto 0):= X"121212"; | |||
|
51 | constant Temp2cst : std_logic_vector(23 downto 0):= X"343434"; | |||
|
52 | constant Temp3cst : std_logic_vector(23 downto 0):= X"565656"; | |||
|
53 | constant Temp4cst : std_logic_vector(23 downto 0):= X"787878"; | |||
|
54 | ||||
|
55 | ||||
|
56 | ||||
|
57 | --===========================================================| | |||
|
58 | --========F I L T E R C O N F I G V A L U E S=============| | |||
|
59 | --===========================================================| | |||
|
60 | --____________________________ | |||
|
61 | --Bus Width and chanels number| | |||
|
62 | --____________________________| | |||
|
63 | constant ChanelsCount : integer := 3; | |||
|
64 | constant Sample_SZ : integer := 16; | |||
|
65 | constant Coef_SZ : integer := 9; | |||
|
66 | constant CoefCntPerCel: integer := 6; | |||
|
67 | constant CoefPerCel: integer := 5; | |||
|
68 | constant Cels_count : integer := 5; | |||
|
69 | constant virgPos : integer := 7; | |||
|
70 | constant Mem_use : integer := 1; | |||
|
71 | ||||
|
72 | ||||
|
73 | ||||
|
74 | --============================================================ | |||
|
75 | -- create each initial values for each coefs ============ | |||
|
76 | --!!!!!!!!!!It should be interfaced with a software !!!!!!!!!! | |||
|
77 | --============================================================ | |||
|
78 | constant b0_0 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(58,Coef_SZ)); | |||
|
79 | constant b0_1 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(-66,Coef_SZ)); | |||
|
80 | constant b0_2 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(58,Coef_SZ)); | |||
|
81 | ||||
|
82 | constant b1_0 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(58,Coef_SZ)); | |||
|
83 | constant b1_1 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(-57,Coef_SZ)); | |||
|
84 | constant b1_2 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(58,Coef_SZ)); | |||
|
85 | ||||
|
86 | constant b2_0 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(29,Coef_SZ)); | |||
|
87 | constant b2_1 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(-17,Coef_SZ)); | |||
|
88 | constant b2_2 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(29,Coef_SZ)); | |||
|
89 | ||||
|
90 | constant b3_0 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(15,Coef_SZ)); | |||
|
91 | constant b3_1 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(4,Coef_SZ)); | |||
|
92 | constant b3_2 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(15,Coef_SZ)); | |||
|
93 | ||||
|
94 | constant b4_0 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(15,Coef_SZ)); | |||
|
95 | constant b4_1 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(24,Coef_SZ)); | |||
|
96 | constant b4_2 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(15,Coef_SZ)); | |||
|
97 | ||||
|
98 | --constant b5_0 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(-81,Coef_SZ)); | |||
|
99 | --constant b5_1 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(-153,Coef_SZ)); | |||
|
100 | --constant b5_2 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(-171,Coef_SZ)); | |||
|
101 | ||||
|
102 | --constant b6_0 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(-144,Coef_SZ)); | |||
|
103 | --constant b6_1 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(-72,Coef_SZ)); | |||
|
104 | --constant b6_2 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(-25,Coef_SZ)); | |||
|
105 | ||||
|
106 | ||||
|
107 | constant a0_0 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(-128,Coef_SZ)); | |||
|
108 | constant a0_1 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(189,Coef_SZ)); | |||
|
109 | constant a0_2 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(-111,Coef_SZ)); | |||
|
110 | ||||
|
111 | constant a1_0 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(-128,Coef_SZ)); | |||
|
112 | constant a1_1 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(162,Coef_SZ)); | |||
|
113 | constant a1_2 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(-81,Coef_SZ)); | |||
|
114 | ||||
|
115 | constant a2_0 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(-128,Coef_SZ)); | |||
|
116 | constant a2_1 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(136,Coef_SZ)); | |||
|
117 | constant a2_2 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(-55,Coef_SZ)); | |||
|
118 | ||||
|
119 | constant a3_0 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(-128,Coef_SZ)); | |||
|
120 | constant a3_1 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(114,Coef_SZ)); | |||
|
121 | constant a3_2 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(-33,Coef_SZ)); | |||
|
122 | ||||
|
123 | constant a4_0 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(-128,Coef_SZ)); | |||
|
124 | constant a4_1 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(100,Coef_SZ)); | |||
|
125 | constant a4_2 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(-20,Coef_SZ)); | |||
|
126 | ||||
|
127 | --constant a5_0 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(60,Coef_SZ)); | |||
|
128 | --constant a5_1 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(-128,Coef_SZ)); | |||
|
129 | --constant a5_2 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(87,Coef_SZ)); | |||
|
130 | --constant a6_0 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(60,Coef_SZ)); | |||
|
131 | --constant a6_1 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(-128,Coef_SZ)); | |||
|
132 | --constant a6_2 : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(87,Coef_SZ)); | |||
|
133 | ||||
|
134 | constant CoefsInitValCst : std_logic_vector((Cels_count*CoefCntPerCel*Coef_SZ)-1 downto 0) := (a4_2 & a4_1 & a4_0 & b4_2 & b4_1 & b4_0 & a3_2 & a3_1 & a3_0 & b3_2 & b3_1 & b3_0 & a2_2 & a2_1 & a2_0 & b2_2 & b2_1 & b2_0 & a1_2 & a1_1 & a1_0 & b1_2 & b1_1 & b1_0 & a0_2 & a0_1 & a0_0 & b0_2 & b0_1 & b0_0); | |||
|
135 | ||||
|
136 | constant CoefsInitValCst_v2 : std_logic_vector((Cels_count*CoefPerCel*Coef_SZ)-1 downto 0) := | |||
|
137 | (a4_1 & a4_2 & b4_0 & b4_1 & b4_2 & | |||
|
138 | a3_1 & a3_2 & b3_0 & b3_1 & b3_2 & | |||
|
139 | a2_1 & a2_2 & b2_0 & b2_1 & b2_2 & | |||
|
140 | a1_1 & a1_2 & b1_0 & b1_1 & b1_2 & | |||
|
141 | a0_1 & a0_2 & b0_0 & b0_1 & b0_2 ); | |||
|
142 | ||||
|
143 | ||||
|
144 | ||||
|
145 | end; |
General Comments 0
You need to be logged in to leave comments.
Login now