#ifndef PYTHON_CONSOLE_UTILS_H #define PYTHON_CONSOLE_UTILS_H #include #include /** InputIterator has value type of std::string. */ template < class InputIterator > std::string LongestCommonPrefix( InputIterator begin, InputIterator end ) { if ( begin == end ) return ""; const std::string& str0 = *begin; if ( ! str0.size() ) return ""; int endIndex = str0.size() - 1; InputIterator it = begin; ++it; for (; it != end; ++it) { const std::string& str = *it; for (int j = 0; j <= endIndex; ++j) { if (j >= (int)str.size() || str[j] != str0[j]) endIndex = j - 1; } } return (endIndex > 0)? str0.substr(0, endIndex + 1) : ""; } #endif // PYTHON_CONSOLE_UTILS_H osys/'>iCE40/yosys
[no description]
aboutsummaryrefslogtreecommitdiffstats
blob: 74a0c117f5d03eb7c1692c2271fd719902761fa2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/bash

set -ex

XILINX_DIR=/opt/Xilinx/14.5/ISE_DS/ISE
XILINX_PART=xc6slx9-2-tqg144

../../../yosys - <<- EOT
	read_verilog example.v
	synth_xilinx -edif synth.edif
EOT

$XILINX_DIR/bin/lin64/edif2ngd -a synth.edif synth.ngo
$XILINX_DIR/bin/lin64/ngdbuild -p $XILINX_PART -uc example.ucf synth.ngo synth.ngd
$XILINX_DIR/bin/lin64/map -p $XILINX_PART -w -o mapped.ncd synth.ngd constraints.pcf
$XILINX_DIR/bin/lin64/par -w mapped.ncd placed.ncd constraints.pcf
$XILINX_DIR/bin/lin64/bitgen -w placed.ncd example.bit constraints.pcf