mirror of https://github.com/YosysHQ/icestorm.git
86 lines
1.8 KiB
Bash
86 lines
1.8 KiB
Bash
#!/bin/bash
|
|
|
|
set -ex
|
|
|
|
mkdir -p glb_u4k.work
|
|
cd glb_u4k.work
|
|
|
|
glb_pins="20 35 37 44"
|
|
|
|
for gpin in $glb_pins; do
|
|
pf="glb_u4k_pin_$gpin"
|
|
cat > ${pf}.v <<- EOT
|
|
module top (input clk, data, output pin);
|
|
wire gc;
|
|
SB_GB_IO #(
|
|
.PIN_TYPE(6'b 0000_00),
|
|
.PULLUP(1'b0),
|
|
.NEG_TRIGGER(1'b0),
|
|
.IO_STANDARD("SB_LVCMOS")
|
|
) gbuf (
|
|
.PACKAGE_PIN(clk),
|
|
.GLOBAL_BUFFER_OUTPUT(gc)
|
|
);
|
|
SB_IO #(
|
|
.PIN_TYPE(6'b 0101_00)
|
|
) pin_obuf (
|
|
.PACKAGE_PIN(pin),
|
|
.OUTPUT_CLK(gc),
|
|
.D_OUT_0(data)
|
|
);
|
|
endmodule
|
|
EOT
|
|
echo "set_io clk $gpin" > ${pf}.pcf
|
|
ICEDEV=u4k-sg48 bash ../../icecube.sh ${pf}.v > ${pf}.log 2>&1
|
|
../../../icebox/icebox_explain.py ${pf}.asc > ${pf}.exp
|
|
rm -rf ${pf}.tmp
|
|
done
|
|
|
|
oscs="HF LF"
|
|
|
|
for osc in $oscs; do
|
|
pf="glb_u4k_${osc}"
|
|
cat > ${pf}.v <<- EOT
|
|
module top (input data, output pin);
|
|
wire clk;
|
|
SB_${osc}OSC osc(
|
|
.CLK${osc}PU(1'b1),
|
|
.CLK${osc}EN(1'b1),
|
|
.CLK${osc}(clk)
|
|
);
|
|
SB_IO #(
|
|
.PIN_TYPE(6'b 0101_00)
|
|
) pin_obuf (
|
|
.PACKAGE_PIN(pin),
|
|
.OUTPUT_CLK(clk),
|
|
.D_OUT_0(data)
|
|
);
|
|
endmodule
|
|
EOT
|
|
ICEDEV=u4k-sg48 bash ../../icecube.sh ${pf}.v > ${pf}.log 2>&1
|
|
../../../icebox/icebox_explain.py ${pf}.asc > ${pf}.exp
|
|
rm -rf ${pf}.tmp
|
|
done
|
|
|
|
pf="glb_u4k_gbufin"
|
|
cat > ${pf}.v <<- EOT
|
|
module top (input [7:0] clk, data, output [7:0] pin);
|
|
wire [7:0] gc;
|
|
SB_GB gbufin[7:0] (
|
|
.USER_SIGNAL_TO_GLOBAL_BUFFER(clk),
|
|
.GLOBAL_BUFFER_OUTPUT(gc)
|
|
);
|
|
SB_IO #(
|
|
.PIN_TYPE(6'b 0101_00)
|
|
) pin_obuf[7:0] (
|
|
.PACKAGE_PIN(pin),
|
|
.OUTPUT_CLK(gc),
|
|
.D_OUT_0(data)
|
|
);
|
|
endmodule
|
|
EOT
|
|
# echo "set_io clk 10" > ${pf}.pcf
|
|
ICEDEV=u4k-sg48 bash ../../icecube.sh ${pf}.v > ${pf}.log 2>&1
|
|
../../../icebox/icebox_explain.py ${pf}.asc > ${pf}.exp
|
|
rm -rf ${pf}.tmp
|