Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 97 lines (77 sloc) 3.831 kB
0175a4f xilinx support from Larry Doolittle
steve authored
1
2 For those of you who wish to use Icarus Verilog, in combination with
3 the Xilinx back end (Foundation or Alliance), it can be done. I have
2bc8f79 Update xilinx-hints.txt from Larry.
steve authored
4 run some admittedly simple (2300 equivalent gates) designs through this
5 setup, targeting a Spartan XCS10.
0175a4f xilinx support from Larry Doolittle
steve authored
6
7 Verilog:
8
2bc8f79 Update xilinx-hints.txt from Larry.
steve authored
9 Older versions of Icarus Verilog (like 19990814) couldn't synthesize
10 logic buried in procedural (flip-flop) assignment. Newer versions
11 (like 20000120) don't have this limitation.
0175a4f xilinx support from Larry Doolittle
steve authored
12
13 Procedural assignments have to be given one at a time, to be
14 "found" by xnfsyn. Say
15 always @ (posedge Clk) Y = newY;
16 always @ (posedge Clk) Z = newZ;
17 rather than
18 always @ (posedge Clk) begin
19 Y = newY;
20 Z = newZ;
21 end
22
2bc8f79 Update xilinx-hints.txt from Larry.
steve authored
23 Steve's xnf.txt covers most buffer and pin constructs, but I had reason
24 to use a global clock net not connected to an input pin. The standard
25 Verilog for a buffer, combined with a declaration to turn that into a
26 BUFG, is:
27 buf BUFG( your_output_here, your_input_here );
0175a4f xilinx support from Larry Doolittle
steve authored
28 $attribute(BUFG,"XNF-LCA","BUFG:O,I")
29
2bc8f79 Update xilinx-hints.txt from Larry.
steve authored
30 I use post-processing on my .xnf files to add "FAST" attributes to
31 output pins.
0175a4f xilinx support from Larry Doolittle
steve authored
32
33 Running ivl:
34
35 The -F switches are important. The following order seems to robustly
2bc8f79 Update xilinx-hints.txt from Larry.
steve authored
36 generate valid XNF files, and is used by "verilog -X":
37 -Fsynth -Fnodangle -Fxnfio
0175a4f xilinx support from Larry Doolittle
steve authored
38
39 Generating .pcf files:
40
41 The ngdbuild step seems to lose pin placement information that ivl
42 puts in the XNF file. Use xnf2pcf to extract this information to
43 a .pcf file, which the Xilinx place-and-route software _will_ pay
2bc8f79 Update xilinx-hints.txt from Larry.
steve authored
44 attention to. Steve says he now makes that information available
45 in an NCF file, with -fncf=<path>, but I haven't tested that.
0175a4f xilinx support from Larry Doolittle
steve authored
46
47 Running the Xilinx back end:
48
49 You can presumably use the GUI, but that doesn't fit in Makefiles :-).
50 Here is the command sequence in pseudo-shell-script:
51 ngdbuild -p $part $1.xnf $1.ngd
52 map -p $part -o map.ncd $1.ngd
53 xnf2pcf <$1.xnf >$1.pcf # see above
54 par -w -ol 2 -d 0 map.ncd $1.ncd $1.pcf
55 bitgen_flags = -g ConfigRate:SLOW -g TdoPin:PULLNONE -g DonePin:PULLUP \
56 -g CRC:enable -g StartUpClk:CCLK -g SyncToDone:no \
57 -g DoneActive:C1 -g OutputsActive:C3 -g GSRInactive:C4 \
58 -g ReadClk:CCLK -g ReadCapture:enable -g ReadAbort:disable
59 bitgen $1.ncd -l -w $bitgen_flags
60
61 The Xilinx software has diarrhea of the temp files (14, not including
62 .xnf, .pcf, .ngd, .ncd, and .bit), so this sequence is best done in a
63 dedicated directory. Note in particular that map.ncd is a generic name.
64
2bc8f79 Update xilinx-hints.txt from Larry.
steve authored
65 I had reason to run this remotely (and transparently within a Makefile)
66 via ssh. I use the gmake rule
67 %.bit : %.xnf
68 ssh -x -a -o 'BatchMode yes' ${ALLIANCE_HOST} \
69 remote_alliance ${REMOTE_DIR} $(basename $@) 2>&1 < $<
70 scp ${ALLIANCE_HOST}:${REMOTE_DIR}/$@ .
71 and the remote_alliance script (on ${ALLIANCE_HOST})
72 /bin/csh
73 cd $1
74 cat >! $2.xnf
75 xnf2pcf <$2.xnf >! $2.pcf
76 ./backend $2
77
78 There is now a "Xilinx on Linux HOWTO" at
79 http://www.polybus.com/xilinx_on_linux.html
e941e7e Spelling fixes.
steve authored
80 I haven't tried this yet, it looks interesting.
2bc8f79 Update xilinx-hints.txt from Larry.
steve authored
81
0175a4f xilinx support from Larry Doolittle
steve authored
82 Downloading:
83
84 I use the XESS (http://www.xess.com/) XSP-10 development board, which
85 uses the PC parallel (printer) port for downloading and interaction
86 with the host. They made an old version of their download program
87 public domain, posted it at
88 http://www.xess.com/FPGA/xstools.zip ,
89 and now there is a Linux port at
90 ftp://ftp.microux.com/pub/pilotscope/xstools.tar.gz .
91
92 The above hints are based on my experience with Foundation 1.5 on NT
93 (gack) and Alliance 2.1i on Solaris. Your mileage may vary. Good luck!
94
95 - Larry Doolittle <LRDoolittle@lbl.gov> August 19, 1999
2bc8f79 Update xilinx-hints.txt from Larry.
steve authored
96 updated February 1, 2000
Something went wrong with that request. Please try again.