Merge remote-tracking branch 'origin/master' into ganesh_dev

This commit is contained in:
Ganesh Gore 2020-11-22 16:37:36 -07:00
commit 8053d7e626
62 changed files with 338559 additions and 943 deletions

View File

@ -0,0 +1,4 @@
a 0.5 0.5
b 0.5 0.5
c 0.25 0.25
d 0.25 0.25

View File

@ -0,0 +1,11 @@
.model and2_or2
.inputs a b
.outputs c d
.names a b c
11 1
.names a b d
00 0
.end

View File

@ -0,0 +1,22 @@
/////////////////////////////////////////
// Functionality: 2-input AND + 2-input OR
// This benchmark is designed to test fracturable LUTs
// Author: Xifan Tang
////////////////////////////////////////
`timescale 1ns / 1ps
module and2_or2(
a,
b,
c,
d);
input wire a;
input wire b;
output wire c;
output wire d;
assign c = a & b;
assign d = a | b;
endmodule

View File

@ -0,0 +1,38 @@
//-------------------------------------------------------------------
// Function: Binary to Decimal converter
// Source:
// https://verilogcodes.blogspot.com/2015/10/verilog-code-for-8-bit-binary-to-bcd.html
//-------------------------------------------------------------------
module bin2bcd(
bin,
bcd
);
//input ports and their sizes
input [7:0] bin;
//output ports and, their size
output [11:0] bcd;
//Internal variables
reg [11 : 0] bcd;
reg [3:0] i;
//Always block - implement the Double Dabble algorithm
always @(bin)
begin
bcd = 0; //initialize bcd to zero.
for (i = 0; i < 8; i = i+1) //run for 8 iterations
begin
bcd = {bcd[10:0],bin[7-i]}; //concatenation
//if a hex digit of 'bcd' is more than 4, add 3 to it.
if(i < 7 && bcd[3:0] > 4)
bcd[3:0] = bcd[3:0] + 3;
if(i < 7 && bcd[7:4] > 4)
bcd[7:4] = bcd[7:4] + 3;
if(i < 7 && bcd[11:8] > 4)
bcd[11:8] = bcd[11:8] + 3;
end
end
endmodule

View File

@ -0,0 +1,31 @@
//-------------------------------------------------------------------
// Function: Testbench for the Binary to Decimal converter
// Source:
// https://verilogcodes.blogspot.com/2015/10/verilog-code-for-8-bit-binary-to-bcd.html
module tb_bin2bcd;
// Input
reg [7:0] bin;
// Output
wire [11:0] bcd;
// Extra variables
reg [8:0] i;
// Instantiate the Unit Under Test (UUT)
bin2bcd uut (
.bin(bin),
.bcd(bcd)
);
//Simulation - Apply inputs
initial begin
//A for loop for checking all the input combinations.
for(i=0;i<256;i=i+1)
begin
bin = i;
#10; //wait for 10 ns.
end
$finish; //system function for stoping the simulation.
end
endmodule

View File

@ -1,16 +1,16 @@
module counter(clk_counter, q_counter, rst_counter);
module counter(clk, q, rst);
input clk_counter;
input rst_counter;
output [7:0] q_counter;
reg [7:0] q_counter;
input clk;
input rst;
output [7:0] q;
reg [7:0] q;
always @ (posedge clk_counter)
always @ (posedge clk)
begin
if(rst_counter)
q_counter <= 8'b00000000;
if(rst)
q <= 8'b00000000;
else
q_counter <= q_counter + 1;
q <= q + 1;
end
endmodule

View File

@ -0,0 +1,10 @@
IN0 0.505000 0.204400
IN1 0.491000 0.206000
IN2 0.472000 0.204400
clk 0.500000 2.000000
OUT1 0.491000 0.206000
OUT0 0.505000 0.204400
OUT2 0.472000 0.204400
n15 0.491000 0.101146
n18 0.505000 0.103222
n21 0.472000 0.096477

View File

@ -0,0 +1,16 @@
# Benchmark "routing_test" written by ABC on Tue Apr 21 18:25:21 2020
.model routing_test
.inputs IN0 IN1 IN2 clk
.outputs OUT0 OUT1 OUT2
.latch n15 OUT1 re clk 2
.latch n18 OUT0 re clk 2
.latch n21 OUT2 re clk 2
.names IN1 n15
1 1
.names IN0 n18
1 1
.names IN2 n21
1 1
.end

View File

@ -0,0 +1,19 @@
module routing_test(IN0,IN1,IN2, clk, OUT0,OUT1,OUT2);
input wire IN0,IN1,IN2,clk;
output reg OUT0, OUT1, OUT2;
always @(posedge clk)
begin
OUT0 <= IN0;
OUT1 <= IN1;
OUT2 <= IN2;
end
endmodule

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,4 @@
Disclaimer:
The use of this code is at your own risk. Of course, we do made every effort to ensure
that the reference files are free of bugs and issues. We also tested the design on FPGAs
to make sure that it actually works.

View File

@ -0,0 +1,225 @@
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Team: Virginia Tech Secure Embedded Systems (SES) Lab
// Implementer: Ege Gulcan
//
// Create Date: 17:21:26 11/13/2013
// Design Name:
// Module Name: simon_datapath_shiftreg
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module simon_datapath_shiftreg(clk,data_in,data_rdy,key_in,cipher_out,round_counter,bit_counter);
input clk,data_in,key_in;
input [1:0] data_rdy;
input round_counter;
output cipher_out;
output [5:0] bit_counter;
reg [55:0] shifter1;
reg [63:0] shifter2;
reg shift_in1,shift_in2;
wire shift_out1,shift_out2;
reg shifter_enable1,shifter_enable2;
reg fifo_ff63,fifo_ff62,fifo_ff61,fifo_ff60,fifo_ff59,fifo_ff58,fifo_ff57,fifo_ff56;
reg lut_ff63,lut_ff62,lut_ff61,lut_ff60,lut_ff59,lut_ff58,lut_ff57,lut_ff56;
reg lut_ff_input,fifo_ff_input;
reg lut_rol1,lut_rol2,lut_rol8;
reg s1,s4,s5,s6,s7;
reg [1:0] s3;
reg [5:0] bit_counter;
wire lut_out;
// Shift Register1 FIFO 56x1 Begin
// 56x1 Shift register to store the upper word
always @(posedge clk)
begin
if(shifter_enable1)
begin
shifter1 <= {shift_in1, shifter1[55:1]};
end
end
assign shift_out1 = shifter1[0];
// Shift Register1 End
// Shift Register2 FIFO 64x1 Begin
// 64x1 Shift register to store the lower word
always @(posedge clk)
begin
if(shifter_enable2)
begin
shifter2 <= {shift_in2, shifter2[63:1]};
end
end
assign shift_out2 = shifter2[0];
// Shift Register2 End
// 8 Flip-Flops to store the most significant 8 bits of the upper word at even rounds
// Denoted as Shift Register Up (SRU) in Figure 5
always@(posedge clk)
begin
if(shifter_enable1)
begin
fifo_ff63 <= fifo_ff_input;
fifo_ff62 <= fifo_ff63;
fifo_ff61 <= fifo_ff62;
fifo_ff60 <= fifo_ff61;
fifo_ff59 <= fifo_ff60;
fifo_ff58 <= fifo_ff59;
fifo_ff57 <= fifo_ff58;
fifo_ff56 <= fifo_ff57;
end
end
// 8 Flip-Flops to store the most significant 8 bits of the upper word at odd rounds
// Denoted as Shift Register Down (SRD) in Figure 5
always@(posedge clk)
begin
lut_ff63 <= lut_ff_input;
lut_ff62 <= lut_ff63;
lut_ff61 <= lut_ff62;
lut_ff60 <= lut_ff61;
lut_ff59 <= lut_ff60;
lut_ff58 <= lut_ff59;
lut_ff57 <= lut_ff58;
lut_ff56 <= lut_ff57;
end
// FIFO 64x1 Input MUX
// Input of the lower FIFO is always the output of the upper FIFO
always@(*)
begin
shift_in2 = shift_out1;
end
// FIFO 56x1 Input MUX
// Input of the upper FIFO depends on the select line S1
always@(*)
begin
if(s1==0)
shift_in1 = lut_ff56;
else
shift_in1 = fifo_ff56;
end
// FIFO FF Input MUX
// The input of FIFO_FF can be the input plaintext, output of 56x1 FIFO or the output of LUT
always@(*)
begin
if(s3==0)
fifo_ff_input = data_in;
else if(s3==1)
fifo_ff_input = shift_out1;
else if(s3==2)
fifo_ff_input = lut_out;
else
fifo_ff_input = 1'bx; // Debugging
end
// LUT FF Input MUX
// The input of the LUT_FF is either the output of 56x1 FIFO or the output of LUT
always@(*)
begin
if(s5==0)
lut_ff_input = shift_out1;
else
lut_ff_input = lut_out;
end
// LUT Input MUX
always@(*)
begin
if(s7==0)
lut_rol1 = fifo_ff63;
else
lut_rol1 = lut_ff63;
if(s4==0)
lut_rol2 = fifo_ff62;
else
lut_rol2 = lut_ff62;
if(s6==0)
lut_rol8 = fifo_ff56;
else
lut_rol8 = lut_ff56;
end
//Selection MUX
always@(*)
begin
// For the first 8 bits of each even round OR for all the bits after the first 8 bits in odd rounds OR loading the plaintext
if((round_counter==0 && bit_counter<8)||(round_counter==1 && bit_counter>7)||(data_rdy==1))
s1 = 1;
else
s1 = 0;
if(data_rdy==1) // Loading plaintext
s3 = 0;
else if(round_counter==0) // Even rounds
s3 = 1;
else if(round_counter==1) // Odd rounds
s3 = 2;
else
s3 = 1'bx; // For debugging
if(round_counter==0) // Even rounds
s6 = 0;
else
s6 = 1;
s4 = s6;
s7 = s6;
s5 = ~s6;
end
// SHIFTER ENABLES
// Two shift registers are enabled when the plaintext is being loaded (1) or when the block cipher is running (3)
always@(*)
begin
if(data_rdy==1 || data_rdy==3)
begin
shifter_enable1 = 1;
shifter_enable2 = 1;
end
else
begin
shifter_enable1 = 0;
shifter_enable2 = 0;
end
end
// The bit_counter value is incremented in each clock cycle when the block cipher is running
always@(posedge clk)
begin
if(data_rdy==0)
bit_counter <= 0;
else if(data_rdy==3)
bit_counter <= bit_counter + 1;
else
bit_counter <= bit_counter;
end
// The new computed value
assign lut_out = (lut_rol1 & lut_rol8) ^ shift_out2 ^ lut_rol2 ^ key_in;
// The global output that gives the ciphertext value
assign cipher_out = lut_out;
endmodule

View File

@ -0,0 +1,241 @@
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Team: Virginia Tech Secure Embedded Systems (SES) Lab
// Implementer: Ege Gulcan
//
// Create Date: 16:55:06 11/12/2013
// Design Name:
// Module Name: simon_key_expansion_shiftreg
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module simon_key_expansion_shiftreg(clk,data_in,key_out,data_rdy,bit_counter,round_counter_out);
input clk;
input data_in;
input [1:0] data_rdy;
input [5:0] bit_counter;
output key_out;
output round_counter_out;
reg [59:0] shifter1;
reg [63:0] shifter2;
reg shift_in1,shift_in2;
wire shift_out1,shift_out2;
reg shifter_enable1,shifter_enable2;
reg lut_ff_enable,fifo_ff_enable;
wire lut_out;
reg lut_in3;
reg s2,s3;
reg [1:0] s1;
reg [6:0] round_counter;
reg z_value;
reg fifo_ff0,fifo_ff1,fifo_ff2,fifo_ff3;
//(* shreg_extract = "no" *)
reg lut_ff0,lut_ff1,lut_ff2,lut_ff3;
//Constant value Z ROM
reg [0:67] Z = 68'b10101111011100000011010010011000101000010001111110010110110011101011;
reg c;
/////////////////////////////////////////
//// BEGIN CODE ////////////////////////
///////////////////////////////////////
// Least bit of the round counter is sent to the datapath to check if it is even or odd
assign round_counter_out = round_counter[0];
// Shift Register1 FIFO 60x1 Begin
// 60x1 shift register storing the 60 most significant bits of the upper word of the key
always @(posedge clk)
begin
if(shifter_enable1)
begin
shifter1 <= {shift_in1, shifter1[59:1]};
end
end
assign shift_out1 = shifter1[0];
// Shift Register1 End
// Shift Register2 FIFO 64x1 Begin
// 64x1 shift register storing the lower word of the key
always @(posedge clk)
begin
if(shifter_enable2)
begin
shifter2 <= {shift_in2, shifter2[63:1]};
end
end
assign shift_out2 = shifter2[0];
// Shift Register2 End
// 4 flip-flops storing the least significant 4 bits of the upper word in the first round
always @(posedge clk)
begin
if(fifo_ff_enable)
begin
fifo_ff3 <= shift_out1;
fifo_ff2 <= fifo_ff3;
fifo_ff1 <= fifo_ff2;
fifo_ff0 <= fifo_ff1;
end
end
// 4 flip-flops storing the least significant 4 bits of the upper word after the first round
always@(posedge clk)
begin
if(lut_ff_enable)
begin
lut_ff3 <= lut_out;
lut_ff2 <= lut_ff3;
lut_ff1 <= lut_ff2;
lut_ff0 <= lut_ff1;
end
end
//FIFO 64x1 Input MUX
always@(*)
begin
if(data_rdy==2)
shift_in2 = fifo_ff0;
else if(data_rdy==3 && (round_counter<1 || bit_counter>3))
shift_in2 = fifo_ff0;
else if(data_rdy==3 && bit_counter<4 && round_counter>0)
shift_in2 = lut_ff0;
else
shift_in2 = 1'bx;
end
//LUT >>3 Input MUX
always@(*)
begin
if(s2==0)
lut_in3 = fifo_ff3;
else
lut_in3 = lut_ff3;
end
//FIFO 60x1 Input MUX
always@(*)
begin
if(s1==0)
shift_in1 = fifo_ff0;
else if(s1==1)
shift_in1 = data_in;
else if(s1==2)
shift_in1 = lut_out;
else if(s1==3)
shift_in1 = lut_ff0;
else
shift_in1 = 1'bx;
end
//S2 MUX
always@(*)
begin
if(bit_counter==0 && round_counter!=0)
s2 = 1;
else
s2 = 0;
end
//S1 MUX
always@(*)
begin
if(data_rdy==2)
s1 = 1;
else if(data_rdy==3 && bit_counter<4 && round_counter==0)
s1 = 0;
else if(data_rdy==3 && bit_counter<4 && round_counter>0)
s1 = 3;
else
s1 = 2;
end
// LUT FF ENABLE MUX
// LUT FFs are used only at the first four clock cycles of each round
always@(*)
begin
if(data_rdy==3 && bit_counter<4)
lut_ff_enable = 1;
else
lut_ff_enable = 0;
end
//FIFO FF ENABLE MUX
always@(*)
begin
if(data_rdy==2 || data_rdy==3)
fifo_ff_enable = 1;
else
fifo_ff_enable = 0;
end
//SHIFTER ENABLES
// Shifters are enabled when the key is loaded or block cipher is running
always@(*)
begin
if(data_rdy==2 || data_rdy==3)
shifter_enable1 = 1;
else
shifter_enable1 = 0;
if(data_rdy==2 || data_rdy==3)
shifter_enable2 = 1;
else
shifter_enable2 = 0;
end
//Round Counter
always@(posedge clk)
begin
if(data_rdy==3 && bit_counter==63)
round_counter <= round_counter + 1;
else if(data_rdy==0)
round_counter <= 0;
else
round_counter <= round_counter;
end
// The necessary bit of the constant Z is selected by the round counter
always @(*)
begin
if(bit_counter==0)
z_value = Z[round_counter];
else
z_value = 0;
end
// The value of c is 1 at the first two cycles of each round only
always @(*)
begin
if(bit_counter==0 || bit_counter==1)
c = 0;
else
c = 1;
end
// New computed key bit
assign lut_out = shift_out2 ^ lut_in3 ^ shift_out1 ^ z_value ^ c;
// Output key bit that is connected to the datapath
assign key_out = shift_out2;
endmodule

View File

@ -0,0 +1,45 @@
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Team: Virginia Tech Secure Embedded Systems (SES) Lab
// Implementer: Ege Gulcan
//
// Create Date: 19:14:37 11/13/2013
// Design Name:
// Module Name: top_module
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module top_module(clk,data_in,data_rdy,cipher_out);
input clk,data_in;
input [1:0] data_rdy;
output cipher_out;
wire key;
wire [5:0] bit_counter;
wire round_counter_out;
/*
data_rdy=0 -> Reset, Idle
data_rdy=1 -> Load Plaintext
data_rdy=2 -> Load Key
data_rdy=3 -> Run (keep at 3 while the block cipher is running)
*/
simon_datapath_shiftreg datapath(.clk(clk), .data_in(data_in), .data_rdy(data_rdy), .key_in(key),
. cipher_out(cipher_out), .round_counter(round_counter_out), .bit_counter(bit_counter));
simon_key_expansion_shiftreg key_exp(.clk(clk), .data_in(data_in), .data_rdy(data_rdy), .key_out(key), .bit_counter(bit_counter),
.round_counter_out(round_counter_out));
endmodule

View File

@ -0,0 +1,93 @@
`timescale 1ns / 1ps
////////////////////////////////////////////////////////////////////////////////
// Team: Virginia Tech Secure Embedded Systems (SES) Lab
// Implementer: Ege Gulcan
//
// Create Date: 19:49:46 11/13/2013
// Design Name: top_module
// Module Name: top_module_test.v
// Project Name: SIMON
// Target Device:
// Tool versions:
// Description:
//
// Verilog Test Fixture created by ISE for module: top_module
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
////////////////////////////////////////////////////////////////////////////////
module top_module_test;
// Inputs
reg clk;
reg data_in;
reg [1:0] data_rdy;
// Outputs
wire cipher_out;
// Plaintext and key from the NSA Simon and Speck paper
reg [127:0] plaintext = 128'h63736564207372656c6c657661727420;
reg [127:0] key = 128'h0f0e0d0c0b0a09080706050403020100;
integer i;
// Instantiate the Unit Under Test (UUT)
top_module uut (
.clk(clk),
.data_in(data_in),
.data_rdy(data_rdy),
.cipher_out(cipher_out)
);
initial begin
// Initialize Inputs
clk = 0;
data_in = 0;
data_rdy = 0;
#110;
#5;
//Set data_rdy=1 to load plaintext
data_rdy=1;
//Loads the plaintext one bit per clock cycle for 128 cycles
for(i=0;i<128;i = i+1)
begin
data_in = plaintext[i];
#20;
end
//Set data_rdy=2 to load key
data_rdy = 2;
//Loads the key one bit per clock cycle for 128 cycles
for(i=0;i<128;i = i+1)
begin
data_in = key[i];
#20;
end
//Set data_rdy=0 after loading is done
data_rdy = 0;
#20;
//Keep data_rdy=3 while the cipher is running
data_rdy = 3;
end
always #10 clk = ~clk;
endmodule

View File

@ -14,7 +14,7 @@ Feedback connections between LEs are implemented by the global routing architect
.. _fig_clb_arch:
.. figure:: ./figures/clb_arch.png
.. figure:: ./figures/clb_arch.svg
:scale: 20%
:alt: Configurable Logic Block schematic
@ -32,7 +32,7 @@ As shown in :numref:`fig_fle_arch`, each Logic Element (LE) consists of
.. _fig_fle_arch:
.. figure:: ./figures/fle_arch.png
.. figure:: ./figures/fle_arch.svg
:scale: 30%
:alt: Logic element schematic

Binary file not shown.

Before

Width:  |  Height:  |  Size: 376 KiB

View File

@ -0,0 +1,662 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="172.74487 23.546684 387.7383 634.0596" width="387.7383" height="634.0596">
<defs>
<font-face font-family="Times New Roman" font-size="26" panose-1="2 2 8 3 7 5 5 2 3 4" units-per-em="1000" underline-position="-108.88672" underline-thickness="95.21484" slope="0" x-height="456.54297" cap-height="662.1094" ascent="891.1133" descent="-216.3086" font-weight="700">
<font-face-src>
<font-face-name name="TimesNewRomanPS-BoldMT"/>
</font-face-src>
</font-face>
<font-face font-family="Times New Roman" font-size="18" panose-1="2 2 5 3 5 4 5 9 3 4" units-per-em="1000" underline-position="-108.88672" underline-thickness="48.828125" slope="-907.3885" x-height="430.1758" cap-height="662.1094" ascent="891.1133" descent="-216.3086" font-style="italic" font-weight="400">
<font-face-src>
<font-face-name name="TimesNewRomanPS-ItalicMT"/>
</font-face-src>
</font-face>
<font-face font-family="Times New Roman" font-size="19" panose-1="2 2 8 3 7 5 5 2 3 4" units-per-em="1000" underline-position="-108.88672" underline-thickness="95.21484" slope="0" x-height="456.54297" cap-height="662.1094" ascent="891.1133" descent="-216.3086" font-weight="700">
<font-face-src>
<font-face-name name="TimesNewRomanPS-BoldMT"/>
</font-face-src>
</font-face>
<font-face font-family="Times New Roman" font-size="21" panose-1="2 2 8 3 7 5 5 2 3 4" units-per-em="1000" underline-position="-108.88672" underline-thickness="95.21484" slope="0" x-height="456.54297" cap-height="662.1094" ascent="891.1133" descent="-216.3086" font-weight="700">
<font-face-src>
<font-face-name name="TimesNewRomanPS-BoldMT"/>
</font-face-src>
</font-face>
</defs>
<metadata> Produced by OmniGraffle 7.18\n2020-11-17 05:15:21 +0000</metadata>
<g id="lb" fill="none" stroke="none" stroke-opacity="1" stroke-dasharray="none" fill-opacity="1">
<title>lb</title>
<g id="lb_le">
<title>le</title>
<g id="Graphic_389">
<rect x="230.625" y="50.73861" width="282.31214" height="585.4767" fill="#ccc"/>
<rect x="230.625" y="50.73861" width="282.31214" height="585.4767" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_306">
<text transform="translate(225.22702 23.546684)" fill="black">
<tspan font-family="Times New Roman" font-size="26" font-weight="700" fill="black" x="0" y="23">CLB</tspan>
</text>
</g>
<g id="Group_323">
<g id="Line_265">
<line x1="499.1738" y1="570.8581" x2="512.93714" y2="570.8581" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_264">
<line x1="498.375" y1="519.5989" x2="512.13835" y2="519.5989" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_260">
<line x1="392.56796" y1="618.75" x2="392.56796" y2="636.2153" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_252">
<text transform="translate(390.6112 486.84304)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">out0</tspan>
</text>
</g>
<g id="Graphic_251">
<text transform="translate(390.6112 549.8966)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">out1</tspan>
</text>
</g>
<g id="Graphic_250">
<text transform="translate(292.5654 484.2683)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">in0</tspan>
</text>
</g>
<g id="Graphic_249">
<text transform="translate(294.38047 548.3733)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">in5</tspan>
</text>
</g>
<g id="Graphic_248">
<text transform="translate(352.67097 476.8819)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">Cin</tspan>
</text>
</g>
<g id="Graphic_247">
<text transform="translate(352.0815 557.4068)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">Cin</tspan>
</text>
</g>
<g id="Graphic_246">
<rect x="287.76092" y="476.4653" width="210.61408" height="140.03472" fill="#ffff80"/>
<rect x="287.76092" y="476.4653" width="210.61408" height="140.03472" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(292.76092 524.6755)" fill="black">
<tspan font-family="Times New Roman" font-size="19" font-weight="700" fill="black" x="87.63419" y="17">LE</tspan>
<tspan font-family="Times New Roman" font-size="19" font-weight="700" fill="black" x="89.22989" y="38.80713">[7]</tspan>
</text>
</g>
<g id="Graphic_245">
<text transform="translate(462.35326 509.7166)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">out0</tspan>
</text>
</g>
<g id="Graphic_244">
<text transform="translate(462.35326 560.97576)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">out1</tspan>
</text>
</g>
<g id="Graphic_243">
<text transform="translate(296.99142 481.3822)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">in0</tspan>
</text>
</g>
<g id="Graphic_242">
<text transform="translate(296.99142 550.97576)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">in3</tspan>
</text>
</g>
<g id="Graphic_241">
<text transform="translate(366.31518 594.0916)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">reg_out</tspan>
</text>
</g>
<g id="Graphic_240">
<text transform="translate(366.31518 474.93224)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">reg_in</tspan>
</text>
</g>
<g id="Line_239">
<line x1="392.56796" y1="459" x2="392.56796" y2="476.4653" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_309">
<text transform="translate(296.99142 504.58004)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">in1</tspan>
</text>
</g>
<g id="Graphic_310">
<text transform="translate(296.99142 527.7779)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">in2</tspan>
</text>
</g>
<g id="Graphic_311">
<text transform="translate(291.4807 574.1736)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">CLK</tspan>
</text>
</g>
<g id="Graphic_312">
<text transform="translate(428.5514 474.93224)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">sc_in</tspan>
</text>
</g>
<g id="Graphic_313">
<text transform="translate(431.2312 594.0916)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">sc_out</tspan>
</text>
</g>
<g id="Graphic_314">
<text transform="translate(290.30737 594.0916)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">Test_en</tspan>
</text>
</g>
<g id="Line_315">
<line x1="273.1988" y1="493.36315" x2="286.96213" y2="493.36315" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_316">
<line x1="273.1988" y1="514.46237" x2="286.96213" y2="514.46237" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_317">
<line x1="273.1988" y1="537.6602" x2="286.96213" y2="537.6602" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_318">
<line x1="273.1988" y1="559.77895" x2="286.96213" y2="559.77895" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_319">
<line x1="273.99758" y1="581.8977" x2="287.76092" y2="581.8977" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_320">
<line x1="273.1988" y1="605.0955" x2="286.96213" y2="605.0955" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_321">
<line x1="447.04895" y1="459" x2="447.04895" y2="476.4653" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_322">
<line x1="447.04895" y1="616.5" x2="447.04895" y2="633.9653" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
</g>
<g id="Group_324">
<g id="Line_355">
<line x1="499.1738" y1="162.5967" x2="512.93714" y2="162.5967" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_354">
<line x1="498.375" y1="111.33754" x2="512.13835" y2="111.33754" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_353">
<line x1="392.56796" y1="210.4886" x2="392.56796" y2="227.95389" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_352">
<text transform="translate(390.6112 78.58165)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">out0</tspan>
</text>
</g>
<g id="Graphic_351">
<text transform="translate(390.6112 141.63523)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">out1</tspan>
</text>
</g>
<g id="Graphic_350">
<text transform="translate(292.5654 76.00691)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">in0</tspan>
</text>
</g>
<g id="Graphic_349">
<text transform="translate(294.38047 140.1119)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">in5</tspan>
</text>
</g>
<g id="Graphic_348">
<text transform="translate(352.67097 68.6205)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">Cin</tspan>
</text>
</g>
<g id="Graphic_347">
<text transform="translate(352.0815 149.14538)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">Cin</tspan>
</text>
</g>
<g id="Graphic_346">
<rect x="287.76092" y="68.20389" width="210.61408" height="140.03472" fill="#ffff80"/>
<rect x="287.76092" y="68.20389" width="210.61408" height="140.03472" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(292.76092 116.41412)" fill="black">
<tspan font-family="Times New Roman" font-size="19" font-weight="700" fill="black" x="87.63419" y="17">LE</tspan>
<tspan font-family="Times New Roman" font-size="19" font-weight="700" fill="black" x="89.22989" y="38.80713">[0]</tspan>
</text>
</g>
<g id="Graphic_345">
<text transform="translate(462.35326 101.45522)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">out0</tspan>
</text>
</g>
<g id="Graphic_344">
<text transform="translate(462.35326 152.71437)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">out1</tspan>
</text>
</g>
<g id="Graphic_343">
<text transform="translate(296.99142 73.12079)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">in0</tspan>
</text>
</g>
<g id="Graphic_342">
<text transform="translate(296.99142 142.71437)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">in3</tspan>
</text>
</g>
<g id="Graphic_341">
<text transform="translate(366.31518 185.83022)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">reg_out</tspan>
</text>
</g>
<g id="Graphic_340">
<text transform="translate(366.31518 66.67085)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">reg_in</tspan>
</text>
</g>
<g id="Line_339">
<line x1="392.56796" y1="50.73861" x2="392.56796" y2="68.20389" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_338">
<text transform="translate(296.99142 96.31865)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">in1</tspan>
</text>
</g>
<g id="Graphic_337">
<text transform="translate(296.99142 119.51651)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">in2</tspan>
</text>
</g>
<g id="Graphic_336">
<text transform="translate(291.4807 165.91223)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">CLK</tspan>
</text>
</g>
<g id="Graphic_335">
<text transform="translate(428.5514 66.67085)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">sc_in</tspan>
</text>
</g>
<g id="Graphic_334">
<text transform="translate(431.2312 185.83022)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">sc_out</tspan>
</text>
</g>
<g id="Graphic_333">
<text transform="translate(290.30737 185.83022)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">Test_en</tspan>
</text>
</g>
<g id="Line_332">
<path d="M 273.1988 85.10175 L 276.6276 84.95052 L 286.96213 85.10175" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_331">
<line x1="273.1988" y1="106.20098" x2="286.96213" y2="106.20098" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_330">
<line x1="273.1988" y1="129.39884" x2="286.96213" y2="129.39884" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_329">
<line x1="273.1988" y1="151.51756" x2="286.96213" y2="151.51756" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_328">
<line x1="273.99758" y1="173.63628" x2="287.76092" y2="173.63628" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_327">
<line x1="273.1988" y1="196.83414" x2="286.96213" y2="196.83414" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_326">
<line x1="447.04895" y1="50.73861" x2="447.04895" y2="68.20389" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_325">
<line x1="447.04895" y1="208.2386" x2="447.04895" y2="225.70389" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
</g>
<g id="Group_356">
<g id="Line_387">
<line x1="499.1738" y1="338.47864" x2="512.93714" y2="338.47864" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_386">
<line x1="498.375" y1="287.2195" x2="512.13835" y2="287.2195" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_385">
<line x1="392.56796" y1="386.37055" x2="392.56796" y2="403.83583" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_384">
<text transform="translate(390.6112 254.4636)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">out0</tspan>
</text>
</g>
<g id="Graphic_383">
<text transform="translate(390.6112 317.51718)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">out1</tspan>
</text>
</g>
<g id="Graphic_382">
<text transform="translate(292.5654 251.88886)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">in0</tspan>
</text>
</g>
<g id="Graphic_381">
<text transform="translate(294.38047 315.99385)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">in5</tspan>
</text>
</g>
<g id="Graphic_380">
<text transform="translate(352.67097 244.50244)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">Cin</tspan>
</text>
</g>
<g id="Graphic_379">
<text transform="translate(352.0815 325.02733)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">Cin</tspan>
</text>
</g>
<g id="Graphic_378">
<rect x="287.76092" y="244.08583" width="210.61408" height="140.03472" fill="#ffff80"/>
<rect x="287.76092" y="244.08583" width="210.61408" height="140.03472" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(292.76092 292.29606)" fill="black">
<tspan font-family="Times New Roman" font-size="19" font-weight="700" fill="black" x="87.63419" y="17">LE</tspan>
<tspan font-family="Times New Roman" font-size="19" font-weight="700" fill="black" x="89.22989" y="38.80713">[1]</tspan>
</text>
</g>
<g id="Graphic_377">
<text transform="translate(462.35326 277.33716)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">out0</tspan>
</text>
</g>
<g id="Graphic_376">
<text transform="translate(462.35326 328.5963)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">out1</tspan>
</text>
</g>
<g id="Graphic_375">
<text transform="translate(296.99142 249.00273)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">in0</tspan>
</text>
</g>
<g id="Graphic_374">
<text transform="translate(296.99142 318.5963)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">in3</tspan>
</text>
</g>
<g id="Graphic_373">
<text transform="translate(366.31518 361.71216)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">reg_out</tspan>
</text>
</g>
<g id="Graphic_372">
<text transform="translate(366.31518 242.5528)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">reg_in</tspan>
</text>
</g>
<g id="Line_371">
<line x1="392.56796" y1="226.62055" x2="392.56796" y2="244.08583" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_370">
<text transform="translate(296.99142 272.2006)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">in1</tspan>
</text>
</g>
<g id="Graphic_369">
<text transform="translate(296.99142 295.39846)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">in2</tspan>
</text>
</g>
<g id="Graphic_368">
<text transform="translate(291.4807 341.79418)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">CLK</tspan>
</text>
</g>
<g id="Graphic_367">
<text transform="translate(428.5514 242.5528)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">sc_in</tspan>
</text>
</g>
<g id="Graphic_366">
<text transform="translate(431.2312 361.71216)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">sc_out</tspan>
</text>
</g>
<g id="Graphic_365">
<text transform="translate(290.30737 361.71216)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">Test_en</tspan>
</text>
</g>
<g id="Line_364">
<line x1="273.1988" y1="260.9837" x2="286.96213" y2="260.9837" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_363">
<line x1="273.1988" y1="282.08292" x2="286.96213" y2="282.08292" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_362">
<line x1="273.1988" y1="305.28078" x2="286.96213" y2="305.28078" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_361">
<line x1="273.1988" y1="327.3995" x2="286.96213" y2="327.3995" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_360">
<line x1="273.99758" y1="349.51822" x2="287.76092" y2="349.51822" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_359">
<line x1="273.1988" y1="372.7161" x2="286.96213" y2="372.7161" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_358">
<line x1="447.04895" y1="226.62055" x2="447.04895" y2="244.08583" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_357">
<line x1="447.04895" y1="384.12055" x2="447.04895" y2="401.58583" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
</g>
<g id="Graphic_388">
<text transform="translate(409.73615 418.97187)" fill="black">
<tspan font-family="Times New Roman" font-size="21" font-weight="700" fill="black" x="0" y="19">...</tspan>
</text>
</g>
<g id="Graphic_390">
<text transform="translate(366.31518 28.216606)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">reg_in</tspan>
</text>
</g>
<g id="Graphic_391">
<text transform="translate(427.8562 28.216606)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">sc_in</tspan>
</text>
</g>
<g id="Graphic_393">
<text transform="translate(368.9556 636.8416)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">reg_out</tspan>
</text>
</g>
<g id="Graphic_394">
<text transform="translate(430.1062 636.8416)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">sc_out</tspan>
</text>
</g>
<g id="Graphic_438">
<text transform="translate(183.7268 72.65411)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">I0[0]</tspan>
</text>
</g>
<g id="Graphic_439">
<text transform="translate(183.7268 96.27911)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">I0[1]</tspan>
</text>
</g>
<g id="Graphic_440">
<text transform="translate(183.7268 119.9041)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">I0[2]</tspan>
</text>
</g>
<g id="Graphic_441">
<text transform="translate(181.2263 143.5291)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">I0i[0]</tspan>
</text>
</g>
<g id="Graphic_442">
<text transform="translate(185.71752 163.99268)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">CLK</tspan>
</text>
</g>
<g id="Graphic_443">
<text transform="translate(172.74487 183.33125)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">Test_en</tspan>
</text>
</g>
<g id="Graphic_447">
<text transform="translate(187.6643 251.5291)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">I1[0]</tspan>
</text>
</g>
<g id="Graphic_446">
<text transform="translate(187.6643 275.1541)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">I1[1]</tspan>
</text>
</g>
<g id="Graphic_445">
<text transform="translate(187.6643 298.7791)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">I1[2]</tspan>
</text>
</g>
<g id="Graphic_444">
<text transform="translate(185.1638 322.4041)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">I1i[0]</tspan>
</text>
</g>
<g id="Graphic_451">
<text transform="translate(187.6643 483.2791)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">I7[0]</tspan>
</text>
</g>
<g id="Graphic_450">
<text transform="translate(187.6643 506.9041)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">I7[1]</tspan>
</text>
</g>
<g id="Graphic_449">
<text transform="translate(187.6643 530.5291)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">I7[2]</tspan>
</text>
</g>
<g id="Graphic_448">
<text transform="translate(185.1638 554.1541)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">I7i[0]</tspan>
</text>
</g>
<g id="Graphic_452">
<text transform="translate(516.03686 99.6541)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">O[0]</tspan>
</text>
</g>
<g id="Graphic_453">
<text transform="translate(516.03686 150.8416)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">O[1]</tspan>
</text>
</g>
<g id="Graphic_455">
<text transform="translate(516.03686 274.0291)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">O[2]</tspan>
</text>
</g>
<g id="Graphic_454">
<text transform="translate(516.03686 325.2166)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">O[3]</tspan>
</text>
</g>
<g id="Graphic_457">
<text transform="translate(515.47436 509.1541)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">O[14]</tspan>
</text>
</g>
<g id="Graphic_456">
<text transform="translate(515.47436 560.3416)" fill="black">
<tspan font-family="Times New Roman" font-size="18" font-style="italic" font-weight="400" fill="black" x="0" y="16">O[15]</tspan>
</text>
</g>
</g>
<g id="lb_wire">
<title>wire</title>
<g id="Group_421">
<g id="Line_406">
<line x1="230.64755" y1="85.06491" x2="273.26645" y2="85" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_405">
<line x1="230.64755" y1="106.42149" x2="273.22134" y2="106.18991" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_404">
<line x1="230.69266" y1="129.58816" x2="273.26645" y2="129.35658" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_403">
<line x1="230.69266" y1="151.75482" x2="273.26645" y2="151.52325" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_402">
<line x1="230.69266" y1="173.87982" x2="273.26645" y2="173.64825" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_401">
<line x1="230.64755" y1="197.08816" x2="273.1988" y2="196.91667" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
</g>
<g id="Group_413">
<g id="Line_412">
<line x1="230.5799" y1="261.3149" x2="273.1988" y2="261.25" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_411">
<line x1="230.5799" y1="282.6715" x2="273.15368" y2="282.4399" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_410">
<line x1="230.625" y1="305.83816" x2="273.1988" y2="305.60658" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_409">
<line x1="230.625" y1="328.00482" x2="273.1988" y2="327.77325" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_408">
<line x1="251.29167" y1="350.12982" x2="273.1988" y2="349.89825" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
</g>
<g id="Group_423">
<g id="Line_428">
<line x1="230.64755" y1="493.6899" x2="273.26645" y2="493.625" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_427">
<line x1="230.64755" y1="515.0465" x2="273.22134" y2="514.8149" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_426">
<line x1="230.69266" y1="538.21316" x2="273.26645" y2="537.9816" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_425">
<line x1="230.69266" y1="560.3798" x2="273.26645" y2="560.14825" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_424">
<line x1="251.35933" y1="582.5048" x2="273.26645" y2="582.27325" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
</g>
<g id="Line_430">
<line x1="273.375" y1="196.875" x2="273.1988" y2="602.5469" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_431">
<line x1="251.6332" y1="176.83295" x2="251.457" y2="582.5048" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_432">
<ellipse cx="251.88934" cy="174.375" rx="3.93750629173872" ry="4.50000719055855" fill="black"/>
<ellipse cx="251.88934" cy="174.375" rx="3.93750629173872" ry="4.50000719055855" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_433">
<ellipse cx="273.6988" cy="196.3125" rx="3.93750629173876" ry="4.50000719055856" fill="black"/>
<ellipse cx="273.6988" cy="196.3125" rx="3.93750629173876" ry="4.50000719055856" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_434">
<ellipse cx="251.88934" cy="350.4375" rx="3.93750629173872" ry="4.50000719055853" fill="black"/>
<ellipse cx="251.88934" cy="350.4375" rx="3.93750629173872" ry="4.50000719055853" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_435">
<ellipse cx="273.6988" cy="371.9375" rx="3.93750629173876" ry="4.50000719055853" fill="black"/>
<ellipse cx="273.6988" cy="371.9375" rx="3.93750629173876" ry="4.50000719055853" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_436">
<ellipse cx="273.6988" cy="604.6875" rx="3.93750629173876" ry="4.50000719055857" fill="black"/>
<ellipse cx="273.6988" cy="604.6875" rx="3.93750629173876" ry="4.50000719055857" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_437">
<ellipse cx="251.88934" cy="582.1875" rx="3.93750629173872" ry="4.50000719055857" fill="black"/>
<ellipse cx="251.88934" cy="582.1875" rx="3.93750629173872" ry="4.50000719055857" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

View File

@ -0,0 +1,253 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="628.9111 1022.3935 418.46777 349.9947" width="418.46777" height="349.9947">
<defs>
<font-face font-family="Times" font-size="16" panose-1="0 0 5 0 0 0 0 9 0 0" units-per-em="1000" underline-position="-75.68359" underline-thickness="49.316406" slope="-937.5" x-height="446.28906" cap-height="652.34375" ascent="750" descent="-250" font-style="italic" font-weight="400">
<font-face-src>
<font-face-name name="Times-Italic"/>
</font-face-src>
</font-face>
<font-face font-family="Times" font-size="16" panose-1="0 0 8 0 0 0 0 9 0 0" units-per-em="1000" underline-position="-66.40625" underline-thickness="67.87109" slope="-937.5" x-height="462.8906" cap-height="668.9453" ascent="750" descent="-250" font-style="italic" font-weight="700">
<font-face-src>
<font-face-name name="Times-BoldItalic"/>
</font-face-src>
</font-face>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -4 10 8" markerWidth="10" markerHeight="8" color="#7f8080">
<g>
<path d="M 8 0 L 0 -3 L 0 3 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker_2" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-9 -4 10 8" markerWidth="10" markerHeight="8" color="#7f8080">
<g>
<path d="M -8 0 L 0 3 L 0 -3 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
<font-face font-family="Times New Roman" font-size="13" panose-1="2 2 8 3 7 5 5 2 3 4" units-per-em="1000" underline-position="-108.88672" underline-thickness="95.21484" slope="0" x-height="456.54297" cap-height="662.1094" ascent="891.1133" descent="-216.3086" font-weight="700">
<font-face-src>
<font-face-name name="TimesNewRomanPS-BoldMT"/>
</font-face-src>
</font-face>
</defs>
<metadata> Produced by OmniGraffle 7.18\n2020-11-19 23:01:04 +0000</metadata>
<g id="switch" fill="none" stroke="none" stroke-opacity="1" stroke-dasharray="none" fill-opacity="1">
<title>switch</title>
<g id="switch_boundary">
<title>boundary</title>
<g id="Graphic_567">
<rect x="744.75" y="1083.375" width="210.375" height="232.875" fill="#ffff80"/>
<path d="M 955.125 1083.375 L 744.75 1083.375 L 744.75 1316.25 L 955.125 1316.25 Z" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="4.0,4.0" stroke-width="1"/>
</g>
<g id="Line_568">
<line x1="955.125" y1="1235.206" x2="923.7813" y2="1235.9262" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_569">
<path d="M 859.332 1083 L 859.332 1101.6667 L 886.389 1101.4805" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_570">
<text transform="translate(829.418 1059.375)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">CCFF_IN</tspan>
</text>
</g>
<g id="Line_571">
<line x1="937.694" y1="1107.1693" x2="955.1471" y2="1107" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_572">
<text transform="translate(961.4805 1096.0833)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">CCFF_OUT</tspan>
</text>
</g>
<g id="Line_573">
<line x1="744.75" y1="1022.8935" x2="744.75" y2="1324" stroke="#7f8080" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_574">
<text transform="translate(756.29 1027.8935)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="700" fill="black" x="0" y="15">FPGA Fabric</tspan>
</text>
</g>
<g id="Graphic_575">
<text transform="translate(642.9111 1027.8935)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="700" fill="black" x="0" y="15">SoC Interface</tspan>
</text>
</g>
<g id="Line_576">
<line x1="963.5113" y1="1050.1534" x2="639.311" y2="1051.8419" marker-end="url(#FilledArrow_Marker)" marker-start="url(#FilledArrow_Marker_2)" stroke="#7f8080" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
</g>
<g id="switch_base">
<title>base</title>
<g id="Graphic_514">
<text transform="translate(684.168 1226.7952)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">SOC_IN</tspan>
</text>
</g>
<g id="Graphic_515">
<text transform="translate(670.8359 1277.3506)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">SOC_OUT</tspan>
</text>
</g>
<g id="Line_517">
<line x1="892.0556" y1="1236.2952" x2="743.3945" y2="1236.2952" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_518">
<line x1="795.4195" y1="1203.125" x2="795.4195" y2="1277.7382" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_519">
<line x1="907.753" y1="1203.0717" x2="907.7329" y2="1226.9284" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_522">
<line x1="956.4805" y1="1287.1037" x2="811.0889" y2="1287.1088" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_523">
<text transform="translate(961.4805 1277.602)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">FPGA_OUT</tspan>
</text>
</g>
<g id="Graphic_524">
<text transform="translate(960.125 1224.8457)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">FPGA_IN</tspan>
</text>
</g>
<g id="Graphic_542">
<ellipse cx="795.4195" cy="1199.125" rx="2.53125404468923" ry="3.00000479370559" fill="black"/>
<ellipse cx="795.4195" cy="1199.125" rx="2.53125404468923" ry="3.00000479370559" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_543">
<line x1="743.3945" y1="1199.675" x2="904.2251" y2="1199.0847" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_544">
<text transform="translate(673.5117 1190.3125)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">SOC_DIR</tspan>
</text>
</g>
<g id="Graphic_545">
<ellipse cx="907.7563" cy="1199.0717" rx="2.53125404468911" ry="3.00000479370553" fill="black"/>
<ellipse cx="907.7563" cy="1199.0717" rx="2.53125404468911" ry="3.00000479370553" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Group_552">
<g id="Graphic_556">
<path d="M 907.8607 1148.8333 L 907.8607 1156.8333 C 909.8607 1176.8333 915.8607 1178.8333 927.8607 1188.8333 C 939.8607 1178.8333 945.8607 1176.8333 947.8607 1156.8333 L 947.8607 1148.8333 C 939.8607 1150.8333 938.8607 1151.8333 927.8607 1152.8333 C 916.8607 1151.8333 915.8607 1150.8333 907.8607 1148.8333" fill="white"/>
<path d="M 907.8607 1148.8333 L 907.8607 1156.8333 C 909.8607 1176.8333 915.8607 1178.8333 927.8607 1188.8333 C 939.8607 1178.8333 945.8607 1176.8333 947.8607 1156.8333 L 947.8607 1148.8333 C 939.8607 1150.8333 938.8607 1151.8333 927.8607 1152.8333 C 916.8607 1151.8333 915.8607 1150.8333 907.8607 1148.8333" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_555">
<line x1="937.8607" y1="1138.8333" x2="937.8607" y2="1150.3333" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_554">
<line x1="917.8607" y1="1138.8333" x2="917.8607" y2="1148.8333" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_553">
<line x1="927.8607" y1="1187.541" x2="927.8607" y2="1198.8333" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
</g>
<g id="Graphic_558">
<rect x="887.002" y="1091.0833" width="29.338917" height="32.89894" fill="white"/>
<rect x="887.002" y="1091.0833" width="29.338917" height="32.89894" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(892.002 1099.7567)" fill="black">
<tspan font-family="Times New Roman" font-size="13" font-weight="700" fill="black" x="1.7285404" y="12">FF</tspan>
</text>
</g>
<g id="Graphic_557">
<path d="M 886.944 1112.6843 L 895.7246 1115.9805 L 886.944 1119.2767 Z" fill="#ccc"/>
<path d="M 886.944 1112.6843 L 895.7246 1115.9805 L 886.944 1119.2767 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Line_559">
<line x1="743.3945" y1="1116.7604" x2="886.944" y2="1116.0036" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_560">
<text transform="translate(657.4961 1107.5)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">PROG_CLK</tspan>
</text>
</g>
<g id="Line_561">
<path d="M 917.341 1107.3747 L 937.694 1107.1693 L 937.8607 1138.8333" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_562">
<line x1="740.5195" y1="1138.8849" x2="917.341" y2="1138.25" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_563">
<text transform="translate(658.1836 1129.5417)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">IO_ISOL_N</tspan>
</text>
</g>
<g id="Line_564">
<line x1="909.2875" y1="1199.0536" x2="927.8607" y2="1198.8333" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_565">
<line x1="778.791" y1="1287.0613" x2="746.0703" y2="1286.9666" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_583">
<path d="M 950.625 1109.5817 L 950.625 1103.8796 L 950.625 1103.8796 L 950.625 1101.0285 L 961.0859 1106.7306 L 950.625 1112.4328 L 950.625 1109.5817 Z" fill="#c0ffff"/>
<path d="M 950.625 1109.5817 L 950.625 1103.8796 L 950.625 1103.8796 L 950.625 1101.0285 L 961.0859 1106.7306 L 950.625 1112.4328 L 950.625 1109.5817 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_582">
<path d="M 950.625 1237.0586 L 950.625 1231.3565 L 950.625 1231.3565 L 950.625 1228.5054 L 961.0859 1234.2075 L 950.625 1239.9097 L 950.625 1237.0586 Z" fill="#c0ffff"/>
<path d="M 950.625 1237.0586 L 950.625 1231.3565 L 950.625 1231.3565 L 950.625 1228.5054 L 961.0859 1234.2075 L 950.625 1239.9097 L 950.625 1237.0586 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_581">
<path d="M 957.7109 1289.815 L 957.7109 1284.1128 L 957.7109 1284.1128 L 957.7109 1281.2617 L 947.25 1286.9639 L 957.7109 1292.666 L 957.7109 1289.815 Z" fill="#ff8080"/>
<path d="M 957.7109 1289.815 L 957.7109 1284.1128 L 957.7109 1284.1128 L 957.7109 1281.2617 L 947.25 1286.9639 L 957.7109 1292.666 L 957.7109 1289.815 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_584">
<path d="M 856.313 1078.2217 L 862.0151 1078.2217 L 862.0151 1078.2217 L 864.8662 1078.2217 L 859.1641 1088.6826 L 853.4619 1078.2217 L 856.313 1078.2217 Z" fill="#c0ffff"/>
<path d="M 856.313 1078.2217 L 862.0151 1078.2217 L 862.0151 1078.2217 L 864.8662 1078.2217 L 859.1641 1088.6826 L 853.4619 1078.2217 L 856.313 1078.2217 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_585">
<path d="M 740.0195 1119.8511 L 740.0195 1114.1489 L 740.0195 1114.1489 L 740.0195 1111.2979 L 750.4805 1117 L 740.0195 1122.7021 L 740.0195 1119.8511 Z" fill="#c0ffff"/>
<path d="M 740.0195 1119.8511 L 740.0195 1114.1489 L 740.0195 1114.1489 L 740.0195 1111.2979 L 750.4805 1117 L 740.0195 1122.7021 L 740.0195 1119.8511 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_586">
<path d="M 740.0195 1141.8927 L 740.0195 1136.1906 L 740.0195 1136.1906 L 740.0195 1133.3395 L 750.4805 1139.0417 L 740.0195 1144.7438 L 740.0195 1141.8927 Z" fill="#c0ffff"/>
<path d="M 740.0195 1141.8927 L 740.0195 1136.1906 L 740.0195 1136.1906 L 740.0195 1133.3395 L 750.4805 1139.0417 L 740.0195 1144.7438 L 740.0195 1141.8927 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_587">
<path d="M 742.0195 1239.1968 L 742.0195 1233.4946 L 742.0195 1233.4946 L 742.0195 1230.6436 L 752.4805 1236.3457 L 742.0195 1242.0479 L 742.0195 1239.1968 Z" fill="#c0ffff"/>
<path d="M 742.0195 1239.1968 L 742.0195 1233.4946 L 742.0195 1233.4946 L 742.0195 1230.6436 L 752.4805 1236.3457 L 742.0195 1242.0479 L 742.0195 1239.1968 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_588">
<path d="M 750.4805 1201.9761 L 750.4805 1196.2739 L 750.4805 1196.2739 L 750.4805 1193.4229 L 740.0195 1199.125 L 750.4805 1204.8271 L 750.4805 1201.9761 Z" fill="#ff8080"/>
<path d="M 750.4805 1201.9761 L 750.4805 1196.2739 L 750.4805 1196.2739 L 750.4805 1193.4229 L 740.0195 1199.125 L 750.4805 1204.8271 L 750.4805 1201.9761 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_589">
<path d="M 750.4805 1289.815 L 750.4805 1284.1128 L 750.4805 1284.1128 L 750.4805 1281.2617 L 740.0195 1286.9639 L 750.4805 1292.666 L 750.4805 1289.815 Z" fill="#ff8080"/>
<path d="M 750.4805 1289.815 L 750.4805 1284.1128 L 750.4805 1284.1128 L 750.4805 1281.2617 L 740.0195 1286.9639 L 750.4805 1292.666 L 750.4805 1289.815 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_590">
<path d="M 869.7197 1360.7393 L 869.7197 1355.0371 L 869.7197 1355.0371 L 869.7197 1352.186 L 859.2588 1357.8882 L 869.7197 1363.5903 L 869.7197 1360.7393 Z" fill="#ff8080"/>
<path d="M 869.7197 1360.7393 L 869.7197 1355.0371 L 869.7197 1355.0371 L 869.7197 1352.186 L 859.2588 1357.8882 L 869.7197 1363.5903 L 869.7197 1360.7393 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_591">
<text transform="translate(882.4463 1348.25)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">output pin</tspan>
</text>
</g>
<g id="Graphic_593">
<text transform="translate(762.583 1348.3882)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">input pin</tspan>
</text>
</g>
<g id="Graphic_592">
<path d="M 744.75 1360.601 L 744.75 1354.899 L 744.75 1354.899 L 744.75 1352.0479 L 755.2109 1357.75 L 744.75 1363.4521 L 744.75 1360.601 Z" fill="#c0ffff"/>
<path d="M 744.75 1360.601 L 744.75 1354.899 L 744.75 1354.899 L 744.75 1352.0479 L 755.2109 1357.75 L 744.75 1363.4521 L 744.75 1360.601 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_595">
<path d="M 893.0556 1219.8457 L 922.3945 1236.2952 L 893.0556 1252.7446 Z" fill="white"/>
<path d="M 893.0556 1219.8457 L 922.3945 1236.2952 L 893.0556 1252.7446 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_597">
<path d="M 810.0889 1270.6599 L 780.75 1287.1094 L 810.0889 1303.5588 Z" fill="white"/>
<path d="M 810.0889 1270.6599 L 780.75 1287.1094 L 810.0889 1303.5588 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_600">
<ellipse cx="937.4107" cy="1107.5328" rx="2.53125404468917" ry="3.00000479370565" fill="black"/>
<ellipse cx="937.4107" cy="1107.5328" rx="2.53125404468917" ry="3.00000479370565" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_602">
<circle cx="795.4195" cy="1275.1599" r="4.50000719055851" fill="white"/>
<circle cx="795.4195" cy="1275.1599" r="4.50000719055851" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_603">
<circle cx="917.8945" cy="1146.375" r="4.50000719055851" fill="white"/>
<circle cx="917.8945" cy="1146.375" r="4.50000719055851" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 KiB

View File

@ -0,0 +1,320 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="23.467723 118.41154 683.4357 506.50814" width="683.4357" height="506.50814">
<defs>
<font-face font-family="Times New Roman" font-size="26" panose-1="2 2 8 3 7 5 5 2 3 4" units-per-em="1000" underline-position="-108.88672" underline-thickness="95.21484" slope="0" x-height="456.54297" cap-height="662.1094" ascent="891.1133" descent="-216.3086" font-weight="700">
<font-face-src>
<font-face-name name="TimesNewRomanPS-BoldMT"/>
</font-face-src>
</font-face>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="Arrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -3 7 6" markerWidth="7" markerHeight="6" color="black">
<g>
<path d="M 4.8 0 L 0 -1.8 L 0 1.8 Z" fill="none" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
<font-face font-family="Times New Roman" font-size="16" panose-1="2 2 7 3 6 5 5 9 3 4" units-per-em="1000" underline-position="-108.88672" underline-thickness="95.21484" slope="-1020.812" x-height="438.96484" cap-height="662.1094" ascent="891.1133" descent="-216.3086" font-style="italic" font-weight="700">
<font-face-src>
<font-face-name name="TimesNewRomanPS-BoldItalicMT"/>
</font-face-src>
</font-face>
<font-face font-family="Times New Roman" font-size="16" panose-1="2 2 8 3 7 5 5 2 3 4" units-per-em="1000" underline-position="-108.88672" underline-thickness="95.21484" slope="0" x-height="456.54297" cap-height="662.1094" ascent="891.1133" descent="-216.3086" font-weight="700">
<font-face-src>
<font-face-name name="TimesNewRomanPS-BoldMT"/>
</font-face-src>
</font-face>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="Arrow_Marker_2" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -3 7 6" markerWidth="7" markerHeight="6" color="#ff2600">
<g>
<path d="M 4.8 0 L 0 -1.8 L 0 1.8 Z" fill="none" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="Arrow_Marker_3" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -3 7 6" markerWidth="7" markerHeight="6" color="#ff2600">
<g>
<path d="M 4.8 0 L 0 -1.8 L 0 1.8 Z" fill="none" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
</defs>
<metadata> Produced by OmniGraffle 7.18\n2020-11-17 17:11:00 +0000</metadata>
<g id="fpga_arch" fill="none" stroke="none" stroke-opacity="1" stroke-dasharray="none" fill-opacity="1">
<title>fpga_arch</title>
<g id="fpga_arch_legend">
<title>legend</title>
<g id="Graphic_2945">
<rect x="123.1162" y="150.12" width="493.92" height="447.12" fill="#ccc"/>
<rect x="123.1162" y="150.12" width="493.92" height="447.12" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_2946">
<text transform="translate(116.94136 118.41154)" fill="black">
<tspan font-family="Times New Roman" font-size="26" font-weight="700" fill="black" x="0" y="23">FPGA</tspan>
</text>
</g>
<g id="Line_2947">
<line x1="109.44" y1="612.32" x2="204.68613" y2="612.32" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_2948">
<text transform="translate(226.76 602.24)" fill="black">
<tspan font-family="Times New Roman" font-size="16" font-style="italic" font-weight="700" fill="black" x="0" y="14">x</tspan>
</text>
</g>
<g id="Line_2949">
<line x1="109.44" y1="611.32" x2="109.44" y2="512.9" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_2950">
<text transform="translate(106.38922 476.3203)" fill="black">
<tspan font-family="Times New Roman" font-size="16" font-style="italic" font-weight="700" fill="black" x="0" y="14">y</tspan>
</text>
</g>
</g>
<g id="fpga_arch_chain">
<title>chain</title>
<g id="Graphic_2895">
<rect x="136.8" y="171.51984" width="72.54179" height="66.800154" fill="#005cff"/>
<rect x="136.8" y="171.51984" width="72.54179" height="66.800154" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(141.8 187.24023)" fill="white">
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="14.821674" y="14">CLB</tspan>
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="8.614643" y="31.679688">[1][12]</tspan>
</text>
</g>
<g id="Line_2897">
<line x1="106.38179" y1="204.91992" x2="122.9" y2="204.91992" marker-end="url(#Arrow_Marker_2)" stroke="#ff2600" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_2898">
<text transform="translate(28.467723 196.08007)" fill="#ff2600">
<tspan font-family="Times New Roman" font-size="16" font-style="italic" font-weight="700" fill="#ff2600" x="0" y="14">SC_HEAD</tspan>
</text>
</g>
<g id="Graphic_2902">
<rect x="136.8" y="265.68" width="72.54179" height="66.800154" fill="#005cff"/>
<rect x="136.8" y="265.68" width="72.54179" height="66.800154" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(141.8 281.4004)" fill="white">
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="14.821674" y="14">CLB</tspan>
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="9.056049" y="31.679688">[1][11]</tspan>
</text>
</g>
<g id="Line_2901">
<line x1="173.0709" y1="239.32" x2="173.0709" y2="251.78" marker-end="url(#Arrow_Marker_3)" stroke="#ff2600" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_2903">
<line x1="173.57886" y1="333.48015" x2="173.80953" y2="349.1014" marker-end="url(#Arrow_Marker_3)" stroke="#ff2600" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_2904">
<text transform="translate(165.07089 364.84015)" fill="#ff2600">
<tspan font-family="Times New Roman" font-size="16" font-style="italic" font-weight="700" fill="#ff2600" x="0" y="14"></tspan>
</text>
</g>
<g id="Graphic_2908">
<rect x="136.8" y="425.2398" width="72.54179" height="66.800154" fill="#005cff"/>
<rect x="136.8" y="425.2398" width="72.54179" height="66.800154" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(141.8 440.9602)" fill="white">
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="14.821674" y="14">CLB</tspan>
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="12.614643" y="31.679688">[1][2]</tspan>
</text>
</g>
<g id="Line_2907">
<line x1="173" y1="392.4" x2="173.02027" y2="411.33983" marker-end="url(#Arrow_Marker_3)" stroke="#ff2600" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_2906">
<rect x="136.8" y="519.4" width="72.54179" height="66.800154" fill="#005cff"/>
<rect x="136.8" y="519.4" width="72.54179" height="66.800154" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(141.8 535.1204)" fill="white">
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="14.821674" y="14">CLB</tspan>
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="12.614643" y="31.679688">[1][1]</tspan>
</text>
</g>
<g id="Line_2905">
<line x1="173.0709" y1="493.04" x2="173.0709" y2="505.5" marker-end="url(#Arrow_Marker_3)" stroke="#ff2600" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_2918">
<rect x="239.76" y="171.51984" width="72.54179" height="66.800154" fill="#005cff"/>
<rect x="239.76" y="171.51984" width="72.54179" height="66.800154" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(244.76 187.24023)" fill="white">
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="14.821674" y="14">CLB</tspan>
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="8.614643" y="31.679688">[2][12]</tspan>
</text>
</g>
<g id="Line_2917">
<line x1="313.30178" y1="204.40795" x2="330.1012" y2="204.17718" marker-end="url(#Arrow_Marker_3)" stroke="#ff2600" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_2916">
<rect x="239.76" y="265.68" width="72.54179" height="66.800154" fill="#005cff"/>
<rect x="239.76" y="265.68" width="72.54179" height="66.800154" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(244.76 281.4004)" fill="white">
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="14.821674" y="14">CLB</tspan>
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="9.056049" y="31.679688">[2][11]</tspan>
</text>
</g>
<g id="Line_2915">
<line x1="276.0309" y1="264.68" x2="276.0309" y2="252.22" marker-end="url(#Arrow_Marker_3)" stroke="#ff2600" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_2914">
<line x1="276.96" y1="362" x2="276.72933" y2="346.37874" marker-end="url(#Arrow_Marker_3)" stroke="#ff2600" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_2913">
<text transform="translate(268.0309 364.84015)" fill="#ff2600">
<tspan font-family="Times New Roman" font-size="16" font-style="italic" font-weight="700" fill="#ff2600" x="0" y="14"></tspan>
</text>
</g>
<g id="Graphic_2912">
<rect x="239.76" y="425.2398" width="72.54179" height="66.800154" fill="#005cff"/>
<rect x="239.76" y="425.2398" width="72.54179" height="66.800154" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(244.76 440.9602)" fill="white">
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="14.821674" y="14">CLB</tspan>
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="12.614643" y="31.679688">[2][2]</tspan>
</text>
</g>
<g id="Line_2911">
<line x1="275.99407" y1="424.23983" x2="275.9738" y2="405.3" marker-end="url(#Arrow_Marker_3)" stroke="#ff2600" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_2910">
<rect x="239.76" y="519.4" width="72.54179" height="66.800154" fill="#005cff"/>
<rect x="239.76" y="519.4" width="72.54179" height="66.800154" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(244.76 535.1204)" fill="white">
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="14.821674" y="14">CLB</tspan>
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="12.614643" y="31.679688">[2][1]</tspan>
</text>
</g>
<g id="Line_2909">
<line x1="276.0309" y1="518.4" x2="276.0309" y2="505.94" marker-end="url(#Arrow_Marker_3)" stroke="#ff2600" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_2919">
<line x1="210.34178" y1="552.80006" x2="225.86" y2="552.80006" marker-end="url(#Arrow_Marker_3)" stroke="#ff2600" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_2940">
<rect x="422.96" y="171.51984" width="72.54179" height="66.800154" fill="#005cff"/>
<rect x="422.96" y="171.51984" width="72.54179" height="66.800154" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(427.96 187.24023)" fill="white">
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="14.821674" y="14">CLB</tspan>
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="5.0560493" y="31.679688">[11][12]</tspan>
</text>
</g>
<g id="Line_2939">
<line x1="384.48" y1="205" x2="409.06" y2="204.97367" marker-end="url(#Arrow_Marker_3)" stroke="#ff2600" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_2938">
<rect x="422.96" y="265.68" width="72.54179" height="66.800154" fill="#005cff"/>
<rect x="422.96" y="265.68" width="72.54179" height="66.800154" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(427.96 281.4004)" fill="white">
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="14.821674" y="14">CLB</tspan>
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="5.4974556" y="31.679688">[11][11]</tspan>
</text>
</g>
<g id="Line_2937">
<line x1="459.2309" y1="239.32" x2="459.2309" y2="251.78" marker-end="url(#Arrow_Marker_3)" stroke="#ff2600" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_2936">
<line x1="459.73884" y1="333.48015" x2="459.9695" y2="349.1014" marker-end="url(#Arrow_Marker_3)" stroke="#ff2600" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_2935">
<text transform="translate(451.2309 364.84015)" fill="#ff2600">
<tspan font-family="Times New Roman" font-size="16" font-style="italic" font-weight="700" fill="#ff2600" x="0" y="14"></tspan>
</text>
</g>
<g id="Graphic_2934">
<rect x="422.96" y="425.2398" width="72.54179" height="66.800154" fill="#005cff"/>
<rect x="422.96" y="425.2398" width="72.54179" height="66.800154" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(427.96 440.9602)" fill="white">
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="14.821674" y="14">CLB</tspan>
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="9.056049" y="31.679688">[11][2]</tspan>
</text>
</g>
<g id="Line_2933">
<line x1="459.16" y1="392.4" x2="459.18025" y2="411.33983" marker-end="url(#Arrow_Marker_3)" stroke="#ff2600" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_2932">
<rect x="422.96" y="519.4" width="72.54179" height="66.800154" fill="#005cff"/>
<rect x="422.96" y="519.4" width="72.54179" height="66.800154" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(427.96 535.1204)" fill="white">
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="14.821674" y="14">CLB</tspan>
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="9.056049" y="31.679688">[11][1]</tspan>
</text>
</g>
<g id="Line_2931">
<line x1="459.2309" y1="493.04" x2="459.2309" y2="505.5" marker-end="url(#Arrow_Marker_3)" stroke="#ff2600" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_2930">
<rect x="525.92" y="171.51984" width="72.54179" height="66.800154" fill="#005cff"/>
<rect x="525.92" y="171.51984" width="72.54179" height="66.800154" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(530.92 187.24023)" fill="white">
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="14.821674" y="14">CLB</tspan>
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="4.614643" y="31.679688">[12][12]</tspan>
</text>
</g>
<g id="Line_2929">
<line x1="599.46176" y1="204.91992" x2="620.8706" y2="204.91992" marker-end="url(#Arrow_Marker_3)" stroke="#ff2600" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_2928">
<rect x="525.92" y="265.68" width="72.54179" height="66.800154" fill="#005cff"/>
<rect x="525.92" y="265.68" width="72.54179" height="66.800154" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(530.92 281.4004)" fill="white">
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="14.821674" y="14">CLB</tspan>
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="5.0560493" y="31.679688">[12][11]</tspan>
</text>
</g>
<g id="Line_2927">
<line x1="562.1909" y1="264.68" x2="562.1909" y2="252.22" marker-end="url(#Arrow_Marker_3)" stroke="#ff2600" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_2926">
<line x1="563.12" y1="362" x2="562.8893" y2="346.37874" marker-end="url(#Arrow_Marker_3)" stroke="#ff2600" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_2925">
<text transform="translate(554.1909 364.84015)" fill="#ff2600">
<tspan font-family="Times New Roman" font-size="16" font-style="italic" font-weight="700" fill="#ff2600" x="0" y="14"></tspan>
</text>
</g>
<g id="Graphic_2924">
<rect x="525.92" y="425.2398" width="72.54179" height="66.800154" fill="#005cff"/>
<rect x="525.92" y="425.2398" width="72.54179" height="66.800154" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(530.92 440.9602)" fill="white">
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="14.821674" y="14">CLB</tspan>
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="8.614643" y="31.679688">[12][2]</tspan>
</text>
</g>
<g id="Line_2923">
<line x1="562.15406" y1="424.23983" x2="562.1338" y2="405.3" marker-end="url(#Arrow_Marker_3)" stroke="#ff2600" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_2922">
<rect x="525.92" y="519.4" width="72.54179" height="66.800154" fill="#005cff"/>
<rect x="525.92" y="519.4" width="72.54179" height="66.800154" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(530.92 535.1204)" fill="white">
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="14.821674" y="14">CLB</tspan>
<tspan font-family="Times New Roman" font-size="16" font-weight="700" fill="white" x="8.614643" y="31.679688">[12][1]</tspan>
</text>
</g>
<g id="Line_2921">
<line x1="562.1909" y1="518.4" x2="562.1909" y2="505.94" marker-end="url(#Arrow_Marker_3)" stroke="#ff2600" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_2920">
<line x1="496.50177" y1="552.80006" x2="512.02" y2="552.80006" marker-end="url(#Arrow_Marker_3)" stroke="#ff2600" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_2941">
<text transform="translate(355.64 196.08007)" fill="#ff2600">
<tspan font-family="Times New Roman" font-size="16" font-style="italic" font-weight="700" fill="#ff2600" x="0" y="14"></tspan>
</text>
</g>
<g id="Graphic_2942">
<text transform="translate(638.7706 196.08007)" fill="#ff2600">
<tspan font-family="Times New Roman" font-size="16" font-style="italic" font-weight="700" fill="#ff2600" x="0" y="14">SC_TAIL</tspan>
</text>
</g>
<g id="Graphic_2951">
<text transform="translate(355.64 364.84015)" fill="#ff2600">
<tspan font-family="Times New Roman" font-size="16" font-style="italic" font-weight="700" fill="#ff2600" x="0" y="14"></tspan>
</text>
</g>
<g id="Graphic_2952">
<text transform="translate(355.64 295.16)" fill="#ff2600">
<tspan font-family="Times New Roman" font-size="16" font-style="italic" font-weight="700" fill="#ff2600" x="0" y="14"></tspan>
</text>
</g>
<g id="Graphic_2953">
<text transform="translate(355.64 449.80006)" fill="#ff2600">
<tspan font-family="Times New Roman" font-size="16" font-style="italic" font-weight="700" fill="#ff2600" x="0" y="14"></tspan>
</text>
</g>
<g id="Graphic_2955">
<text transform="translate(355.64 543.9602)" fill="#ff2600">
<tspan font-family="Times New Roman" font-size="16" font-style="italic" font-weight="700" fill="#ff2600" x="0" y="14"></tspan>
</text>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

View File

@ -0,0 +1,293 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="179.00033 169.875 415.5905 256.87067" width="415.5905" height="256.87067">
<defs>
<font-face font-family="Times New Roman" font-size="15" panose-1="2 2 8 3 7 5 5 2 3 4" units-per-em="1000" underline-position="-108.88672" underline-thickness="95.21484" slope="0" x-height="456.54297" cap-height="662.1094" ascent="891.1133" descent="-216.3086" font-weight="700">
<font-face-src>
<font-face-name name="TimesNewRomanPS-BoldMT"/>
</font-face-src>
</font-face>
<font-face font-family="Times New Roman" font-size="15" panose-1="2 2 7 3 6 5 5 9 3 4" units-per-em="1000" underline-position="-108.88672" underline-thickness="95.21484" slope="-1088.8662" x-height="438.96484" cap-height="662.1094" ascent="891.1133" descent="-216.3086" font-style="italic" font-weight="700">
<font-face-src>
<font-face-name name="TimesNewRomanPS-BoldItalicMT"/>
</font-face-src>
</font-face>
<font-face font-family="Times New Roman" font-size="12" panose-1="2 2 8 3 7 5 5 2 3 4" units-per-em="1000" underline-position="-108.88672" underline-thickness="95.21484" slope="0" x-height="456.54297" cap-height="662.1094" ascent="891.1133" descent="-216.3086" font-weight="700">
<font-face-src>
<font-face-name name="TimesNewRomanPS-BoldMT"/>
</font-face-src>
</font-face>
</defs>
<metadata> Produced by OmniGraffle 7.18\n2020-11-19 22:55:20 +0000</metadata>
<g id="frac_lut4" fill="none" stroke="none" stroke-opacity="1" stroke-dasharray="none" fill-opacity="1">
<title>frac_lut4</title>
<g id="frac_lut4_图层_1">
<title>图层 1</title>
<g id="Graphic_195">
<rect x="208.45749" y="190.125" width="344.69553" height="213.72704" fill="#ffffc0"/>
<path d="M 553.153 190.125 L 208.45749 190.125 L 208.45749 403.85204 L 553.153 403.85204 Z" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="4.0,4.0" stroke-width="1"/>
</g>
<g id="Line_155">
<line x1="293.573" y1="240.8071" x2="383.18888" y2="240" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_151">
<rect x="234.96644" y="218.1116" width="56.5337" height="139.87187" fill="#417fff"/>
<rect x="234.96644" y="218.1116" width="56.5337" height="139.87187" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(239.96644 279.72893)" fill="white">
<tspan font-family="Times New Roman" font-size="15" font-weight="700" fill="white" x="1.5981503" y="13">4-LUT</tspan>
</text>
</g>
<g id="Line_149">
<line x1="208.86372" y1="272.12447" x2="235.21038" y2="272.27678" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_148">
<line x1="208.53864" y1="311.19668" x2="234.8853" y2="311.349" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_97">
<text transform="translate(185.70638 334.22715)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">in3</tspan>
</text>
</g>
<g id="Graphic_95">
<text transform="translate(186.45032 225.22458)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">in0</tspan>
</text>
</g>
<g id="Graphic_94">
<text transform="translate(186.45032 263.8088)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">in1</tspan>
</text>
</g>
<g id="Graphic_93">
<text transform="translate(185.70638 302.39303)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">in2</tspan>
</text>
</g>
<g id="Graphic_82">
<rect x="470.2566" y="264.61723" width="29.338917" height="32.89894" fill="#0679ff"/>
<rect x="470.2566" y="264.61723" width="29.338917" height="32.89894" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_81">
<path d="M 525.7159 242.52775 L 537.7182 253.49406 L 537.7182 275.12207 L 525.7159 286.69762 L 525.7159 242.52775" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_80">
<text transform="translate(475.0388 272.7481)" fill="white">
<tspan font-family="Times New Roman" font-size="15" font-weight="700" fill="white" x="0" y="13">FF</tspan>
</text>
</g>
<g id="Line_79">
<line x1="399.1131" y1="250.70457" x2="521.9307" y2="251.33333" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_78">
<line x1="500.76346" y1="277.83333" x2="524.768" y2="277.88812" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_77">
<line x1="456.921" y1="277.55904" x2="468.9233" y2="277.55904" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_71">
<line x1="460.1427" y1="289.01437" x2="468.9233" y2="289.01437" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_67">
<line x1="436.98503" y1="277.33333" x2="456.921" y2="277.55904" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_66">
<line x1="539.9307" y1="266.00524" x2="551.933" y2="266.00524" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_65">
<text transform="translate(557.09085 256.1682)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">out[0]</tspan>
</text>
</g>
<g id="Graphic_10">
<path d="M 383.18888 227.40694 L 383.19366 276.4463 C 383.19366 276.4463 398.50074 269.07623 398.2173 268.79276 C 397.9338 268.5093 397.92903 232.79276 397.92903 232.79276 Z" fill="#417fff"/>
<path d="M 383.18888 227.40694 L 383.19366 276.4463 C 383.19366 276.4463 398.50074 269.07623 398.2173 268.79276 C 397.9338 268.5093 397.92903 232.79276 397.92903 232.79276 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_9">
<text transform="translate(385.04194 228.89688)" fill="white">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="0" y="11">M</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="25.509766">U</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="40.01953">X</tspan>
</text>
</g>
<g id="Line_159">
<line x1="208.7101" y1="233.11812" x2="235.05676" y2="233.27043" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_184">
<rect x="470.64405" y="333.66043" width="29.338917" height="32.89894" fill="#0679ff"/>
<rect x="470.64405" y="333.66043" width="29.338917" height="32.89894" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_183">
<path d="M 526.93593 311.8801 L 538.9382 322.84643 L 538.9382 344.47444 L 526.93593 356.05 L 526.93593 311.8801" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_182">
<text transform="translate(476.2588 342.10046)" fill="white">
<tspan font-family="Times New Roman" font-size="15" font-weight="700" fill="white" x="0" y="13">FF</tspan>
</text>
</g>
<g id="Line_181">
<line x1="438.287" y1="324" x2="526.93593" y2="323.47703" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_180">
<line x1="499.3163" y1="346.9114" x2="525.98805" y2="347.2405" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_179">
<line x1="458.141" y1="346.9114" x2="470.1433" y2="346.9114" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_173">
<line x1="460.0294" y1="358.36674" x2="470.1433" y2="358.36674" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_169">
<path d="M 435.6845 327.798 L 435.5637 347.33333 L 458.141 346.9114" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_168">
<line x1="541.1507" y1="335.3576" x2="553.153" y2="335.3576" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_167">
<text transform="translate(557.09085 325.5206)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">out[1]</tspan>
</text>
</g>
<g id="Graphic_166">
<ellipse cx="435.7046" cy="324.54805" rx="2.58243758861829" ry="2.75000439423018" fill="black"/>
<ellipse cx="435.7046" cy="324.54805" rx="2.58243758861829" ry="2.75000439423018" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_187">
<text transform="translate(296.82473 251.7978)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">LUT4_out</tspan>
</text>
</g>
<g id="Line_190">
<line x1="208.7101" y1="344.3335" x2="235.05676" y2="344.4858" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_191">
<line x1="291.7724" y1="271.4607" x2="382.29696" y2="271" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_192">
<line x1="291.5813" y1="324.50875" x2="338.24768" y2="324.04805" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_193">
<text transform="translate(293.65994 219.54083)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">LUT3_out[0]</tspan>
</text>
</g>
<g id="Graphic_194">
<text transform="translate(296.20583 305.9816)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">LUT3_out[1]</tspan>
</text>
</g>
<g id="Line_201">
<line x1="484.9261" y1="263.61723" x2="484.9261" y2="189.37067" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_202">
<text transform="translate(472.42364 171.30423)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">scin</tspan>
</text>
</g>
<g id="Line_203">
<path d="M 485.16157 332.66047 L 484.9886 312.79427 L 514.22684 312.5 L 514.4822 277.86465" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_204">
<path d="M 485.14743 403.85204 L 485.14743 383.16667 L 516.0583 383.1704" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_205">
<text transform="translate(467.94894 408.67923)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">scout</tspan>
</text>
</g>
<g id="Line_206">
<line x1="516.10255" y1="403.85204" x2="515.98077" y2="346.9114" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_207">
<ellipse cx="515.47594" cy="347.1108" rx="2.58243758861826" ry="2.7500043942302" fill="black"/>
<ellipse cx="515.47594" cy="347.1108" rx="2.58243758861826" ry="2.7500043942302" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_208">
<ellipse cx="516.05846" cy="383.237" rx="2.58243758861826" ry="2.7500043942302" fill="black"/>
<ellipse cx="516.05846" cy="383.237" rx="2.58243758861826" ry="2.7500043942302" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_209">
<ellipse cx="514.0598" cy="277.86368" rx="2.58243758861826" ry="2.7500043942302" fill="black"/>
<ellipse cx="514.0598" cy="277.86368" rx="2.58243758861826" ry="2.7500043942302" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_210">
<text transform="translate(406.6418 171.6428)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">regin</tspan>
</text>
</g>
<g id="Graphic_224">
<path d="M 434.01406 253.81365 L 434.01885 302.853 C 434.01885 302.853 449.32593 295.48294 449.04247 295.19947 C 448.759 294.916 448.7542 259.19948 448.7542 259.19948 Z" fill="#417fff"/>
<path d="M 434.01406 253.81365 L 434.01885 302.853 C 434.01885 302.853 449.32593 295.48294 449.04247 295.19947 C 448.759 294.916 448.7542 259.19948 448.7542 259.19948 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_223">
<text transform="translate(435.8671 255.27693)" fill="white">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="0" y="11">M</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="25.509766">U</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="40.01953">X</tspan>
</text>
</g>
<g id="Line_226">
<path d="M 422.78366 189.70924 L 421.90706 266.99222 L 434.01406 266.66667" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_227">
<path d="M 405.67654 250.73817 L 405.66667 292.68104 L 433.12215 292.66667" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_228">
<ellipse cx="405.64233" cy="250.738" rx="2.58243758861832" ry="2.75000439423021" fill="black"/>
<ellipse cx="405.64233" cy="250.738" rx="2.58243758861832" ry="2.75000439423021" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Line_230">
<line x1="338.24768" y1="324.04805" x2="432.6222" y2="324.53224" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_231">
<text transform="translate(510.381 408.67923)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">regout</tspan>
</text>
</g>
<g id="Graphic_232">
<text transform="translate(179.00033 375.9821)" fill="black">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="black" x="0" y="11">CLK</tspan>
</text>
</g>
<g id="Line_233">
<path d="M 208.86372 382 L 460.0294 382.66667 L 460.0294 358.36674" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_234">
<line x1="460.1427" y1="289.01437" x2="460.0294" y2="358.36674" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_235">
<ellipse cx="460.0305" cy="357.6732" rx="2.58243758861832" ry="2.75000439423023" fill="black"/>
<ellipse cx="460.0305" cy="357.6732" rx="2.58243758861832" ry="2.75000439423023" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_236">
<path d="M 470.1986 286.21817 L 478.9792 289.51437 L 470.1986 292.81057 Z" fill="#ccc"/>
<path d="M 470.1986 286.21817 L 478.9792 289.51437 L 470.1986 292.81057 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_237">
<path d="M 470.64405 354.9232 L 479.42464 358.2194 L 470.64405 361.5156 Z" fill="#ccc"/>
<path d="M 470.64405 354.9232 L 479.42464 358.2194 L 470.64405 361.5156 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_238">
<path d="M 523.83856 240.093 L 523.84334 289.13237 C 523.84334 289.13237 539.1504 281.7623 538.86696 281.47883 C 538.5835 281.19536 538.5787 245.47883 538.5787 245.47883 Z" fill="#417fff"/>
<path d="M 523.83856 240.093 L 523.84334 289.13237 C 523.84334 289.13237 539.1504 281.7623 538.86696 281.47883 C 538.5835 281.19536 538.5787 245.47883 538.5787 245.47883 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_68">
<text transform="translate(525.46094 242.0072)" fill="white">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="0" y="11">M</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="25.509766">U</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="40.01953">X</tspan>
</text>
</g>
<g id="Graphic_240">
<path d="M 525.6516 311.8801 L 525.6564 360.9195 C 525.6564 360.9195 540.9635 353.5494 540.68 353.26594 C 540.39654 352.98248 540.39176 317.26594 540.39176 317.26594 Z" fill="#417fff"/>
<path d="M 525.6516 311.8801 L 525.6564 360.9195 C 525.6564 360.9195 540.9635 353.5494 540.68 353.26594 C 540.39654 352.98248 540.39176 317.26594 540.39176 317.26594 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_239">
<text transform="translate(527.274 313.7943)" fill="white">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="0" y="11">M</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="25.509766">U</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="40.01953">X</tspan>
</text>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 350 KiB

View File

@ -0,0 +1,247 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="155.21094 679.5 811.0859 470.74414" width="811.0859" height="470.74414">
<defs>
<font-face font-family="Times" font-size="16" panose-1="0 0 8 0 0 0 0 2 0 0" units-per-em="1000" underline-position="-66.40625" underline-thickness="67.87109" slope="0" x-height="460.4492" cap-height="675.78125" ascent="750" descent="-250" font-weight="700">
<font-face-src>
<font-face-name name="Times-Bold"/>
</font-face-src>
</font-face>
<font-face font-family="Times" font-size="16" panose-1="0 0 5 0 0 0 0 2 0 0" units-per-em="1000" underline-position="-75.68359" underline-thickness="49.316406" slope="0" x-height="453.6133" cap-height="661.6211" ascent="750" descent="-250" font-weight="400">
<font-face-src>
<font-face-name name="Times-Roman"/>
</font-face-src>
</font-face>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="DimensionArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -6 10 12" markerWidth="10" markerHeight="12" color="black">
<g>
<path d="M 0 0 L 7.200001 0 M 7.200001 4.5000004 L 7.200001 -4.5000004 M 0 1.8000001 L 6.3000005 0 L 0 -1.8000001" fill="none" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="DimensionArrow_Marker_2" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-9 -6 10 12" markerWidth="10" markerHeight="12" color="black">
<g>
<path d="M 0 0 L -7.200001 0 M -7.200001 -4.5000004 L -7.200001 4.5000004 M 0 -1.8000001 L -6.3000005 0 L 0 1.8000001" fill="none" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
<font-face font-family="Times" font-size="16" panose-1="0 0 5 0 0 0 0 9 0 0" units-per-em="1000" underline-position="-75.68359" underline-thickness="49.316406" slope="-937.5" x-height="446.28906" cap-height="652.34375" ascent="750" descent="-250" font-style="italic" font-weight="400">
<font-face-src>
<font-face-name name="Times-Italic"/>
</font-face-src>
</font-face>
</defs>
<metadata> Produced by OmniGraffle 7.18\n2020-11-19 03:30:43 +0000</metadata>
<g id="logic_analyzer_mode" fill="none" stroke="none" stroke-opacity="1" stroke-dasharray="none" fill-opacity="1">
<title>logic_analyzer_mode</title>
<g id="logic_analyzer_mode_base">
<title>base</title>
<g id="Graphic_278">
<rect x="394.82812" y="758.5801" width="315.85156" height="289.69336" fill="#ffffc0"/>
<rect x="394.82812" y="758.5801" width="315.85156" height="289.69336" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(399.82812 893.9268)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="700" fill="black" x="112.85156" y="15">FPGA Core</tspan>
</text>
</g>
<g id="Graphic_279">
<text transform="translate(432.2461 763.5801)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[0] </tspan>
</text>
</g>
<g id="Graphic_413">
<text transform="translate(614.7461 763.5801)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[11] </tspan>
</text>
</g>
<g id="Graphic_414">
<text transform="translate(535.7949 763.5801)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15"></tspan>
</text>
</g>
<g id="Graphic_415">
<text transform="translate(646.5781 792.5801)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[12] </tspan>
</text>
</g>
<g id="Graphic_416">
<text transform="translate(646.5781 884.5234)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[20] </tspan>
</text>
</g>
<g id="Graphic_417">
<text transform="translate(676.4258 840.0859)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15"></tspan>
</text>
</g>
<g id="Graphic_421">
<text transform="translate(399.82812 891.668)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[136] </tspan>
</text>
</g>
<g id="Graphic_422">
<text transform="translate(399.82812 792.5801)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[143] </tspan>
</text>
</g>
<g id="Graphic_423">
<text transform="translate(409.6797 840.0859)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15"></tspan>
</text>
</g>
<g id="Graphic_425">
<text transform="translate(587.75 1025.4609)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15"></tspan>
</text>
</g>
<g id="Graphic_428">
<text transform="translate(409.6797 967.7734)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15"></tspan>
</text>
</g>
<g id="Graphic_430">
<path d="M 727.6797 849.5859 L 736.6797 835.0859 L 736.6797 842.3359 L 757.5703 842.3359 L 757.5703 835.0859 L 766.5703 849.5859 L 757.5703 864.0859 L 757.5703 856.8359 L 736.6797 856.8359 L 736.6797 864.0859 Z" fill="#c0ffff"/>
<path d="M 727.6797 849.5859 L 736.6797 835.0859 L 736.6797 842.3359 L 757.5703 842.3359 L 757.5703 835.0859 L 766.5703 849.5859 L 757.5703 864.0859 L 757.5703 856.8359 L 736.6797 856.8359 L 736.6797 864.0859 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Line_438">
<line x1="718.6797" y1="816.4859" x2="718.6797" y2="882.6859" marker-end="url(#DimensionArrow_Marker)" marker-start="url(#DimensionArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_439">
<line x1="467.0912" y1="748.5216" x2="638.4166" y2="747.5585" marker-end="url(#DimensionArrow_Marker)" marker-start="url(#DimensionArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_440">
<path d="M 552.7539 743.5 L 538.2539 734.5 L 545.5039 734.5 L 545.5039 713.6094 L 538.2539 713.6094 L 552.7539 704.6094 L 567.2539 713.6094 L 560.0039 713.6094 L 560.0039 734.5 L 567.2539 734.5 Z" fill="#c0ffff"/>
<path d="M 552.7539 743.5 L 538.2539 734.5 L 545.5039 734.5 L 545.5039 713.6094 L 538.2539 713.6094 L 552.7539 704.6094 L 567.2539 713.6094 L 560.0039 713.6094 L 560.0039 734.5 L 567.2539 734.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_441">
<text transform="translate(483.2422 684.5)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15">Caravel GPIO[24:13]</tspan>
</text>
</g>
<g id="Graphic_442">
<text transform="translate(577.3047 719.5)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">12 bit</tspan>
</text>
</g>
<g id="Graphic_444">
<text transform="translate(732.4531 869.0859)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">9 bit</tspan>
</text>
</g>
<g id="Graphic_445">
<text transform="translate(779.1172 826.25)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="13.34375" y="15">Caravel</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="34">GPIO[10:2]</tspan>
</text>
</g>
<g id="Line_446">
<line x1="381.0547" y1="816.4859" x2="381.0547" y2="882.6859" marker-end="url(#DimensionArrow_Marker)" marker-start="url(#DimensionArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_447">
<path d="M 373.3047 849.5859 L 364.3047 864.0859 L 364.3047 856.8359 L 343.41406 856.8359 L 343.41406 864.0859 L 334.41406 849.5859 L 343.41406 835.0859 L 343.41406 842.3359 L 364.3047 842.3359 L 364.3047 835.0859 Z" fill="#c0ffff"/>
<path d="M 373.3047 849.5859 L 364.3047 864.0859 L 364.3047 856.8359 L 343.41406 856.8359 L 343.41406 864.0859 L 334.41406 849.5859 L 343.41406 835.0859 L 343.41406 842.3359 L 364.3047 842.3359 L 364.3047 835.0859 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_448">
<text transform="translate(237.22656 826.25)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="17.34375" y="15">Caravel</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="34">GPIO[34:27]</tspan>
</text>
</g>
<g id="Graphic_449">
<text transform="translate(345.85938 864.2734)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">8 bit</tspan>
</text>
</g>
<g id="Line_450">
<line x1="723.799" y1="970.8568" x2="724.1073" y2="983.6901" marker-end="url(#DimensionArrow_Marker)" marker-start="url(#DimensionArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_452">
<text transform="translate(742.2266 992.2734)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">3 bit</tspan>
</text>
</g>
<g id="Graphic_453">
<text transform="translate(779.1172 956.8984)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="14.675781" y="15">Caravel Logic Analyzer</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="34">la_data_in/out/oen[125:127]</tspan>
</text>
</g>
<g id="Line_461">
<line x1="445.07966" y1="1058.9704" x2="655.4438" y2="1058.5374" marker-end="url(#DimensionArrow_Marker)" marker-start="url(#DimensionArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_465">
<text transform="translate(646.5781 949.7734)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[21] </tspan>
</text>
</g>
<g id="Graphic_466">
<text transform="translate(647.0078 987.6836)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[23] </tspan>
</text>
</g>
<g id="Graphic_468">
<text transform="translate(399.82812 947.5938)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[135] </tspan>
</text>
</g>
<g id="Graphic_467">
<text transform="translate(399.82812 987.6875)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[132] </tspan>
</text>
</g>
<g id="Graphic_470">
<text transform="translate(407.5918 1025.5938)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[131] </tspan>
</text>
</g>
<g id="Graphic_469">
<text transform="translate(614.4531 1025.5938)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[24] </tspan>
</text>
</g>
<g id="Graphic_475">
<text transform="translate(509.9453 1025.4609)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[121] </tspan>
</text>
</g>
<g id="Graphic_476">
<text transform="translate(483.2422 1024.2734)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15"></tspan>
</text>
</g>
<g id="Graphic_477">
<path d="M 732.2031 977.2734 L 741.2031 962.7734 L 741.2031 970.0234 L 762.09375 970.0234 L 762.09375 962.7734 L 771.09375 977.2734 L 762.09375 991.7734 L 762.09375 984.5234 L 741.2031 984.5234 L 741.2031 991.7734 Z" fill="#c0ffff"/>
<path d="M 732.2031 977.2734 L 741.2031 962.7734 L 741.2031 970.0234 L 762.09375 970.0234 L 762.09375 962.7734 L 771.09375 977.2734 L 762.09375 991.7734 L 762.09375 984.5234 L 741.2031 984.5234 L 741.2031 991.7734 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_478">
<text transform="translate(463.1719 1107.2441)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="10.675781" y="15">Caravel Logic Analyzer</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="34">la_data_in/out/oen[17:124]</tspan>
</text>
</g>
<g id="Graphic_480">
<path d="M 560.125 1102.2441 L 545.625 1093.2441 L 552.875 1093.2441 L 552.875 1072.3535 L 545.625 1072.3535 L 560.125 1063.3535 L 574.625 1072.3535 L 567.375 1072.3535 L 567.375 1093.2441 L 574.625 1093.2441 Z" fill="#c0ffff"/>
<path d="M 560.125 1102.2441 L 545.625 1093.2441 L 552.875 1093.2441 L 552.875 1072.3535 L 545.625 1072.3535 L 560.125 1063.3535 L 574.625 1072.3535 L 567.375 1072.3535 L 567.375 1093.2441 L 574.625 1093.2441 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_479">
<text transform="translate(580.53906 1073.3945)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">108 bit</tspan>
</text>
</g>
<g id="Line_486">
<line x1="381.40053" y1="970.8568" x2="381.70884" y2="983.6901" marker-end="url(#DimensionArrow_Marker)" marker-start="url(#DimensionArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_485">
<text transform="translate(339.41406 930.875)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">4 bit</tspan>
</text>
</g>
<g id="Graphic_484">
<text transform="translate(160.21094 956.8984)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="6.675781" y="15">Caravel Logic Analyzer</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="34">la_data_in/out/oen[13:16]</tspan>
</text>
</g>
<g id="Graphic_483">
<path d="M 334.41406 977.2734 L 343.41406 962.7734 L 343.41406 970.0234 L 364.3047 970.0234 L 364.3047 962.7734 L 373.3047 977.2734 L 364.3047 991.7734 L 364.3047 984.5234 L 343.41406 984.5234 L 343.41406 991.7734 Z" fill="#c0ffff"/>
<path d="M 334.41406 977.2734 L 343.41406 962.7734 L 343.41406 970.0234 L 364.3047 970.0234 L 364.3047 962.7734 L 373.3047 977.2734 L 364.3047 991.7734 L 364.3047 984.5234 L 343.41406 984.5234 L 343.41406 991.7734 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 399 KiB

View File

@ -0,0 +1,254 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="156.75 679.5 703.8047 543.9336" width="703.8047" height="543.9336">
<defs>
<font-face font-family="Times" font-size="16" panose-1="0 0 8 0 0 0 0 2 0 0" units-per-em="1000" underline-position="-66.40625" underline-thickness="67.87109" slope="0" x-height="460.4492" cap-height="675.78125" ascent="750" descent="-250" font-weight="700">
<font-face-src>
<font-face-name name="Times-Bold"/>
</font-face-src>
</font-face>
<font-face font-family="Times" font-size="16" panose-1="0 0 5 0 0 0 0 2 0 0" units-per-em="1000" underline-position="-75.68359" underline-thickness="49.316406" slope="0" x-height="453.6133" cap-height="661.6211" ascent="750" descent="-250" font-weight="400">
<font-face-src>
<font-face-name name="Times-Roman"/>
</font-face-src>
</font-face>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="DimensionArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -6 10 12" markerWidth="10" markerHeight="12" color="black">
<g>
<path d="M 0 0 L 7.200001 0 M 7.200001 4.5000004 L 7.200001 -4.5000004 M 0 1.8000001 L 6.3000005 0 L 0 -1.8000001" fill="none" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="DimensionArrow_Marker_2" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-9 -6 10 12" markerWidth="10" markerHeight="12" color="black">
<g>
<path d="M 0 0 L -7.200001 0 M -7.200001 -4.5000004 L -7.200001 4.5000004 M 0 -1.8000001 L -6.3000005 0 L 0 1.8000001" fill="none" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
<font-face font-family="Times" font-size="16" panose-1="0 0 5 0 0 0 0 9 0 0" units-per-em="1000" underline-position="-75.68359" underline-thickness="49.316406" slope="-937.5" x-height="446.28906" cap-height="652.34375" ascent="750" descent="-250" font-style="italic" font-weight="400">
<font-face-src>
<font-face-name name="Times-Italic"/>
</font-face-src>
</font-face>
</defs>
<metadata> Produced by OmniGraffle 7.18\n2020-11-21 01:25:48 +0000</metadata>
<g id="wishbone_mode" fill="none" stroke="none" stroke-opacity="1" stroke-dasharray="none" fill-opacity="1">
<title>wishbone_mode</title>
<g id="wishbone_mode_base">
<title>base</title>
<g id="Graphic_278">
<rect x="394.82812" y="758.5801" width="315.85156" height="289.69336" fill="#ffffc0"/>
<rect x="394.82812" y="758.5801" width="315.85156" height="289.69336" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(399.82812 893.9268)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="700" fill="black" x="112.85156" y="15">FPGA Core</tspan>
</text>
</g>
<g id="Graphic_279">
<text transform="translate(432.2461 763.5801)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[0] </tspan>
</text>
</g>
<g id="Graphic_413">
<text transform="translate(614.7461 763.5801)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[11] </tspan>
</text>
</g>
<g id="Graphic_414">
<text transform="translate(535.7949 763.5801)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15"></tspan>
</text>
</g>
<g id="Graphic_415">
<text transform="translate(646.5781 792.5801)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[12] </tspan>
</text>
</g>
<g id="Graphic_416">
<text transform="translate(646.5781 884.5234)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[20] </tspan>
</text>
</g>
<g id="Graphic_417">
<text transform="translate(676.4258 840.0859)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15"></tspan>
</text>
</g>
<g id="Graphic_421">
<text transform="translate(399.82812 891.668)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[136] </tspan>
</text>
</g>
<g id="Graphic_422">
<text transform="translate(399.82812 792.5801)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[143] </tspan>
</text>
</g>
<g id="Graphic_423">
<text transform="translate(409.6797 840.0859)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15"></tspan>
</text>
</g>
<g id="Graphic_425">
<text transform="translate(631.8164 1024.2734)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15"></tspan>
</text>
</g>
<g id="Graphic_428">
<text transform="translate(409.6797 967.7734)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15"></tspan>
</text>
</g>
<g id="Graphic_430">
<path d="M 727.6797 849.5859 L 736.6797 835.0859 L 736.6797 842.3359 L 757.5703 842.3359 L 757.5703 835.0859 L 766.5703 849.5859 L 757.5703 864.0859 L 757.5703 856.8359 L 736.6797 856.8359 L 736.6797 864.0859 Z" fill="#c0ffff"/>
<path d="M 727.6797 849.5859 L 736.6797 835.0859 L 736.6797 842.3359 L 757.5703 842.3359 L 757.5703 835.0859 L 766.5703 849.5859 L 757.5703 864.0859 L 757.5703 856.8359 L 736.6797 856.8359 L 736.6797 864.0859 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Line_438">
<line x1="718.6797" y1="816.4859" x2="718.6797" y2="882.6859" marker-end="url(#DimensionArrow_Marker)" marker-start="url(#DimensionArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_439">
<line x1="467.0912" y1="748.5216" x2="638.4166" y2="747.5585" marker-end="url(#DimensionArrow_Marker)" marker-start="url(#DimensionArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_440">
<path d="M 552.7539 743.5 L 538.2539 734.5 L 545.5039 734.5 L 545.5039 713.6094 L 538.2539 713.6094 L 552.7539 704.6094 L 567.2539 713.6094 L 560.0039 713.6094 L 560.0039 734.5 L 567.2539 734.5 Z" fill="#c0ffff"/>
<path d="M 552.7539 743.5 L 538.2539 734.5 L 545.5039 734.5 L 545.5039 713.6094 L 538.2539 713.6094 L 552.7539 704.6094 L 567.2539 713.6094 L 560.0039 713.6094 L 560.0039 734.5 L 567.2539 734.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_441">
<text transform="translate(483.2422 684.5)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15">Caravel GPIO[24:13]</tspan>
</text>
</g>
<g id="Graphic_442">
<text transform="translate(577.3047 719.5)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">12 bit</tspan>
</text>
</g>
<g id="Graphic_444">
<text transform="translate(732.4531 869.0859)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">9 bit</tspan>
</text>
</g>
<g id="Graphic_445">
<text transform="translate(779.1172 826.25)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="13.34375" y="15">Caravel</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="34">GPIO[10:2]</tspan>
</text>
</g>
<g id="Line_446">
<line x1="381.0547" y1="816.4859" x2="381.0547" y2="882.6859" marker-end="url(#DimensionArrow_Marker)" marker-start="url(#DimensionArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_447">
<path d="M 373.3047 849.5859 L 364.3047 864.0859 L 364.3047 856.8359 L 343.41406 856.8359 L 343.41406 864.0859 L 334.41406 849.5859 L 343.41406 835.0859 L 343.41406 842.3359 L 364.3047 842.3359 L 364.3047 835.0859 Z" fill="#c0ffff"/>
<path d="M 373.3047 849.5859 L 364.3047 864.0859 L 364.3047 856.8359 L 343.41406 856.8359 L 343.41406 864.0859 L 334.41406 849.5859 L 343.41406 835.0859 L 343.41406 842.3359 L 364.3047 842.3359 L 364.3047 835.0859 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_448">
<text transform="translate(237.22656 826.25)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="17.34375" y="15">Caravel</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="34">GPIO[34:27]</tspan>
</text>
</g>
<g id="Graphic_449">
<text transform="translate(345.85938 864.2734)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">8 bit</tspan>
</text>
</g>
<g id="Graphic_453">
<text transform="translate(161.75 947.5938)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="3.1054688" y="15">Caravel Wishbone clk_i</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="4.878906" y="34">Caravel Wishbone rst_i</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="53">Caravel Wishbone ack_o</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="1.7773438" y="72">Caravel Wishbone cyc_i</tspan>
</text>
</g>
<g id="Line_454">
<line x1="381.40053" y1="972.6693" x2="381.70884" y2="985.5026" marker-end="url(#DimensionArrow_Marker)" marker-start="url(#DimensionArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_459">
<path d="M 329.39062 982.2734 L 329.39062 969.2734 L 355.28125 969.2734 L 355.28125 962.7734 L 368.28125 975.7734 L 355.28125 988.7734 L 355.28125 982.2734 Z" fill="#c0ffff"/>
<path d="M 329.39062 982.2734 L 329.39062 969.2734 L 355.28125 969.2734 L 355.28125 962.7734 L 368.28125 975.7734 L 355.28125 988.7734 L 355.28125 982.2734 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_462">
<path d="M 470.98047 1073.4336 L 456.48047 1073.4336 L 456.48047 1088.4336 L 449.23047 1088.4336 L 463.73047 1099.4336 L 478.23047 1088.4336 L 470.98047 1088.4336 Z" fill="#c0ffff"/>
<path d="M 470.98047 1073.4336 L 456.48047 1073.4336 L 456.48047 1088.4336 L 449.23047 1088.4336 L 463.73047 1099.4336 L 478.23047 1088.4336 L 470.98047 1088.4336 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_464"/>
<g id="Graphic_463">
<text transform="translate(401.95703 1075.4336)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">32 bit</tspan>
</text>
</g>
<g id="Graphic_465">
<text transform="translate(646.5781 949.7734)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[21] </tspan>
</text>
</g>
<g id="Graphic_466">
<text transform="translate(647.0078 987.6836)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[23] </tspan>
</text>
</g>
<g id="Graphic_468">
<text transform="translate(399.82812 947.5938)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[135] </tspan>
</text>
</g>
<g id="Graphic_467">
<text transform="translate(399.82812 987.6875)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[132] </tspan>
</text>
</g>
<g id="Graphic_470">
<text transform="translate(396.1709 1025.5938)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[131] </tspan>
</text>
</g>
<g id="Graphic_469">
<text transform="translate(646.5781 1025.5938)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[24] </tspan>
</text>
</g>
<g id="Graphic_471">
<text transform="translate(396.1709 1104.4336)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="21.765625" y="15">Caravel Wishbone stb_i</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="21.773438" y="34">Caravel Wishbone we_i</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="1.3359375" y="53">Caravel Wishbone adr_i[31:0]</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="1.7773438" y="72">Caravel Wishbone dat_i[31:0]</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="91">Caravel Wishbone dat_o[31:0]</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="6.6640625" y="110">Caravel Wishbone sel_i[3:0]</tspan>
</text>
</g>
<g id="Graphic_474">
<path d="M 540.7031 1096.4688 L 526.2031 1096.4688 L 526.2031 1081.4688 L 518.9531 1081.4688 L 533.4531 1070.4688 L 547.9531 1081.4688 L 540.7031 1081.4688 Z" fill="#c0ffff"/>
<path d="M 540.7031 1096.4688 L 526.2031 1096.4688 L 526.2031 1081.4688 L 518.9531 1081.4688 L 533.4531 1070.4688 L 547.9531 1081.4688 L 540.7031 1081.4688 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_473">
<text transform="translate(555.63965 1075.4688)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">70 bit</tspan>
</text>
</g>
<g id="Graphic_476">
<text transform="translate(509.5991 1023.5664)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15"></tspan>
</text>
</g>
<g id="Graphic_478">
<text transform="translate(571.9258 1025.5938)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[30] </tspan>
</text>
</g>
<g id="Line_479">
<line x1="433.6461" y1="1058.5" x2="600.1" y2="1058.5" marker-end="url(#DimensionArrow_Marker)" marker-start="url(#DimensionArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_481">
<text transform="translate(331.66406 943.25)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">3 bit</tspan>
</text>
</g>
<g id="Graphic_482">
<path d="M 368.28125 1010.625 L 368.28125 997.625 L 342.39062 997.625 L 342.39062 991.125 L 329.39062 1004.125 L 342.39062 1017.125 L 342.39062 1010.625 Z" fill="#c0ffff"/>
<path d="M 368.28125 1010.625 L 368.28125 997.625 L 342.39062 997.625 L 342.39062 991.125 L 329.39062 1004.125 L 342.39062 1017.125 L 342.39062 1010.625 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_483">
<text transform="translate(334.39062 1022.2266)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">1 bit</tspan>
</text>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 801 KiB

View File

@ -0,0 +1,351 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="115.79736 679.5 862.4194 701.1582" width="862.4194" height="701.1582">
<defs>
<font-face font-family="Times" font-size="16" panose-1="0 0 5 0 0 0 0 2 0 0" units-per-em="1000" underline-position="-75.68359" underline-thickness="49.316406" slope="0" x-height="453.6133" cap-height="661.6211" ascent="750" descent="-250" font-weight="400">
<font-face-src>
<font-face-name name="Times-Roman"/>
</font-face-src>
</font-face>
<font-face font-family="Times" font-size="16" panose-1="0 0 8 0 0 0 0 2 0 0" units-per-em="1000" underline-position="-66.40625" underline-thickness="67.87109" slope="0" x-height="460.4492" cap-height="675.78125" ascent="750" descent="-250" font-weight="700">
<font-face-src>
<font-face-name name="Times-Bold"/>
</font-face-src>
</font-face>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="DimensionArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -6 10 12" markerWidth="10" markerHeight="12" color="black">
<g>
<path d="M 0 0 L 7.200001 0 M 7.200001 4.5000004 L 7.200001 -4.5000004 M 0 1.8000001 L 6.3000005 0 L 0 -1.8000001" fill="none" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="DimensionArrow_Marker_2" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-9 -6 10 12" markerWidth="10" markerHeight="12" color="black">
<g>
<path d="M 0 0 L -7.200001 0 M -7.200001 -4.5000004 L -7.200001 4.5000004 M 0 -1.8000001 L -6.3000005 0 L 0 1.8000001" fill="none" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
<font-face font-family="Times" font-size="16" panose-1="0 0 5 0 0 0 0 9 0 0" units-per-em="1000" underline-position="-75.68359" underline-thickness="49.316406" slope="-937.5" x-height="446.28906" cap-height="652.34375" ascent="750" descent="-250" font-style="italic" font-weight="400">
<font-face-src>
<font-face-name name="Times-Italic"/>
</font-face-src>
</font-face>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-3 -2 4 4" markerWidth="4" markerHeight="4" color="black">
<g>
<path d="M -1.8666667 0 L 0 .7 L 0 -.7 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
</defs>
<metadata> Produced by OmniGraffle 7.18\n2020-11-21 01:05:14 +0000</metadata>
<g id="switch" fill="none" stroke="none" stroke-opacity="1" stroke-dasharray="none" fill-opacity="1">
<title>switch</title>
<g id="switch_base">
<title>base</title>
<g id="Graphic_535">
<text transform="translate(120.79736 899.1797)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15">CCFF_TAIL -&gt; Caravel GPIO[35]</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="53.71094" y="34">CLK &lt;- Caravel GPIO[36]</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="3.03125" y="53">PROG_CLK &lt;- Caravel GPIO[37]</tspan>
</text>
</g>
<g id="Graphic_501">
<path d="M 300.29053 1321.1582 L 308.29053 1313.1582 L 807.8315 1313.1582 L 815.8315 1321.1582 L 815.8315 1372.1582 L 807.8315 1380.1582 L 308.29053 1380.1582 L 300.29053 1372.1582 Z" fill="#c0ffc0"/>
<path d="M 300.29053 1321.1582 L 308.29053 1313.1582 L 807.8315 1313.1582 L 815.8315 1321.1582 L 815.8315 1372.1582 L 807.8315 1380.1582 L 308.29053 1380.1582 L 300.29053 1372.1582 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_278">
<rect x="394.82812" y="758.5801" width="315.85156" height="289.69336" fill="#ffffc0"/>
<rect x="394.82812" y="758.5801" width="315.85156" height="289.69336" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(399.82812 893.9268)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="700" fill="black" x="112.85156" y="15">FPGA Core</tspan>
</text>
</g>
<g id="Graphic_279">
<text transform="translate(432.2461 763.5801)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[0] </tspan>
</text>
</g>
<g id="Graphic_413">
<text transform="translate(614.7461 763.5801)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[11] </tspan>
</text>
</g>
<g id="Graphic_414">
<text transform="translate(535.7949 763.5801)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15"></tspan>
</text>
</g>
<g id="Graphic_415">
<text transform="translate(646.5781 792.5801)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[12] </tspan>
</text>
</g>
<g id="Graphic_416">
<text transform="translate(646.5781 884.5234)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[20] </tspan>
</text>
</g>
<g id="Graphic_417">
<text transform="translate(676.4258 840.0859)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15"></tspan>
</text>
</g>
<g id="Graphic_421">
<text transform="translate(399.82812 891.668)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[136] </tspan>
</text>
</g>
<g id="Graphic_422">
<text transform="translate(399.82812 792.5801)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[143] </tspan>
</text>
</g>
<g id="Graphic_423">
<text transform="translate(409.6797 840.0859)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15"></tspan>
</text>
</g>
<g id="Graphic_425">
<text transform="translate(587.75 1025.4609)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15"></tspan>
</text>
</g>
<g id="Graphic_428">
<text transform="translate(409.6797 967.7734)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15"></tspan>
</text>
</g>
<g id="Graphic_430">
<path d="M 727.6797 849.5859 L 736.6797 835.0859 L 736.6797 842.3359 L 757.5703 842.3359 L 757.5703 835.0859 L 766.5703 849.5859 L 757.5703 864.0859 L 757.5703 856.8359 L 736.6797 856.8359 L 736.6797 864.0859 Z" fill="#c0ffff"/>
<path d="M 727.6797 849.5859 L 736.6797 835.0859 L 736.6797 842.3359 L 757.5703 842.3359 L 757.5703 835.0859 L 766.5703 849.5859 L 757.5703 864.0859 L 757.5703 856.8359 L 736.6797 856.8359 L 736.6797 864.0859 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Line_438">
<line x1="718.6797" y1="816.4859" x2="718.6797" y2="882.6859" marker-end="url(#DimensionArrow_Marker)" marker-start="url(#DimensionArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_439">
<line x1="467.0912" y1="748.5216" x2="638.4166" y2="747.5585" marker-end="url(#DimensionArrow_Marker)" marker-start="url(#DimensionArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_440">
<path d="M 552.7539 743.5 L 538.2539 734.5 L 545.5039 734.5 L 545.5039 713.6094 L 538.2539 713.6094 L 552.7539 704.6094 L 567.2539 713.6094 L 560.0039 713.6094 L 560.0039 734.5 L 567.2539 734.5 Z" fill="#c0ffff"/>
<path d="M 552.7539 743.5 L 538.2539 734.5 L 545.5039 734.5 L 545.5039 713.6094 L 538.2539 713.6094 L 552.7539 704.6094 L 567.2539 713.6094 L 560.0039 713.6094 L 560.0039 734.5 L 567.2539 734.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_441">
<text transform="translate(483.2422 684.5)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15">Caravel GPIO[24:13]</tspan>
</text>
</g>
<g id="Graphic_442">
<text transform="translate(577.3047 719.5)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">12 bit</tspan>
</text>
</g>
<g id="Graphic_444">
<text transform="translate(732.6797 869.0859)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">9 bit</tspan>
</text>
</g>
<g id="Graphic_445">
<text transform="translate(779.1172 826.25)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="13.34375" y="15">Caravel</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="34">GPIO[10:2]</tspan>
</text>
</g>
<g id="Line_446">
<line x1="381.0547" y1="816.4859" x2="381.0547" y2="882.6859" marker-end="url(#DimensionArrow_Marker)" marker-start="url(#DimensionArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_447">
<path d="M 373.3047 849.5859 L 364.3047 864.0859 L 364.3047 856.8359 L 343.41406 856.8359 L 343.41406 864.0859 L 334.41406 849.5859 L 343.41406 835.0859 L 343.41406 842.3359 L 364.3047 842.3359 L 364.3047 835.0859 Z" fill="#c0ffff"/>
<path d="M 373.3047 849.5859 L 364.3047 864.0859 L 364.3047 856.8359 L 343.41406 856.8359 L 343.41406 864.0859 L 334.41406 849.5859 L 343.41406 835.0859 L 343.41406 842.3359 L 364.3047 842.3359 L 364.3047 835.0859 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_448">
<text transform="translate(237.22656 826.25)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="17.34375" y="15">Caravel</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="34">GPIO[34:27]</tspan>
</text>
</g>
<g id="Graphic_449">
<text transform="translate(345.85938 864.2734)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">8 bit</tspan>
</text>
</g>
<g id="Line_450">
<line x1="723.799" y1="970.8568" x2="724.1073" y2="983.6901" marker-end="url(#DimensionArrow_Marker)" marker-start="url(#DimensionArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_452">
<text transform="translate(735.2656 996.7734)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">3 bit</tspan>
</text>
</g>
<g id="Line_454">
<line x1="381.40053" y1="972.6693" x2="381.70884" y2="985.5026" marker-end="url(#DimensionArrow_Marker)" marker-start="url(#DimensionArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_460">
<text transform="translate(343.28906 1002.875)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">4 bit</tspan>
</text>
</g>
<g id="Line_461">
<line x1="445.07966" y1="1058.9704" x2="655.4438" y2="1058.5374" marker-end="url(#DimensionArrow_Marker)" marker-start="url(#DimensionArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_465">
<text transform="translate(646.5781 949.7734)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[21] </tspan>
</text>
</g>
<g id="Graphic_466">
<text transform="translate(647.0078 987.6836)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[23] </tspan>
</text>
</g>
<g id="Graphic_468">
<text transform="translate(399.82812 947.5938)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[135] </tspan>
</text>
</g>
<g id="Graphic_467">
<text transform="translate(399.82812 987.6875)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[132] </tspan>
</text>
</g>
<g id="Graphic_470">
<text transform="translate(407.5918 1025.5938)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[131] </tspan>
</text>
</g>
<g id="Graphic_469">
<text transform="translate(614.4531 1025.5938)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[24] </tspan>
</text>
</g>
<g id="Graphic_475">
<text transform="translate(509.9453 1025.4609)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="2" y="15">gpio[121] </tspan>
</text>
</g>
<g id="Graphic_476">
<text transform="translate(483.2422 1024.2734)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15"></tspan>
</text>
</g>
<g id="Graphic_478">
<text transform="translate(650.6758 1233.5293)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="10.675781" y="15">Caravel Logic Analyzer</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="34">la_data_in/out/oen[13:127]</tspan>
</text>
</g>
<g id="Graphic_485">
<path d="M 770 969.543 L 784.5 969.543 L 784.5 1121 L 791.75 1121 L 777.25 1134 L 762.75 1121 L 770 1121 Z" fill="#c0ffff"/>
<path d="M 770 969.543 L 784.5 969.543 L 784.5 1121 L 791.75 1121 L 777.25 1134 L 762.75 1121 L 770 1121 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_486">
<path d="M 551.8164 1063.3535 L 566.1836 1063.3535 L 566.1836 1117.5703 L 573.5 1117.5703 L 559 1132.4551 L 544.5 1117.5703 L 551.8164 1117.5703 Z" fill="#c0ffff"/>
<path d="M 551.8164 1063.3535 L 566.1836 1063.3535 L 566.1836 1117.5703 L 573.5 1117.5703 L 559 1132.4551 L 544.5 1117.5703 L 551.8164 1117.5703 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_487">
<path d="M 770.34375 984.5234 L 770.34375 970.0234 L 745.2031 970.0234 L 745.2031 962.7734 L 732.2031 977.2734 L 745.2031 991.7734 L 745.2031 984.5234 Z" fill="#c0ffff"/>
<path d="M 770.34375 984.5234 L 770.34375 970.0234 L 745.2031 970.0234 L 745.2031 962.7734 L 732.2031 977.2734 L 745.2031 991.7734 L 745.2031 984.5234 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_488">
<path d="M 320.0078 975.25 L 334.5078 975.25 L 334.5078 1118.7266 L 341.7578 1118.7266 L 327.2578 1131.7266 L 312.7578 1118.7266 L 320.0078 1118.7266 Z" fill="#c0ffff"/>
<path d="M 320.0078 975.25 L 334.5078 975.25 L 334.5078 1118.7266 L 341.7578 1118.7266 L 327.2578 1131.7266 L 312.7578 1118.7266 L 320.0078 1118.7266 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_489">
<path d="M 334.41406 989.625 L 334.41406 975.125 L 360.3047 975.125 L 360.3047 967.875 L 373.3047 982.375 L 360.3047 996.875 L 360.3047 989.625 Z" fill="#c0ffff"/>
<path d="M 334.41406 989.625 L 334.41406 975.125 L 360.3047 975.125 L 360.3047 967.875 L 373.3047 982.375 L 360.3047 996.875 L 360.3047 989.625 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_490">
<path d="M 264.71875 1157.2559 L 840.7891 1157.2559 L 811.125 1136.8125 L 289.67095 1136.3008 Z" fill="#c0ffc0"/>
<path d="M 264.71875 1157.2559 L 840.7891 1157.2559 L 811.125 1136.8125 L 289.67095 1136.3008 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Line_491">
<line x1="268.1552" y1="1145.6802" x2="251.1172" y2="1145.6144" marker-start="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/>
</g>
<g id="Graphic_492">
<text transform="translate(182.125 1126.4717)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="7.121094" y="15">Caravel</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="34">GPIO[25]</tspan>
</text>
</g>
<g id="Graphic_493">
<path d="M 731.5156 1157.2559 L 746.0156 1175.418 L 738.3477 1175.418 L 738.3477 1213.086 L 746.0156 1213.086 L 731.5156 1231.248 L 717.0156 1213.086 L 724.6836 1213.086 L 724.6836 1175.418 L 717.0156 1175.418 Z" fill="#ffc0c0"/>
<path d="M 731.5156 1157.2559 L 746.0156 1175.418 L 738.3477 1175.418 L 738.3477 1213.086 L 746.0156 1213.086 L 731.5156 1231.248 L 717.0156 1213.086 L 724.6836 1213.086 L 724.6836 1175.418 L 717.0156 1175.418 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_498"/>
<g id="Graphic_497"/>
<g id="Graphic_496"/>
<g id="Graphic_495">
<text transform="translate(231.3086 1205.0293)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="1.328125" y="15">Caravel Wishbone clk_i</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="3.1015625" y="34">Caravel Wishbone rst_i</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="1.765625" y="53">Caravel Wishbone stb_i</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="72">Caravel Wishbone cyc_i</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="1.7734375" y="91">Caravel Wishbone we_i</tspan>
</text>
</g>
<g id="Graphic_499">
<path d="M 399.19727 1161.1016 L 413.69727 1179.2637 L 406.0293 1179.2637 L 406.0293 1202.7285 L 413.69727 1202.7285 L 399.19727 1220.8906 L 384.69727 1202.7285 L 392.36523 1202.7285 L 392.36523 1179.2637 L 384.69727 1179.2637 Z" fill="#ffc0c0"/>
<path d="M 399.19727 1161.1016 L 413.69727 1179.2637 L 406.0293 1179.2637 L 406.0293 1202.7285 L 413.69727 1202.7285 L 399.19727 1220.8906 L 384.69727 1202.7285 L 392.36523 1202.7285 L 392.36523 1179.2637 L 384.69727 1179.2637 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_500">
<text transform="translate(307.16846 1318.4707)" fill="#ff2600">
<tspan font-family="Times" font-size="16" font-weight="400" fill="#ff2600" x="0" y="15">Mode switch truth table:</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="#ff2600" x="0" y="34">- When Caravel GPIO[25] is logic 1, FPGA is interfacing the Wishbone bus</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="#ff2600" x="0" y="53">- When Caravel GPIO[25] is logic 0, FPGA is interfacing the logic analyzer</tspan>
</text>
</g>
<g id="Graphic_528">
<path d="M 747.7241 747.7502 L 737.471 737.4971 L 719.6939 755.2742 L 714.5674 750.1477 L 715.62805 769.5931 L 735.0735 770.6538 L 729.947 765.5273 Z" fill="#c0c0ff"/>
<path d="M 747.7241 747.7502 L 737.471 737.4971 L 719.6939 755.2742 L 714.5674 750.1477 L 715.62805 769.5931 L 735.0735 770.6538 L 729.947 765.5273 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_529">
<text transform="translate(714.8867 700.6367)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15">CCFF_HEAD &lt;- Caravel GPIO[12]</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="30.023438" y="34">SC_TAIL -&gt; Caravel GPIO[11]</tspan>
</text>
</g>
<g id="Graphic_530"/>
<g id="Graphic_531">
<text transform="translate(134.50049 729.5)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15">SC_HEAD &lt;- Caravel GPIO[26]</tspan>
</text>
</g>
<g id="Graphic_533">
<path d="M 362.68914 745.231 L 352.4361 755.4841 L 370.2132 773.2612 L 365.08667 778.3877 L 384.5321 777.327 L 385.59277 757.8816 L 380.46624 763.0081 Z" fill="#c0c0ff"/>
<path d="M 362.68914 745.231 L 352.4361 755.4841 L 370.2132 773.2612 L 365.08667 778.3877 L 384.5321 777.327 L 385.59277 757.8816 L 380.46624 763.0081 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_536">
<path d="M 351.60205 934.9297 L 351.60205 920.4297 L 377.49267 920.4297 L 377.49267 913.1797 L 390.49267 927.6797 L 377.49267 942.1797 L 377.49267 934.9297 Z" fill="#c0c0ff"/>
<path d="M 351.60205 934.9297 L 351.60205 920.4297 L 377.49267 920.4297 L 377.49267 913.1797 L 390.49267 927.6797 L 377.49267 942.1797 L 377.49267 934.9297 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_537">
<path d="M 752.8506 932.0234 L 752.8506 917.5234 L 726.96 917.5234 L 726.96 910.2734 L 713.96 924.7734 L 726.96 939.2734 L 726.96 932.0234 Z" fill="#c0c0ff"/>
<path d="M 752.8506 932.0234 L 752.8506 917.5234 L 726.96 917.5234 L 726.96 910.2734 L 713.96 924.7734 L 726.96 939.2734 L 726.96 932.0234 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_538">
<text transform="translate(761.1309 905.7734)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="15">IO_ISOL_N -&gt; Caravel GPIO[1]</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="12.445312" y="34">TEST_EN &lt;- Caravel GPIO[0]</tspan>
</text>
</g>
<g id="Graphic_539">
<text transform="translate(422.03906 1169.5566)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">106 bit</tspan>
</text>
</g>
<g id="Graphic_540">
<text transform="translate(671.4629 1181.4697)" fill="black">
<tspan font-family="Times" font-size="16" font-style="italic" font-weight="400" fill="black" x="0" y="15">115 bit</tspan>
</text>
</g>
<g id="Graphic_541">
<path d="M 532.4336 1132.9941 L 518.0664 1132.9941 L 518.0664 1078.7773 L 510.75 1078.7773 L 525.25 1063.8926 L 539.75 1078.7773 L 532.4336 1078.7773 Z" fill="#c0ffff"/>
<path d="M 532.4336 1132.9941 L 518.0664 1132.9941 L 518.0664 1078.7773 L 510.75 1078.7773 L 525.25 1063.8926 L 539.75 1078.7773 L 532.4336 1078.7773 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_542">
<text transform="translate(409.6797 1205.0293)" fill="black">
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="6.6640625" y="15">Caravel Wishbone sel_i[3:0]</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="1.7773438" y="34">Caravel Wishbone dat_i[31:0]</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="1.3359375" y="53">Caravel Wishbone adr_i[31:0]</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="18.222656" y="72">Caravel Wishbone ack_o</tspan>
<tspan font-family="Times" font-size="16" font-weight="400" fill="black" x="0" y="91">Caravel Wishbone dat_o[31:0]</tspan>
</text>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -14,7 +14,7 @@ I/O tiles are placed at the boundary of the FPGA to interface with GPIOs and RIS
.. _fig_fpga_arch:
.. figure:: ./figures/fpga_arch.png
.. figure:: ./figures/fpga_arch.svg
:scale: 25%
:alt: Tile-based FPGA architecture
@ -72,7 +72,7 @@ When `Test_en` signal is active, users can
.. _fig_fabric_scan_chain:
.. figure:: ./figures/fabric_scan_chain.png
.. figure:: ./figures/fabric_scan_chain.svg
:scale: 25%
:alt: Built-in scan-chain across FPGA

View File

@ -20,9 +20,11 @@ Among the 144 I/Os,
.. note:: The connectivity of the 115 internal I/Os can be switched through a GPIO of Caravel SoC. As a result, the FPGA can operate in different modes.
.. warning:: The internal I/O pins will drive either Wishbone or the logic analyzer, following the same truth table as mode-switch bit in :numref:`fig_fpga_io_switch`.
.. _fig_fpga_io_switch:
.. figure:: ./figures/fpga_io_switch.png
.. figure:: ./figures/fpga_io_switch.svg
:scale: 20%
:alt: I/O arrangement of FPGA IP
@ -37,13 +39,13 @@ Accelerator Mode
When the Wishbone interface is enabled, the FPGA can operate as an accelerator for the RISC-V processor.
:numref:`fig_fpga_io_map_wishbone_mode` illustrates the detailed I/O arrangement for the FPGA, where the wishbone bus signals are connected to fixed FPGA I/O locations.
.. note:: Not all the 115 internal I/Os are used by the Wishbone interface. Especially, the I/O[21:30] are not connected.
.. note:: Not all the 115 internal I/Os are used by the Wishbone interface. Especially, the I/O[21:29] are not connected.
.. warning:: The FPGA does not contain a Wishbone slave IP. Users have to implement a soft Wishbone slave when use the FPGA as an accelerator.
.. _fig_fpga_io_map_wishbone_mode:
.. figure:: ./figures/fpga_io_map_wishbone_mode.png
.. figure:: ./figures/fpga_io_map_wishbone_mode.svg
:scale: 20%
:alt: I/O arrangement of FPGA IP when interfacing wishbone bus
@ -66,7 +68,7 @@ When the logic analyzer interface is enabled, the FPGA can operate in debug mode
.. _fig_fpga_io_map_logic_analyzer_mode:
.. figure:: ./figures/fpga_io_map_logic_analyzer_mode.png
.. figure:: ./figures/fpga_io_map_logic_analyzer_mode.svg
:scale: 20%
:alt: I/O arrangement of FPGA IP when interfacing logic analyzer
@ -98,7 +100,7 @@ The truth table of the I/O cell is consistent with the GPIO cell of Caravel SoC,
.. _fig_embedded_io_schematic:
.. figure:: ./figures/embedded_io_schematic.png
.. figure:: ./figures/embedded_io_schematic.svg
:scale: 30%
:alt: Schematic of embedded I/O cell used in FPGA

View File

@ -68,6 +68,12 @@ module fpga_top (
// Switch between wishbone and logic analyzer
wire wb_la_switch;
wire wb_la_switch_b;
// Inverted switch signal to drive tri-state buffers
// Use drive strength 8 as we will have 33 output pins which is driven by
// the buffers
sky130_fd_sc_hd__inv_8 WB_LA_SWITCH_INV (.A(la_wb_switch), .Y(la_wb_switch_b));
// Wire-bond TOP side I/O of FPGA to LEFT-side of Caravel interface
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[0] = io_in[24];
@ -106,218 +112,251 @@ module fpga_top (
// Wire-bond RIGHT, BOTTOM, LEFT side I/O of FPGA to BOTTOM-side of Caravel interface
// Autogenerate code start
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_135_MUX (.S(la_wb_switch), .A1(wb_rst_i), .A0(la_data_in[13]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[135]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_135_MUX (.S(wb_la_switch), .A1(wb_clk_i), .A0(la_data_in[13]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[135]));
assign la_data_out[13] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[135];
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[134] = la_data_in[14];
assign wbs_ack_o = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[134];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_133_MUX (.S(la_wb_switch), .A1(wbs_cyc_i), .A0(la_data_in[15]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[133]));
assign la_data_out[15] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[133];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_132_MUX (.S(la_wb_switch), .A1(wbs_stb_i), .A0(la_data_in[16]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[132]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_134_MUX (.S(wb_la_switch), .A1(wb_rst_i), .A0(la_data_in[14]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[134]));
assign la_data_out[14] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[134];
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[133] = la_data_in[15];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_133_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[133]), .Z(wbs_ack_o));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_133_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[133]), .Z(la_data_out[15]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_132_MUX (.S(wb_la_switch), .A1(wbs_cyc_i), .A0(la_data_in[16]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[132]));
assign la_data_out[16] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[132];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_131_MUX (.S(la_wb_switch), .A1(wbs_we_i), .A0(la_data_in[17]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[131]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_131_MUX (.S(wb_la_switch), .A1(wbs_stb_i), .A0(la_data_in[17]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[131]));
assign la_data_out[17] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[131];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_130_MUX (.S(la_wb_switch), .A1(wbs_sel_i[0]), .A0(la_data_in[18]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[130]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_130_MUX (.S(wb_la_switch), .A1(wbs_we_i), .A0(la_data_in[18]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[130]));
assign la_data_out[18] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[130];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_129_MUX (.S(la_wb_switch), .A1(wbs_sel_i[1]), .A0(la_data_in[19]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[129]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_129_MUX (.S(wb_la_switch), .A1(wbs_sel_i[0]), .A0(la_data_in[19]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[129]));
assign la_data_out[19] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[129];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_128_MUX (.S(la_wb_switch), .A1(wbs_sel_i[2]), .A0(la_data_in[20]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[128]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_128_MUX (.S(wb_la_switch), .A1(wbs_sel_i[1]), .A0(la_data_in[20]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[128]));
assign la_data_out[20] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[128];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_127_MUX (.S(la_wb_switch), .A1(wbs_sel_i[3]), .A0(la_data_in[21]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[127]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_127_MUX (.S(wb_la_switch), .A1(wbs_sel_i[2]), .A0(la_data_in[21]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[127]));
assign la_data_out[21] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[127];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_126_MUX (.S(la_wb_switch), .A1(wbs_adr_i[0]), .A0(la_data_in[22]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[126]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_126_MUX (.S(wb_la_switch), .A1(wbs_sel_i[3]), .A0(la_data_in[22]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[126]));
assign la_data_out[22] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[126];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_125_MUX (.S(la_wb_switch), .A1(wbs_adr_i[1]), .A0(la_data_in[23]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[125]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_125_MUX (.S(wb_la_switch), .A1(wbs_adr_i[0]), .A0(la_data_in[23]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[125]));
assign la_data_out[23] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[125];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_124_MUX (.S(la_wb_switch), .A1(wbs_adr_i[2]), .A0(la_data_in[24]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[124]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_124_MUX (.S(wb_la_switch), .A1(wbs_adr_i[1]), .A0(la_data_in[24]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[124]));
assign la_data_out[24] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[124];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_123_MUX (.S(la_wb_switch), .A1(wbs_adr_i[3]), .A0(la_data_in[25]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[123]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_123_MUX (.S(wb_la_switch), .A1(wbs_adr_i[2]), .A0(la_data_in[25]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[123]));
assign la_data_out[25] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[123];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_122_MUX (.S(la_wb_switch), .A1(wbs_adr_i[4]), .A0(la_data_in[26]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[122]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_122_MUX (.S(wb_la_switch), .A1(wbs_adr_i[3]), .A0(la_data_in[26]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[122]));
assign la_data_out[26] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[122];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_121_MUX (.S(la_wb_switch), .A1(wbs_adr_i[5]), .A0(la_data_in[27]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[121]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_121_MUX (.S(wb_la_switch), .A1(wbs_adr_i[4]), .A0(la_data_in[27]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[121]));
assign la_data_out[27] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[121];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_120_MUX (.S(la_wb_switch), .A1(wbs_adr_i[6]), .A0(la_data_in[28]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[120]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_120_MUX (.S(wb_la_switch), .A1(wbs_adr_i[5]), .A0(la_data_in[28]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[120]));
assign la_data_out[28] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[120];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_119_MUX (.S(la_wb_switch), .A1(wbs_adr_i[7]), .A0(la_data_in[29]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[119]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_119_MUX (.S(wb_la_switch), .A1(wbs_adr_i[6]), .A0(la_data_in[29]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[119]));
assign la_data_out[29] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[119];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_118_MUX (.S(la_wb_switch), .A1(wbs_adr_i[8]), .A0(la_data_in[30]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[118]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_118_MUX (.S(wb_la_switch), .A1(wbs_adr_i[7]), .A0(la_data_in[30]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[118]));
assign la_data_out[30] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[118];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_117_MUX (.S(la_wb_switch), .A1(wbs_adr_i[9]), .A0(la_data_in[31]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[117]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_117_MUX (.S(wb_la_switch), .A1(wbs_adr_i[8]), .A0(la_data_in[31]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[117]));
assign la_data_out[31] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[117];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_116_MUX (.S(la_wb_switch), .A1(wbs_adr_i[10]), .A0(la_data_in[32]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[116]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_116_MUX (.S(wb_la_switch), .A1(wbs_adr_i[9]), .A0(la_data_in[32]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[116]));
assign la_data_out[32] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[116];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_115_MUX (.S(la_wb_switch), .A1(wbs_adr_i[11]), .A0(la_data_in[33]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[115]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_115_MUX (.S(wb_la_switch), .A1(wbs_adr_i[10]), .A0(la_data_in[33]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[115]));
assign la_data_out[33] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[115];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_114_MUX (.S(la_wb_switch), .A1(wbs_adr_i[12]), .A0(la_data_in[34]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[114]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_114_MUX (.S(wb_la_switch), .A1(wbs_adr_i[11]), .A0(la_data_in[34]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[114]));
assign la_data_out[34] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[114];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_113_MUX (.S(la_wb_switch), .A1(wbs_adr_i[13]), .A0(la_data_in[35]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[113]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_113_MUX (.S(wb_la_switch), .A1(wbs_adr_i[12]), .A0(la_data_in[35]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[113]));
assign la_data_out[35] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[113];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_112_MUX (.S(la_wb_switch), .A1(wbs_adr_i[14]), .A0(la_data_in[36]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[112]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_112_MUX (.S(wb_la_switch), .A1(wbs_adr_i[13]), .A0(la_data_in[36]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[112]));
assign la_data_out[36] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[112];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_111_MUX (.S(la_wb_switch), .A1(wbs_adr_i[15]), .A0(la_data_in[37]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[111]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_111_MUX (.S(wb_la_switch), .A1(wbs_adr_i[14]), .A0(la_data_in[37]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[111]));
assign la_data_out[37] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[111];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_110_MUX (.S(la_wb_switch), .A1(wbs_adr_i[16]), .A0(la_data_in[38]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[110]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_110_MUX (.S(wb_la_switch), .A1(wbs_adr_i[15]), .A0(la_data_in[38]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[110]));
assign la_data_out[38] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[110];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_109_MUX (.S(la_wb_switch), .A1(wbs_adr_i[17]), .A0(la_data_in[39]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[109]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_109_MUX (.S(wb_la_switch), .A1(wbs_adr_i[16]), .A0(la_data_in[39]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[109]));
assign la_data_out[39] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[109];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_108_MUX (.S(la_wb_switch), .A1(wbs_adr_i[18]), .A0(la_data_in[40]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[108]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_108_MUX (.S(wb_la_switch), .A1(wbs_adr_i[17]), .A0(la_data_in[40]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[108]));
assign la_data_out[40] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[108];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_107_MUX (.S(la_wb_switch), .A1(wbs_adr_i[19]), .A0(la_data_in[41]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[107]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_107_MUX (.S(wb_la_switch), .A1(wbs_adr_i[18]), .A0(la_data_in[41]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[107]));
assign la_data_out[41] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[107];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_106_MUX (.S(la_wb_switch), .A1(wbs_adr_i[20]), .A0(la_data_in[42]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[106]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_106_MUX (.S(wb_la_switch), .A1(wbs_adr_i[19]), .A0(la_data_in[42]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[106]));
assign la_data_out[42] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[106];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_105_MUX (.S(la_wb_switch), .A1(wbs_adr_i[21]), .A0(la_data_in[43]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[105]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_105_MUX (.S(wb_la_switch), .A1(wbs_adr_i[20]), .A0(la_data_in[43]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[105]));
assign la_data_out[43] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[105];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_104_MUX (.S(la_wb_switch), .A1(wbs_adr_i[22]), .A0(la_data_in[44]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[104]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_104_MUX (.S(wb_la_switch), .A1(wbs_adr_i[21]), .A0(la_data_in[44]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[104]));
assign la_data_out[44] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[104];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_103_MUX (.S(la_wb_switch), .A1(wbs_adr_i[23]), .A0(la_data_in[45]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[103]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_103_MUX (.S(wb_la_switch), .A1(wbs_adr_i[22]), .A0(la_data_in[45]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[103]));
assign la_data_out[45] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[103];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_102_MUX (.S(la_wb_switch), .A1(wbs_adr_i[24]), .A0(la_data_in[46]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[102]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_102_MUX (.S(wb_la_switch), .A1(wbs_adr_i[23]), .A0(la_data_in[46]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[102]));
assign la_data_out[46] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[102];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_101_MUX (.S(la_wb_switch), .A1(wbs_adr_i[25]), .A0(la_data_in[47]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[101]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_101_MUX (.S(wb_la_switch), .A1(wbs_adr_i[24]), .A0(la_data_in[47]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[101]));
assign la_data_out[47] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[101];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_100_MUX (.S(la_wb_switch), .A1(wbs_adr_i[26]), .A0(la_data_in[48]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[100]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_100_MUX (.S(wb_la_switch), .A1(wbs_adr_i[25]), .A0(la_data_in[48]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[100]));
assign la_data_out[48] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[100];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_99_MUX (.S(la_wb_switch), .A1(wbs_adr_i[27]), .A0(la_data_in[49]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[99]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_99_MUX (.S(wb_la_switch), .A1(wbs_adr_i[26]), .A0(la_data_in[49]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[99]));
assign la_data_out[49] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[99];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_98_MUX (.S(la_wb_switch), .A1(wbs_adr_i[28]), .A0(la_data_in[50]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[98]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_98_MUX (.S(wb_la_switch), .A1(wbs_adr_i[27]), .A0(la_data_in[50]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[98]));
assign la_data_out[50] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[98];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_97_MUX (.S(la_wb_switch), .A1(wbs_adr_i[29]), .A0(la_data_in[51]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[97]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_97_MUX (.S(wb_la_switch), .A1(wbs_adr_i[28]), .A0(la_data_in[51]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[97]));
assign la_data_out[51] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[97];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_96_MUX (.S(la_wb_switch), .A1(wbs_adr_i[30]), .A0(la_data_in[52]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[96]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_96_MUX (.S(wb_la_switch), .A1(wbs_adr_i[29]), .A0(la_data_in[52]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[96]));
assign la_data_out[52] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[96];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_95_MUX (.S(la_wb_switch), .A1(wbs_adr_i[31]), .A0(la_data_in[53]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[95]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_95_MUX (.S(wb_la_switch), .A1(wbs_adr_i[30]), .A0(la_data_in[53]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[95]));
assign la_data_out[53] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[95];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_94_MUX (.S(la_wb_switch), .A1(wbs_dat_i[0]), .A0(la_data_in[54]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[94]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_94_MUX (.S(wb_la_switch), .A1(wbs_adr_i[31]), .A0(la_data_in[54]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[94]));
assign la_data_out[54] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[94];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_93_MUX (.S(la_wb_switch), .A1(wbs_dat_i[1]), .A0(la_data_in[55]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[93]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_93_MUX (.S(wb_la_switch), .A1(wbs_dat_i[0]), .A0(la_data_in[55]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[93]));
assign la_data_out[55] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[93];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_92_MUX (.S(la_wb_switch), .A1(wbs_dat_i[2]), .A0(la_data_in[56]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[92]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_92_MUX (.S(wb_la_switch), .A1(wbs_dat_i[1]), .A0(la_data_in[56]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[92]));
assign la_data_out[56] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[92];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_91_MUX (.S(la_wb_switch), .A1(wbs_dat_i[3]), .A0(la_data_in[57]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[91]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_91_MUX (.S(wb_la_switch), .A1(wbs_dat_i[2]), .A0(la_data_in[57]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[91]));
assign la_data_out[57] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[91];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_90_MUX (.S(la_wb_switch), .A1(wbs_dat_i[4]), .A0(la_data_in[58]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[90]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_90_MUX (.S(wb_la_switch), .A1(wbs_dat_i[3]), .A0(la_data_in[58]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[90]));
assign la_data_out[58] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[90];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_89_MUX (.S(la_wb_switch), .A1(wbs_dat_i[5]), .A0(la_data_in[59]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[89]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_89_MUX (.S(wb_la_switch), .A1(wbs_dat_i[4]), .A0(la_data_in[59]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[89]));
assign la_data_out[59] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[89];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_88_MUX (.S(la_wb_switch), .A1(wbs_dat_i[6]), .A0(la_data_in[60]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[88]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_88_MUX (.S(wb_la_switch), .A1(wbs_dat_i[5]), .A0(la_data_in[60]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[88]));
assign la_data_out[60] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[88];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_87_MUX (.S(la_wb_switch), .A1(wbs_dat_i[7]), .A0(la_data_in[61]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[87]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_87_MUX (.S(wb_la_switch), .A1(wbs_dat_i[6]), .A0(la_data_in[61]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[87]));
assign la_data_out[61] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[87];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_86_MUX (.S(la_wb_switch), .A1(wbs_dat_i[8]), .A0(la_data_in[62]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[86]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_86_MUX (.S(wb_la_switch), .A1(wbs_dat_i[7]), .A0(la_data_in[62]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[86]));
assign la_data_out[62] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[86];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_85_MUX (.S(la_wb_switch), .A1(wbs_dat_i[9]), .A0(la_data_in[63]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[85]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_85_MUX (.S(wb_la_switch), .A1(wbs_dat_i[8]), .A0(la_data_in[63]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[85]));
assign la_data_out[63] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[85];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_84_MUX (.S(la_wb_switch), .A1(wbs_dat_i[10]), .A0(la_data_in[64]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[84]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_84_MUX (.S(wb_la_switch), .A1(wbs_dat_i[9]), .A0(la_data_in[64]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[84]));
assign la_data_out[64] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[84];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_83_MUX (.S(la_wb_switch), .A1(wbs_dat_i[11]), .A0(la_data_in[65]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[83]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_83_MUX (.S(wb_la_switch), .A1(wbs_dat_i[10]), .A0(la_data_in[65]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[83]));
assign la_data_out[65] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[83];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_82_MUX (.S(la_wb_switch), .A1(wbs_dat_i[12]), .A0(la_data_in[66]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[82]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_82_MUX (.S(wb_la_switch), .A1(wbs_dat_i[11]), .A0(la_data_in[66]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[82]));
assign la_data_out[66] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[82];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_81_MUX (.S(la_wb_switch), .A1(wbs_dat_i[13]), .A0(la_data_in[67]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[81]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_81_MUX (.S(wb_la_switch), .A1(wbs_dat_i[12]), .A0(la_data_in[67]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[81]));
assign la_data_out[67] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[81];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_80_MUX (.S(la_wb_switch), .A1(wbs_dat_i[14]), .A0(la_data_in[68]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[80]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_80_MUX (.S(wb_la_switch), .A1(wbs_dat_i[13]), .A0(la_data_in[68]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[80]));
assign la_data_out[68] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[80];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_79_MUX (.S(la_wb_switch), .A1(wbs_dat_i[15]), .A0(la_data_in[69]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[79]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_79_MUX (.S(wb_la_switch), .A1(wbs_dat_i[14]), .A0(la_data_in[69]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[79]));
assign la_data_out[69] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[79];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_78_MUX (.S(la_wb_switch), .A1(wbs_dat_i[16]), .A0(la_data_in[70]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[78]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_78_MUX (.S(wb_la_switch), .A1(wbs_dat_i[15]), .A0(la_data_in[70]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[78]));
assign la_data_out[70] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[78];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_77_MUX (.S(la_wb_switch), .A1(wbs_dat_i[17]), .A0(la_data_in[71]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[77]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_77_MUX (.S(wb_la_switch), .A1(wbs_dat_i[16]), .A0(la_data_in[71]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[77]));
assign la_data_out[71] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[77];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_76_MUX (.S(la_wb_switch), .A1(wbs_dat_i[18]), .A0(la_data_in[72]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[76]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_76_MUX (.S(wb_la_switch), .A1(wbs_dat_i[17]), .A0(la_data_in[72]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[76]));
assign la_data_out[72] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[76];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_75_MUX (.S(la_wb_switch), .A1(wbs_dat_i[19]), .A0(la_data_in[73]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[75]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_75_MUX (.S(wb_la_switch), .A1(wbs_dat_i[18]), .A0(la_data_in[73]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[75]));
assign la_data_out[73] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[75];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_74_MUX (.S(la_wb_switch), .A1(wbs_dat_i[20]), .A0(la_data_in[74]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[74]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_74_MUX (.S(wb_la_switch), .A1(wbs_dat_i[19]), .A0(la_data_in[74]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[74]));
assign la_data_out[74] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[74];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_73_MUX (.S(la_wb_switch), .A1(wbs_dat_i[21]), .A0(la_data_in[75]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[73]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_73_MUX (.S(wb_la_switch), .A1(wbs_dat_i[20]), .A0(la_data_in[75]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[73]));
assign la_data_out[75] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[73];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_72_MUX (.S(la_wb_switch), .A1(wbs_dat_i[22]), .A0(la_data_in[76]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[72]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_72_MUX (.S(wb_la_switch), .A1(wbs_dat_i[21]), .A0(la_data_in[76]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[72]));
assign la_data_out[76] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[72];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_71_MUX (.S(la_wb_switch), .A1(wbs_dat_i[23]), .A0(la_data_in[77]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[71]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_71_MUX (.S(wb_la_switch), .A1(wbs_dat_i[22]), .A0(la_data_in[77]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[71]));
assign la_data_out[77] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[71];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_70_MUX (.S(la_wb_switch), .A1(wbs_dat_i[24]), .A0(la_data_in[78]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[70]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_70_MUX (.S(wb_la_switch), .A1(wbs_dat_i[23]), .A0(la_data_in[78]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[70]));
assign la_data_out[78] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[70];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_69_MUX (.S(la_wb_switch), .A1(wbs_dat_i[25]), .A0(la_data_in[79]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[69]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_69_MUX (.S(wb_la_switch), .A1(wbs_dat_i[24]), .A0(la_data_in[79]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[69]));
assign la_data_out[79] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[69];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_68_MUX (.S(la_wb_switch), .A1(wbs_dat_i[26]), .A0(la_data_in[80]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[68]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_68_MUX (.S(wb_la_switch), .A1(wbs_dat_i[25]), .A0(la_data_in[80]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[68]));
assign la_data_out[80] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[68];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_67_MUX (.S(la_wb_switch), .A1(wbs_dat_i[27]), .A0(la_data_in[81]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[67]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_67_MUX (.S(wb_la_switch), .A1(wbs_dat_i[26]), .A0(la_data_in[81]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[67]));
assign la_data_out[81] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[67];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_66_MUX (.S(la_wb_switch), .A1(wbs_dat_i[28]), .A0(la_data_in[82]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[66]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_66_MUX (.S(wb_la_switch), .A1(wbs_dat_i[27]), .A0(la_data_in[82]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[66]));
assign la_data_out[82] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[66];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_65_MUX (.S(la_wb_switch), .A1(wbs_dat_i[29]), .A0(la_data_in[83]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[65]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_65_MUX (.S(wb_la_switch), .A1(wbs_dat_i[28]), .A0(la_data_in[83]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[65]));
assign la_data_out[83] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[65];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_64_MUX (.S(la_wb_switch), .A1(wbs_dat_i[30]), .A0(la_data_in[84]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[64]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_64_MUX (.S(wb_la_switch), .A1(wbs_dat_i[29]), .A0(la_data_in[84]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[64]));
assign la_data_out[84] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[64];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_63_MUX (.S(la_wb_switch), .A1(wbs_dat_i[31]), .A0(la_data_in[85]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[63]));
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_63_MUX (.S(wb_la_switch), .A1(wbs_dat_i[30]), .A0(la_data_in[85]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[63]));
assign la_data_out[85] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[63];
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[62] = la_data_in[86];
assign wbs_dat_o[0] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[62];
sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_62_MUX (.S(wb_la_switch), .A1(wbs_dat_i[31]), .A0(la_data_in[86]), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[62]));
assign la_data_out[86] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[62];
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[61] = la_data_in[87];
assign wbs_dat_o[1] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[61];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_61_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[61]), .Z(wbs_dat_o[0]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_61_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[61]), .Z(la_data_out[87]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[60] = la_data_in[88];
assign wbs_dat_o[2] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[60];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_60_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[60]), .Z(wbs_dat_o[1]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_60_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[60]), .Z(la_data_out[88]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[59] = la_data_in[89];
assign wbs_dat_o[3] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[59];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_59_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[59]), .Z(wbs_dat_o[2]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_59_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[59]), .Z(la_data_out[89]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[58] = la_data_in[90];
assign wbs_dat_o[4] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[58];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_58_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[58]), .Z(wbs_dat_o[3]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_58_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[58]), .Z(la_data_out[90]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[57] = la_data_in[91];
assign wbs_dat_o[5] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[57];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_57_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[57]), .Z(wbs_dat_o[4]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_57_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[57]), .Z(la_data_out[91]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[56] = la_data_in[92];
assign wbs_dat_o[6] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[56];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_56_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[56]), .Z(wbs_dat_o[5]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_56_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[56]), .Z(la_data_out[92]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[55] = la_data_in[93];
assign wbs_dat_o[7] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[55];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_55_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[55]), .Z(wbs_dat_o[6]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_55_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[55]), .Z(la_data_out[93]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[54] = la_data_in[94];
assign wbs_dat_o[8] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[54];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_54_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[54]), .Z(wbs_dat_o[7]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_54_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[54]), .Z(la_data_out[94]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[53] = la_data_in[95];
assign wbs_dat_o[9] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[53];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_53_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[53]), .Z(wbs_dat_o[8]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_53_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[53]), .Z(la_data_out[95]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[52] = la_data_in[96];
assign wbs_dat_o[10] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[52];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_52_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[52]), .Z(wbs_dat_o[9]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_52_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[52]), .Z(la_data_out[96]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[51] = la_data_in[97];
assign wbs_dat_o[11] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[51];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_51_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[51]), .Z(wbs_dat_o[10]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_51_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[51]), .Z(la_data_out[97]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[50] = la_data_in[98];
assign wbs_dat_o[12] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[50];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_50_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[50]), .Z(wbs_dat_o[11]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_50_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[50]), .Z(la_data_out[98]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[49] = la_data_in[99];
assign wbs_dat_o[13] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[49];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_49_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[49]), .Z(wbs_dat_o[12]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_49_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[49]), .Z(la_data_out[99]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[48] = la_data_in[100];
assign wbs_dat_o[14] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[48];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_48_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[48]), .Z(wbs_dat_o[13]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_48_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[48]), .Z(la_data_out[100]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[47] = la_data_in[101];
assign wbs_dat_o[15] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[47];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_47_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[47]), .Z(wbs_dat_o[14]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_47_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[47]), .Z(la_data_out[101]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[46] = la_data_in[102];
assign wbs_dat_o[16] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[46];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_46_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[46]), .Z(wbs_dat_o[15]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_46_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[46]), .Z(la_data_out[102]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[45] = la_data_in[103];
assign wbs_dat_o[17] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[45];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_45_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[45]), .Z(wbs_dat_o[16]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_45_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[45]), .Z(la_data_out[103]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[44] = la_data_in[104];
assign wbs_dat_o[18] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[44];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_44_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[44]), .Z(wbs_dat_o[17]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_44_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[44]), .Z(la_data_out[104]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[43] = la_data_in[105];
assign wbs_dat_o[19] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[43];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_43_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[43]), .Z(wbs_dat_o[18]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_43_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[43]), .Z(la_data_out[105]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[42] = la_data_in[106];
assign wbs_dat_o[20] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[42];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_42_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[42]), .Z(wbs_dat_o[19]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_42_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[42]), .Z(la_data_out[106]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[41] = la_data_in[107];
assign wbs_dat_o[21] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[41];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_41_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[41]), .Z(wbs_dat_o[20]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_41_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[41]), .Z(la_data_out[107]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[40] = la_data_in[108];
assign wbs_dat_o[22] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[40];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_40_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[40]), .Z(wbs_dat_o[21]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_40_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[40]), .Z(la_data_out[108]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[39] = la_data_in[109];
assign wbs_dat_o[23] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[39];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_39_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[39]), .Z(wbs_dat_o[22]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_39_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[39]), .Z(la_data_out[109]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[38] = la_data_in[110];
assign wbs_dat_o[24] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[38];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_38_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[38]), .Z(wbs_dat_o[23]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_38_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[38]), .Z(la_data_out[110]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[37] = la_data_in[111];
assign wbs_dat_o[25] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[37];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_37_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[37]), .Z(wbs_dat_o[24]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_37_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[37]), .Z(la_data_out[111]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[36] = la_data_in[112];
assign wbs_dat_o[26] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[36];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_36_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[36]), .Z(wbs_dat_o[25]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_36_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[36]), .Z(la_data_out[112]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[35] = la_data_in[113];
assign wbs_dat_o[27] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[35];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_35_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[35]), .Z(wbs_dat_o[26]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_35_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[35]), .Z(la_data_out[113]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[34] = la_data_in[114];
assign wbs_dat_o[28] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[34];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_34_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[34]), .Z(wbs_dat_o[27]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_34_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[34]), .Z(la_data_out[114]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[33] = la_data_in[115];
assign wbs_dat_o[29] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[33];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_33_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[33]), .Z(wbs_dat_o[28]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_33_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[33]), .Z(la_data_out[115]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[32] = la_data_in[116];
assign wbs_dat_o[30] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[32];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_32_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[32]), .Z(wbs_dat_o[29]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_32_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[32]), .Z(la_data_out[116]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[31] = la_data_in[117];
assign wbs_dat_o[31] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[31];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_31_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[31]), .Z(wbs_dat_o[30]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_31_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[31]), .Z(la_data_out[117]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[30] = la_data_in[118];
assign la_data_out[118] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[30];
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_30_DEMUX_WB (.TE_B(wb_la_switch_b), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[30]), .Z(wbs_dat_o[31]));
sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_30_DEMUX_LA (.TE_B(wb_la_switch), .A(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[30]), .Z(la_data_out[118]));
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[29] = la_data_in[119];
assign la_data_out[119] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[29];
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[28] = la_data_in[120];
@ -344,7 +383,7 @@ module fpga_top (
assign io_oeb[37] = 1'b1;
// FPGA clock port can be driven by either wishbone clock or an GPIO
sky130_fd_sc_hd__mux2_1 FPGA_CLK_MUX (.S(la_wb_switch), .A1(wb_clk_i), .A0(io_in[36]), .X(clk));
assign clk = io_in[36];
assign io_out[36] = 1'b0;
assign io_oeb[36] = 1'b1;

View File

@ -68,6 +68,12 @@ module fpga_top (
// Switch between wishbone and logic analyzer
wire wb_la_switch;
wire wb_la_switch_b;
// Inverted switch signal to drive tri-state buffers
// Use drive strength 8 as we will have 33 output pins which is driven by
// the buffers
sky130_fd_sc_hd__inv_8 WB_LA_SWITCH_INV (.A(la_wb_switch), .Y(la_wb_switch_b));
// Wire-bond TOP side I/O of FPGA to LEFT-side of Caravel interface
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[0] = io_in[24];
@ -114,7 +120,7 @@ module fpga_top (
assign io_oeb[37] = 1'b1;
// FPGA clock port can be driven by either wishbone clock or an GPIO
sky130_fd_sc_hd__mux2_1 FPGA_CLK_MUX (.S(la_wb_switch), .A1(wb_clk_i), .A0(io_in[36]), .X(clk));
assign clk = io_in[36];
assign io_out[36] = 1'b0;
assign io_oeb[36] = 1'b1;

View File

@ -1,46 +0,0 @@
//-----------------------------------------------------
// This file includes behavorial modeling
// for digital I/O cells
// These cells may not be directly used for physical design
// Synthesis tools may be needed
//-----------------------------------------------------
`timescale 1ns/1ps
//-----------------------------------------------------
// Function : A minimum input pad
//-----------------------------------------------------
module GPIN (
inout A, // External PAD signal
output Y // Data input
);
assign Y = A;
endmodule
//-----------------------------------------------------
// Function : A minimum output pad
//-----------------------------------------------------
module GPOUT (
inout Y, // External PAD signal
input A // Data output
);
assign Y = A;
endmodule
//-----------------------------------------------------
// Function : A minimum embedded I/O
// just an overlay to interface other components
//-----------------------------------------------------
module EMBEDDED_IO (
input SOC_IN, // Input to drive the inpad signal
output SOC_OUT, // Output the outpad signal
output SOC_DIR, // Output the directionality
output FPGA_IN, // Input data to FPGA
input FPGA_OUT, // Output data from FPGA
input FPGA_DIR // direction control
);
assign FPGA_IN = SOC_IN;
assign SOC_OUT = FPGA_OUT;
assign SOC_DIR = FPGA_DIR;
endmodule

View File

@ -31,22 +31,26 @@ module EMBEDDED_IO_HD (
input IO_ISOL_N // Isolation enable signal
);
sky130_fd_sc_hd__and2_0 ISOL_EN_GATE (.A(IO_ISOL_N),
.B(FPGA_DIR),
wire SOC_DIR_N;
// Use drive-strength 4 for a high fan-out from SoC components
sky130_fd_sc_hd__or2b_4 ISOL_EN_GATE (.B_N(IO_ISOL_N),
.A(FPGA_DIR),
.X(SOC_DIR)
);
// Use drive-strength 4 for a high fan-out from global routing architecture
sky130_fd_sc_hd__and2_4 IN_PROTECT_GATE (.A(SOC_DIR),
.B(SOC_IN),
.X(FPGA_IN)
);
sky130_fd_sc_hd__inv_1 INV_SOC_DIR (.A(SOC_DIR), .Y(SOC_DIR_N));
sky130_fd_sc_hd__ebufn_4 IN_PROTECT_GATE (.TE_B(SOC_DIR_N),
.A(SOC_IN),
.Z(FPGA_IN)
);
// Use drive-strength 4 for a potential high fan-out from SoC components
sky130_fd_sc_hd__and2b_4 OUT_PROTECT_GATE (.A_N(SOC_DIR),
.B(FPGA_OUT),
.X(SOC_OUT)
);
sky130_fd_sc_hd__ebufn_4 OUT_PROTECT_GATE (.TE_B(SOC_DIR),
.A(FPGA_OUT),
.Z(SOC_OUT)
);
endmodule

View File

@ -1,8 +1,9 @@
#####################################################################
# Python script to adapt an OpenFPGA architecture file
# Python script generate Verilog codes for the Caravel wrapper
# which interface the FPGA fabric and other SoC components
# This script will
# - Convert the ${SKYWATER_OPENFPGA_HOME} to the absolute path of current directory
#
# - generate the Verilog codes to connect FPGA inputs to Wishbone and Logic analyzer
# - generate the Verilog codes to connect FPGA outputs to Wishbone and Logic analyzer
#####################################################################
import os
@ -34,7 +35,8 @@ args = parser.parse_args()
# The list start from left-side of the wrapper to the right side
# Target FPGA gpio start from 135, 134 ...
#####################################################################
wishbone_pins = ['wb_rst_i', 'wbs_ack_o', 'wbs_cyc_i',
wishbone_pins = ['wb_clk_i', 'wb_rst_i',
'wbs_ack_o', 'wbs_cyc_i',
'wbs_stb_i', 'wbs_we_i']
wishbone_pins.extend([f"wbs_sel_i[{i}]" for i in range(4)])
@ -73,25 +75,58 @@ for ipin in range(0, num_gpio_pins):
# If this is an input pin of wishbone interface, whose postfix is '_i', we use MUX
# otherwise, this is an output pin, we just wire the input to logic analyzer
if ((wishbone_pins[ipin].endswith("_i")) or (re.search(r'_i\[\d+\]$', wishbone_pins[ipin], re.M | re.I))):
curr_line = " " + "sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_" + str(135 - ipin) + "_MUX (.S(la_wb_switch), .A1(" + str(
##############################################################
# SOC INPUT will be directly driven by either
# - the Wishbone input
# or
# - the logic analyzer input
# through a multiplexer controlled by the signal 'wb_la_switch
curr_line = " " + "sky130_fd_sc_hd__mux2_1 FPGA2SOC_IN_" + str(135 - ipin) + "_MUX (.S(wb_la_switch), .A1(" + str(
wishbone_pins[ipin]) + "), .A0(" + str(logic_analyzer_pins[ipin][0]) + "), .X(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[" + str(135 - ipin) + "]));"
netlist_lines.append(curr_line + "\n")
##############################################################
# SOC OUTPUT will drive an output of logic analyzer
# since this I/O is going to interface a Wishbone input only
curr_line = " " + "assign " + \
str(logic_analyzer_pins[ipin][1]) + \
" = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[" + str(135 - ipin) + "];"
netlist_lines.append(curr_line + "\n")
elif ((wishbone_pins[ipin].endswith("_o")) or (re.search(r'_o\[\d+\]$', wishbone_pins[ipin], re.M | re.I))):
##############################################################
# SOC INPUT will be directly driven by logic analyzer
# since this I/O is going to interface a Wishbone output only
curr_line = " " + "assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[" + str(
135 - ipin) + "] = " + str(logic_analyzer_pins[ipin][0]) + ";"
netlist_lines.append(curr_line + "\n")
curr_line = " " + "assign " + \
str(wishbone_pins[ipin]) + \
" = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[" + str(135 - ipin) + "];"
##############################################################
# SOC OUTPUT will drive the Wishbone output through a tri-state buffer
# As the buffer is enabled by logic '0', we use the inverted 'wb_la_switch'
curr_line = " " + "sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_" + str(135 - ipin) + "_DEMUX_WB (" + \
".TE_B(wb_la_switch_b), " + \
".A(" + "gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[" + str(135 - ipin) + "]), " + \
".Z(" + str(wishbone_pins[ipin]) + ")" + \
");"
netlist_lines.append(curr_line + "\n")
##############################################################
# SOC OUTPUT will also drive the Logic Analyzer output through a tri-state buffer
# As the buffer is enabled by logic '0', we use the 'wb_la_switch'
curr_line = " " + "sky130_fd_sc_hd__ebufn_4 FPGA2SOC_OUT_" + str(135 - ipin) + "_DEMUX_LA (" + \
".TE_B(wb_la_switch), " + \
".A(" + "gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[" + str(135 - ipin) + "]), " + \
".Z(" + str(logic_analyzer_pins[ipin][1]) + ")" + \
");"
netlist_lines.append(curr_line + "\n")
elif ((ipin >= num_wishbone_pins) and (ipin < num_logic_analyzer_pins)):
##############################################################
# SOC INPUT will be directly driven by logic analyzer
# since this I/O is going to interface logic analyzer input only
curr_line = " " + "assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[" + str(
135 - ipin) + "] = " + str(logic_analyzer_pins[ipin][0]) + ";"
netlist_lines.append(curr_line + "\n")
##############################################################
# SOC OUTPUT will directly drive logic analyzer
# since this I/O is going to interface logic analyzer output only
curr_line = " " + "assign " + \
str(logic_analyzer_pins[ipin][1]) + \
" = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[" + str(135 - ipin) + "];"

View File

@ -31,10 +31,24 @@ arch0=${SKYWATER_OPENFPGA_HOME}/ARCH/vpr_arch/k4_frac_N8_tileable_register_scan_
[BENCHMARKS]
bench0=${SKYWATER_OPENFPGA_HOME}/BENCHMARK/and2/and2.v
bench1=${SKYWATER_OPENFPGA_HOME}/BENCHMARK/and2_latch/and2_latch.v
bench2=${SKYWATER_OPENFPGA_HOME}/BENCHMARK/bin2bcd/bin2bcd.v
bench3=${SKYWATER_OPENFPGA_HOME}/BENCHMARK/counter/counter.v
bench4=${SKYWATER_OPENFPGA_HOME}/BENCHMARK/routing_test/routing_test.v
# RS decoder needs 1.5k LUT4, exceeding device capacity
#bench5=${SKYWATER_OPENFPGA_HOME}/BENCHMARK/rs_decoder/rtl/rs_decoder.v
bench6=${SKYWATER_OPENFPGA_HOME}/BENCHMARK/simon_bit_serial/rtl/*.v
bench7=${SKYWATER_OPENFPGA_HOME}/BENCHMARK/and2_or2/and2_or2.v
[SYNTHESIS_PARAM]
bench0_top = and2
bench1_top = and2_latch
bench2_top = bin2bcd
bench3_top = counter
bench4_top = routing_test
# RS decoder needs 1.5k LUT4, exceeding device capacity
#bench5_top = rs_decoder_top
bench6_top = top_module
bench7_top = and2_or2
[SCRIPT_PARAM_MIN_ROUTE_CHAN_WIDTH]
#end_flow_with_test=

View File

@ -2,4 +2,5 @@
This directory contains the testbenches for FPGA fabrics that are automatically generated by OpenFPGA or tuned for a specific FPGA fabric.
Please keep this directory clean and organize as follows:
- Each testbench should be placed in a separated directory
- **common**: include commonly used testbench template for post-PnR verification mainly
- READMD is the only file allowed in the directory, others should be sub-directories.

View File

@ -0,0 +1,11 @@
# Skywater PDK
This directory contains the commonly used testbench template for FPGA verificatio
* **post\_pnr\_fpga\_cells.v**: The netlist that includes all the standard cells used by the post-PnRed FPGA fabric
* Pre-PnR testbenches
- **pre\_pnr\_ccff\_test.v**: The template testbench for post-PnR verification on the configuration chain
* Post-PnR testbenches
- **post\_pnr\_ccff\_test.v**: The template testbench for post-PnR verification on the configuration chain
- **post\_pnr\_scff\_test.v**: The template testbench for post-PnR verification on the scan chain

View File

@ -54,6 +54,7 @@ wire [0:0] IO_ISOL_N;
// ----- Counters for error checking -----
integer num_prog_cycles = 0;
integer num_errors = 0;
integer num_checked_points = 0;
// Indicate when configuration should be finished
reg config_done = 0;
@ -134,9 +135,9 @@ initial
.prog_clk(prog_clk[0]),
.Test_en(Test_en[0]),
.clk(clk[0]),
.gfpga_pad_EMBEDDED_IO_SOC_IN(gfpga_pad_EMBEDDED_IO_SOC_IN[0:`FPGA_IO_SIZE - 1]),
.gfpga_pad_EMBEDDED_IO_SOC_OUT(gfpga_pad_EMBEDDED_IO_SOC_OUT[0:`FPGA_IO_SIZE - 1]),
.gfpga_pad_EMBEDDED_IO_SOC_DIR(gfpga_pad_EMBEDDED_IO_SOC_DIR[0:`FPGA_IO_SIZE - 1]),
.gfpga_pad_EMBEDDED_IO_HD_SOC_IN(gfpga_pad_EMBEDDED_IO_SOC_IN[0:`FPGA_IO_SIZE - 1]),
.gfpga_pad_EMBEDDED_IO_HD_SOC_OUT(gfpga_pad_EMBEDDED_IO_SOC_OUT[0:`FPGA_IO_SIZE - 1]),
.gfpga_pad_EMBEDDED_IO_HD_SOC_DIR(gfpga_pad_EMBEDDED_IO_SOC_DIR[0:`FPGA_IO_SIZE - 1]),
.ccff_head(ccff_head[0]),
.ccff_tail(ccff_tail[0]),
.sc_head(sc_head[0]),
@ -168,11 +169,24 @@ initial
// Check the ccff_tail when configuration is done
if (1'b1 == config_done) begin
if (sc_tail != 1'b1) begin
$display("Error: sc_tail = %b", sc_tail);
num_errors = num_errors + 1;
// The tail should spit a pulse after configuration is done
// So it should be at logic '1' and then pulled down to logic '0'
if (0 == num_checked_points) begin
if (ccff_tail !== 1'b1) begin
$display("Error: ccff_tail = %b", sc_tail);
num_errors = num_errors + 1;
end
end
if (1 <= num_checked_points) begin
if (ccff_tail !== 1'b0) begin
$display("Error: ccff_tail = %b", sc_tail);
num_errors = num_errors + 1;
end
end
num_checked_points = num_checked_points + 1;
end
if (2 < num_checked_points) begin
$display("Simulation finish with %d errors", num_errors);
// End simulation

View File

@ -0,0 +1,48 @@
// Include Skywater cell netlists that are used in post PnRed FPGA netlists
// Cells already used pre-PnR
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or2/sky130_fd_sc_hd__or2_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfxtp/sky130_fd_sc_hd__sdfxtp_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfxtp/sky130_fd_sc_hd__dfxtp_1.v"
// Cells added due to their use in PnR
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or2/sky130_fd_sc_hd__or2_0.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/conb/sky130_fd_sc_hd__conb_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd1/sky130_fd_sc_hd__dlygate4sd1_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd2/sky130_fd_sc_hd__dlygate4sd2_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlymetal6s2s/sky130_fd_sc_hd__dlymetal6s2s_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlymetal6s6s/sky130_fd_sc_hd__dlymetal6s6s_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_6.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd3/sky130_fd_sc_hd__dlygate4sd3_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_6.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_12.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_16.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_16.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/bufinv/sky130_fd_sc_hd__bufinv_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinvlp/sky130_fd_sc_hd__clkinvlp_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinvlp/sky130_fd_sc_hd__clkinvlp_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkbuf/sky130_fd_sc_hd__clkbuf_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkbuf/sky130_fd_sc_hd__clkbuf_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkdlybuf4s50/sky130_fd_sc_hd__clkdlybuf4s50_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_12.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_16.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/bufbuf/sky130_fd_sc_hd__bufbuf_16.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/bufbuf/sky130_fd_sc_hd__bufbuf_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nor2b/sky130_fd_sc_hd__nor2b_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/and2/sky130_fd_sc_hd__and2_0.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nand2b/sky130_fd_sc_hd__nand2b_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/ebufn/sky130_fd_sc_hd__ebufn_4.v"

View File

@ -54,6 +54,7 @@ wire [0:0] IO_ISOL_N;
// ----- Counters for error checking -----
integer num_clock_cycles = 0;
integer num_errors = 0;
integer num_checked_points = 0;
// Indicate when configuration should be finished
reg scan_done = 0;
@ -130,14 +131,14 @@ initial
.prog_clk(prog_clk[0]),
.Test_en(Test_en[0]),
.clk(clk[0]),
.gfpga_pad_EMBEDDED_IO_SOC_IN(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[0:`FPGA_IO_SIZE - 1]),
.gfpga_pad_EMBEDDED_IO_SOC_OUT(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[0:`FPGA_IO_SIZE - 1]),
.gfpga_pad_EMBEDDED_IO_SOC_DIR(gfpga_pad_EMBEDDED_IO_HD_SOC_DIR[0:`FPGA_IO_SIZE - 1]),
.gfpga_pad_EMBEDDED_IO_HD_SOC_IN(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[0:`FPGA_IO_SIZE - 1]),
.gfpga_pad_EMBEDDED_IO_HD_SOC_OUT(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[0:`FPGA_IO_SIZE - 1]),
.gfpga_pad_EMBEDDED_IO_HD_SOC_DIR(gfpga_pad_EMBEDDED_IO_HD_SOC_DIR[0:`FPGA_IO_SIZE - 1]),
.ccff_head(ccff_head[0]),
.ccff_tail(ccff_tail[0]),
.sc_head(sc_head[0]),
.sc_tail(sc_tail[0])
//.IO_ISOL_N(IO_ISOL_N)
.sc_tail(sc_tail[0]),
.IO_ISOL_N(IO_ISOL_N)
);
// ----- Force constant '0' to FPGA I/O as this testbench only check
@ -164,11 +165,24 @@ initial
// Check the tail of scan-chain when configuration is done
if (1'b1 == scan_done) begin
if (sc_tail != 1'b1) begin
$display("Error: sc_tail = %b", sc_tail);
num_errors = num_errors + 1;
// The tail should spit a pulse after configuration is done
// So it should be at logic '1' and then pulled down to logic '0'
if (0 == num_checked_points) begin
if (sc_tail !== 1'b1) begin
$display("Error: sc_tail = %b", sc_tail);
num_errors = num_errors + 1;
end
end
if (1 <= num_checked_points) begin
if (sc_tail !== 1'b0) begin
$display("Error: sc_tail = %b", sc_tail);
num_errors = num_errors + 1;
end
end
num_checked_points = num_checked_points + 1;
end
if (2 < num_checked_points) begin
$display("Simulation finish with %d errors", num_errors);
// End simulation

View File

@ -3,7 +3,7 @@
// Description: FPGA Verilog Testbench for Top-level netlist of Design: and2_latch
// Author: Xifan TANG
// Organization: University of Utah
// Date: Tue Nov 17 15:03:02 2020
// Date: Tue Nov 17 19:54:57 2020
//-------------------------------------------
//----- Time scale -----
`timescale 1ns / 1ps
@ -12,14 +12,15 @@ module and2_latch_autocheck_top_tb;
// ----- Local wires for global ports of FPGA fabric -----
wire [0:0] prog_clk;
wire [0:0] Test_en;
wire [0:0] IO_ISOL_N;
wire [0:0] clk;
// ----- Local wires for I/Os of FPGA fabric -----
wire [0:143] gfpga_pad_EMBEDDED_IO_SOC_IN;
wire [0:143] gfpga_pad_EMBEDDED_IO_HD_SOC_IN;
wire [0:143] gfpga_pad_EMBEDDED_IO_SOC_OUT;
wire [0:143] gfpga_pad_EMBEDDED_IO_SOC_DIR;
wire [0:143] gfpga_pad_EMBEDDED_IO_HD_SOC_OUT;
wire [0:143] gfpga_pad_EMBEDDED_IO_HD_SOC_DIR;
reg [0:0] config_done;
wire [0:0] prog_clock;
@ -141,321 +142,325 @@ initial
assign prog_clk[0] = prog_clock[0];
assign clk[0] = op_clock[0];
assign Test_en[0] = 1'b0;
assign IO_ISOL_N[0] = 1'b1;
assign sc_head[0] = 1'b0;
// ----- End connecting global ports of FPGA fabric to stimuli -----
// ----- FPGA top-level module to be capsulated -----
fpga_core FPGA_DUT (
.prog_clk(prog_clk[0]),
.Test_en(Test_en[0]),
.IO_ISOL_N(IO_ISOL_N[0]),
.clk(clk[0]),
.gfpga_pad_EMBEDDED_IO_SOC_IN(gfpga_pad_EMBEDDED_IO_SOC_IN[0:143]),
.gfpga_pad_EMBEDDED_IO_SOC_OUT(gfpga_pad_EMBEDDED_IO_SOC_OUT[0:143]),
.gfpga_pad_EMBEDDED_IO_SOC_DIR(gfpga_pad_EMBEDDED_IO_SOC_DIR[0:143]),
.gfpga_pad_EMBEDDED_IO_HD_SOC_IN(gfpga_pad_EMBEDDED_IO_HD_SOC_IN[0:143]),
.gfpga_pad_EMBEDDED_IO_HD_SOC_OUT(gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[0:143]),
.gfpga_pad_EMBEDDED_IO_HD_SOC_DIR(gfpga_pad_EMBEDDED_IO_HD_SOC_DIR[0:143]),
.ccff_head(ccff_head[0]),
.ccff_tail(ccff_tail[0]),
.sc_head(sc_head[0]),
.sc_tail(sc_tail[0])
);
// ----- Link BLIF Benchmark I/Os to FPGA I/Os -----
// ----- Blif Benchmark input a is mapped to FPGA IOPAD gfpga_pad_EMBEDDED_IO_SOC_IN[11] -----
assign gfpga_pad_EMBEDDED_IO_SOC_IN[11] = a[0];
// ----- Blif Benchmark input a is mapped to FPGA IOPAD gfpga_pad_EMBEDDED_IO_HD_SOC_IN[11] -----
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[11] = a[0];
// ----- Blif Benchmark input b is mapped to FPGA IOPAD gfpga_pad_EMBEDDED_IO_SOC_IN[12] -----
assign gfpga_pad_EMBEDDED_IO_SOC_IN[12] = b[0];
// ----- Blif Benchmark input b is mapped to FPGA IOPAD gfpga_pad_EMBEDDED_IO_HD_SOC_IN[12] -----
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[12] = b[0];
// ----- Blif Benchmark input clk is mapped to FPGA IOPAD gfpga_pad_EMBEDDED_IO_SOC_IN[42] -----
assign gfpga_pad_EMBEDDED_IO_SOC_IN[42] = clk[0];
// ----- Blif Benchmark input clk is mapped to FPGA IOPAD gfpga_pad_EMBEDDED_IO_HD_SOC_IN[42] -----
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[42] = clk[0];
// ----- Blif Benchmark output out_c is mapped to FPGA IOPAD gfpga_pad_EMBEDDED_IO_SOC_OUT[13] -----
assign out_c_fpga[0] = gfpga_pad_EMBEDDED_IO_SOC_OUT[13];
// ----- Blif Benchmark output out_c is mapped to FPGA IOPAD gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[13] -----
assign out_c_fpga[0] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[13];
// ----- Blif Benchmark output out_d is mapped to FPGA IOPAD gfpga_pad_EMBEDDED_IO_SOC_OUT[10] -----
assign out_d_fpga[0] = gfpga_pad_EMBEDDED_IO_SOC_OUT[10];
// ----- Blif Benchmark output out_d is mapped to FPGA IOPAD gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[10] -----
assign out_d_fpga[0] = gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[10];
// ----- Wire unused FPGA I/Os to constants -----
assign gfpga_pad_EMBEDDED_IO_SOC_IN[0] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[1] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[2] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[3] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[4] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[5] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[6] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[7] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[8] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[9] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[10] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[13] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[14] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[15] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[16] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[17] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[18] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[19] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[20] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[21] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[22] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[23] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[24] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[25] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[26] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[27] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[28] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[29] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[30] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[31] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[32] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[33] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[34] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[35] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[36] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[37] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[38] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[39] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[40] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[41] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[43] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[44] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[45] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[46] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[47] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[48] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[49] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[50] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[51] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[52] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[53] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[54] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[55] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[56] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[57] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[58] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[59] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[60] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[61] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[62] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[63] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[64] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[65] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[66] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[67] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[68] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[69] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[70] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[71] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[72] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[73] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[74] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[75] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[76] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[77] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[78] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[79] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[80] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[81] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[82] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[83] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[84] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[85] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[86] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[87] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[88] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[89] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[90] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[91] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[92] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[93] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[94] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[95] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[96] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[97] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[98] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[99] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[100] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[101] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[102] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[103] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[104] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[105] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[106] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[107] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[108] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[109] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[110] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[111] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[112] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[113] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[114] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[115] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[116] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[117] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[118] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[119] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[120] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[121] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[122] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[123] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[124] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[125] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[126] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[127] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[128] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[129] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[130] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[131] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[132] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[133] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[134] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[135] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[136] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[137] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[138] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[139] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[140] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[141] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[142] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[143] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[0] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[1] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[2] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[3] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[4] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[5] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[6] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[7] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[8] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[9] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[10] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[13] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[14] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[15] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[16] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[17] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[18] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[19] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[20] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[21] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[22] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[23] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[24] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[25] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[26] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[27] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[28] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[29] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[30] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[31] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[32] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[33] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[34] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[35] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[36] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[37] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[38] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[39] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[40] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[41] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[43] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[44] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[45] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[46] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[47] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[48] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[49] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[50] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[51] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[52] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[53] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[54] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[55] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[56] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[57] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[58] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[59] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[60] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[61] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[62] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[63] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[64] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[65] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[66] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[67] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[68] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[69] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[70] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[71] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[72] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[73] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[74] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[75] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[76] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[77] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[78] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[79] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[80] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[81] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[82] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[83] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[84] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[85] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[86] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[87] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[88] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[89] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[90] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[91] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[92] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[93] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[94] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[95] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[96] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[97] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[98] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[99] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[100] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[101] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[102] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[103] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[104] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[105] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[106] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[107] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[108] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[109] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[110] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[111] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[112] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[113] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[114] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[115] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[116] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[117] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[118] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[119] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[120] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[121] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[122] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[123] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[124] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[125] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[126] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[127] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[128] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[129] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[130] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[131] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[132] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[133] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[134] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[135] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[136] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[137] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[138] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[139] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[140] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[141] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[142] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_IN[143] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[0] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[1] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[2] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[3] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[4] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[5] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[6] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[7] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[8] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[9] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[11] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[12] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[14] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[15] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[16] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[17] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[18] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[19] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[20] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[21] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[22] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[23] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[24] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[25] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[26] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[27] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[28] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[29] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[30] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[31] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[32] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[33] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[34] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[35] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[36] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[37] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[38] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[39] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[40] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[41] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[42] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[43] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[44] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[45] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[46] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[47] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[48] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[49] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[50] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[51] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[52] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[53] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[54] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[55] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[56] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[57] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[58] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[59] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[60] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[61] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[62] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[63] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[64] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[65] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[66] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[67] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[68] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[69] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[70] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[71] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[72] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[73] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[74] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[75] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[76] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[77] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[78] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[79] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[80] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[81] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[82] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[83] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[84] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[85] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[86] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[87] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[88] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[89] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[90] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[91] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[92] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[93] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[94] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[95] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[96] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[97] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[98] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[99] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[100] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[101] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[102] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[103] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[104] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[105] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[106] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[107] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[108] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[109] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[110] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[111] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[112] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[113] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[114] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[115] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[116] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[117] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[118] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[119] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[120] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[121] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[122] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[123] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[124] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[125] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[126] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[127] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[128] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[129] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[130] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[131] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[132] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[133] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[134] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[135] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[136] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[137] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[138] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[139] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[140] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[141] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[142] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_OUT[143] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[0] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[1] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[2] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[3] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[4] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[5] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[6] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[7] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[8] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[9] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[11] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[12] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[14] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[15] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[16] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[17] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[18] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[19] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[20] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[21] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[22] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[23] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[24] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[25] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[26] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[27] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[28] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[29] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[30] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[31] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[32] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[33] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[34] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[35] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[36] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[37] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[38] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[39] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[40] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[41] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[42] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[43] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[44] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[45] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[46] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[47] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[48] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[49] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[50] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[51] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[52] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[53] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[54] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[55] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[56] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[57] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[58] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[59] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[60] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[61] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[62] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[63] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[64] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[65] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[66] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[67] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[68] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[69] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[70] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[71] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[72] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[73] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[74] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[75] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[76] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[77] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[78] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[79] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[80] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[81] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[82] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[83] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[84] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[85] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[86] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[87] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[88] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[89] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[90] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[91] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[92] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[93] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[94] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[95] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[96] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[97] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[98] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[99] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[100] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[101] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[102] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[103] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[104] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[105] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[106] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[107] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[108] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[109] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[110] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[111] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[112] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[113] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[114] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[115] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[116] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[117] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[118] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[119] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[120] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[121] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[122] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[123] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[124] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[125] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[126] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[127] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[128] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[129] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[130] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[131] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[132] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[133] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[134] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[135] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[136] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[137] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[138] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[139] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[140] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[141] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[142] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_HD_SOC_OUT[143] = 1'b0;
`ifdef AUTOCHECKED_SIMULATION
// ----- Reference Benchmark Instanication -------

View File

@ -14,51 +14,11 @@
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/HDL/common/skywater_function_verification.v"
// ------ Include Skywater cell netlists -----
// Cells already used pre-PnR
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or2/sky130_fd_sc_hd__or2_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfxtp/sky130_fd_sc_hd__sdfxtp_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfxtp/sky130_fd_sc_hd__dfxtp_1.v"
// Cells added due to their use in PnR
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or2/sky130_fd_sc_hd__or2_0.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/conb/sky130_fd_sc_hd__conb_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd1/sky130_fd_sc_hd__dlygate4sd1_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd2/sky130_fd_sc_hd__dlygate4sd2_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlymetal6s2s/sky130_fd_sc_hd__dlymetal6s2s_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlymetal6s6s/sky130_fd_sc_hd__dlymetal6s6s_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_6.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd3/sky130_fd_sc_hd__dlygate4sd3_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_6.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_12.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_16.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_16.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/bufinv/sky130_fd_sc_hd__bufinv_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinvlp/sky130_fd_sc_hd__clkinvlp_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinvlp/sky130_fd_sc_hd__clkinvlp_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkbuf/sky130_fd_sc_hd__clkbuf_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkdlybuf4s50/sky130_fd_sc_hd__clkdlybuf4s50_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_12.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_16.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/bufbuf/sky130_fd_sc_hd__bufbuf_16.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/TESTBENCH/common/post_pnr_fpga_cells.v"
// ------ Include fabric top-level netlists -----
//`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/FPGA1212_FC_HD_SKY_PNR/fpga_core/fpga_core_icv_in_design.pt.v"
`include "/research/ece/lnis/USERS/DARPA_ERI/Tapeout/Nov2020_Skywater/FPGA1212_FLAT_HD_SKY_PNR/fpga_core/fpga_core_icv_in_design.pt.v"
`include "/research/ece/lnis/USERS/DARPA_ERI/Tapeout/Nov2020_Skywater/FPGA1212_FLAT_HD_SKY_PNR/fpga_top/fpga_top_icv_in_design.pt.v"
`ifdef AUTOCHECKED_SIMULATION
`include "and2_latch_output_verilog.v"

View File

@ -0,0 +1,30 @@
//-------------------------------------------
// FPGA Synthesizable Verilog Netlist
// Description: Netlist Summary
// Author: Xifan TANG
// Organization: University of Utah
// Date: Sun Nov 22 13:37:06 2020
//-------------------------------------------
//----- Time scale -----
`timescale 1ns / 1ps
// ------ Include simulation defines -----
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/TESTBENCH/k4_N8_caravel_io_FPGA_12x12_fdhd_cc/prepnr/verilog_testbench/define_simulation.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/HDL/common/skywater_function_verification.v"
// ------ Include Skywater cell netlists -----
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/TESTBENCH/common/post_pnr_fpga_cells.v"
// ------ Include fabric top-level netlists -----
//`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/FPGA1212_FC_HD_SKY_PNR/fpga_core/fpga_core_icv_in_design.pt.v"
`include "/research/ece/lnis/USERS/DARPA_ERI/Tapeout/Nov2020_Skywater/FPGA1212_FLAT_HD_SKY_PNR/fpga_top/fpga_top_icv_in_design.pt.v"
`ifdef AUTOCHECKED_SIMULATION
`include "and2_or2_output_verilog.v"
`endif
`ifdef AUTOCHECKED_SIMULATION
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/TESTBENCH/k4_N8_caravel_io_FPGA_12x12_fdhd_cc/postpnr/verilog_testbench/and2_or2_post_pnr_autocheck_top_tb.v"
`endif

View File

@ -14,51 +14,11 @@
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/HDL/common/skywater_function_verification.v"
// ------ Include Skywater cell netlists -----
// Cells already used pre-PnR
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or2/sky130_fd_sc_hd__or2_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfxtp/sky130_fd_sc_hd__sdfxtp_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfxtp/sky130_fd_sc_hd__dfxtp_1.v"
// Cells added due to their use in PnR
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or2/sky130_fd_sc_hd__or2_0.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/conb/sky130_fd_sc_hd__conb_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd1/sky130_fd_sc_hd__dlygate4sd1_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd2/sky130_fd_sc_hd__dlygate4sd2_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlymetal6s2s/sky130_fd_sc_hd__dlymetal6s2s_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlymetal6s6s/sky130_fd_sc_hd__dlymetal6s6s_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_6.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd3/sky130_fd_sc_hd__dlygate4sd3_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_6.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_12.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_16.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_16.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/bufinv/sky130_fd_sc_hd__bufinv_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinvlp/sky130_fd_sc_hd__clkinvlp_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinvlp/sky130_fd_sc_hd__clkinvlp_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkbuf/sky130_fd_sc_hd__clkbuf_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkdlybuf4s50/sky130_fd_sc_hd__clkdlybuf4s50_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_12.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_16.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/bufbuf/sky130_fd_sc_hd__bufbuf_16.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/TESTBENCH/common/post_pnr_fpga_cells.v"
// ------ Include fabric top-level netlists -----
//`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/FPGA1212_FC_HD_SKY_PNR/fpga_core/fpga_core_icv_in_design.pt.v"
`include "/research/ece/lnis/USERS/DARPA_ERI/Tapeout/Nov2020_Skywater/FPGA1212_FLAT_HD_SKY_PNR/fpga_core/fpga_core_icv_in_design.pt.v"
`include "/research/ece/lnis/USERS/DARPA_ERI/Tapeout/Nov2020_Skywater/FPGA1212_FLAT_HD_SKY_PNR/fpga_top/fpga_top_icv_in_design.pt.v"
`ifdef AUTOCHECKED_SIMULATION
`include "and2_output_verilog.v"

View File

@ -0,0 +1,30 @@
//-------------------------------------------
// FPGA Synthesizable Verilog Netlist
// Description: Netlist Summary
// Author: Xifan TANG
// Organization: University of Utah
// Date: Fri Nov 20 15:48:46 2020
//-------------------------------------------
//----- Time scale -----
`timescale 1ns / 1ps
// ------ Include simulation defines -----
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/TESTBENCH/k4_N8_caravel_io_FPGA_12x12_fdhd_cc/prepnr/verilog_testbench/define_simulation.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/HDL/common/skywater_function_verification.v"
// ------ Include Skywater cell netlists -----
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/TESTBENCH/common/post_pnr_fpga_cells.v"
// ------ Include fabric top-level netlists -----
//`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/FPGA1212_FC_HD_SKY_PNR/fpga_core/fpga_core_icv_in_design.pt.v"
`include "/research/ece/lnis/USERS/DARPA_ERI/Tapeout/Nov2020_Skywater/FPGA1212_FLAT_HD_SKY_PNR/fpga_top/fpga_top_icv_in_design.pt.v"
`ifdef AUTOCHECKED_SIMULATION
`include "bin2bcd_output_verilog.v"
`endif
`ifdef AUTOCHECKED_SIMULATION
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/TESTBENCH/k4_N8_caravel_io_FPGA_12x12_fdhd_cc/postpnr/verilog_testbench/bin2bcd_post_pnr_autocheck_top_tb.v"
`endif

View File

@ -9,7 +9,7 @@
`timescale 1ns / 1ps
// Design parameter for FPGA I/O sizes
`define FPGA_IO_SIZE 108
`define FPGA_IO_SIZE 144
// Design parameter for FPGA bitstream sizes
`define FPGA_BITSTREAM_SIZE 65656
@ -20,50 +20,10 @@
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/HDL/common/skywater_function_verification.v"
// ------ Include Skywater cell netlists -----
// Cells already used pre-PnR
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or2/sky130_fd_sc_hd__or2_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfxtp/sky130_fd_sc_hd__sdfxtp_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfxtp/sky130_fd_sc_hd__dfxtp_1.v"
// Cells added due to their use in PnR
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or2/sky130_fd_sc_hd__or2_0.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/conb/sky130_fd_sc_hd__conb_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd1/sky130_fd_sc_hd__dlygate4sd1_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd2/sky130_fd_sc_hd__dlygate4sd2_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlymetal6s2s/sky130_fd_sc_hd__dlymetal6s2s_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlymetal6s6s/sky130_fd_sc_hd__dlymetal6s6s_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_6.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd3/sky130_fd_sc_hd__dlygate4sd3_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_6.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_12.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_16.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_16.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/bufinv/sky130_fd_sc_hd__bufinv_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinvlp/sky130_fd_sc_hd__clkinvlp_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinvlp/sky130_fd_sc_hd__clkinvlp_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkbuf/sky130_fd_sc_hd__clkbuf_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkdlybuf4s50/sky130_fd_sc_hd__clkdlybuf4s50_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_12.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_16.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/bufbuf/sky130_fd_sc_hd__bufbuf_16.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/TESTBENCH/common/post_pnr_fpga_cells.v"
// ------ Include fabric top-level netlists -----
//`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/FPGA1212_FC_HD_SKY_PNR/fpga_core/fpga_core_icv_in_design.pt.v"
`include "/research/ece/lnis/USERS/DARPA_ERI/Tapeout/Nov2020_Skywater/FPGA1212_FLAT_HD_SKY_PNR/fpga_core/fpga_core_icv_in_design.pt.v"
`include "/research/ece/lnis/USERS/DARPA_ERI/Tapeout/Nov2020_Skywater/FPGA1212_FLAT_HD_SKY_PNR/fpga_top/fpga_top_icv_in_design.pt.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/TESTBENCH/common/post_pnr_ccff_test.v"

View File

@ -0,0 +1,29 @@
//-------------------------------------------
// FPGA Synthesizable Verilog Netlist
// Description: Netlist Summary
// Author: Xifan TANG
// Organization: University of Utah
// Date: Fri Nov 20 15:48:45 2020
//-------------------------------------------
//----- Time scale -----
`timescale 1ns / 1ps
// ------ Include simulation defines -----
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/TESTBENCH/k4_N8_caravel_io_FPGA_12x12_fdhd_cc/prepnr/verilog_testbench/define_simulation.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/HDL/common/skywater_function_verification.v"
// ------ Include Skywater cell netlists -----
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/TESTBENCH/common/post_pnr_fpga_cells.v"
// ------ Include fabric top-level netlists -----
//`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/FPGA1212_FC_HD_SKY_PNR/fpga_core/fpga_core_icv_in_design.pt.v"
`include "/research/ece/lnis/USERS/DARPA_ERI/Tapeout/Nov2020_Skywater/FPGA1212_FLAT_HD_SKY_PNR/fpga_top/fpga_top_icv_in_design.pt.v"
`ifdef AUTOCHECKED_SIMULATION
`include "counter_output_verilog.v"
`endif
`ifdef AUTOCHECKED_SIMULATION
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/TESTBENCH/k4_N8_caravel_io_FPGA_12x12_fdhd_cc/postpnr/verilog_testbench/counter_post_pnr_autocheck_top_tb.v"
`endif

View File

@ -0,0 +1,30 @@
//-------------------------------------------
// FPGA Synthesizable Verilog Netlist
// Description: Netlist Summary
// Author: Xifan TANG
// Organization: University of Utah
// Date: Fri Nov 20 15:48:54 2020
//-------------------------------------------
//----- Time scale -----
`timescale 1ns / 1ps
// ------ Include simulation defines -----
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/TESTBENCH/k4_N8_caravel_io_FPGA_12x12_fdhd_cc/prepnr/verilog_testbench/define_simulation.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/HDL/common/skywater_function_verification.v"
// ------ Include Skywater cell netlists -----
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/TESTBENCH/common/post_pnr_fpga_cells.v"
// ------ Include fabric top-level netlists -----
//`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/FPGA1212_FC_HD_SKY_PNR/fpga_core/fpga_core_icv_in_design.pt.v"
`include "/research/ece/lnis/USERS/DARPA_ERI/Tapeout/Nov2020_Skywater/FPGA1212_FLAT_HD_SKY_PNR/fpga_top/fpga_top_icv_in_design.pt.v"
`ifdef AUTOCHECKED_SIMULATION
`include "routing_test_output_verilog.v"
`endif
`ifdef AUTOCHECKED_SIMULATION
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/TESTBENCH/k4_N8_caravel_io_FPGA_12x12_fdhd_cc/postpnr/verilog_testbench/routing_test_post_pnr_autocheck_top_tb.v"
`endif

View File

@ -9,7 +9,7 @@
`timescale 1ns / 1ps
// Design parameter for FPGA I/O sizes
`define FPGA_IO_SIZE 108
`define FPGA_IO_SIZE 144
// Design parameter for FPGA bitstream sizes
`define FPGA_SCANCHAIN_SIZE 2304
@ -20,50 +20,10 @@
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/HDL/common/skywater_function_verification.v"
// ------ Include Skywater cell netlists -----
// Cells already used pre-PnR
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or2/sky130_fd_sc_hd__or2_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfxtp/sky130_fd_sc_hd__sdfxtp_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfxtp/sky130_fd_sc_hd__dfxtp_1.v"
// Cells added due to their use in PnR
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or2/sky130_fd_sc_hd__or2_0.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/conb/sky130_fd_sc_hd__conb_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd1/sky130_fd_sc_hd__dlygate4sd1_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd2/sky130_fd_sc_hd__dlygate4sd2_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlymetal6s2s/sky130_fd_sc_hd__dlymetal6s2s_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlymetal6s6s/sky130_fd_sc_hd__dlymetal6s6s_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_6.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd3/sky130_fd_sc_hd__dlygate4sd3_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_6.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_12.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_16.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_16.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/bufinv/sky130_fd_sc_hd__bufinv_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinvlp/sky130_fd_sc_hd__clkinvlp_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinvlp/sky130_fd_sc_hd__clkinvlp_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkbuf/sky130_fd_sc_hd__clkbuf_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkdlybuf4s50/sky130_fd_sc_hd__clkdlybuf4s50_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_12.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_16.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/bufbuf/sky130_fd_sc_hd__bufbuf_16.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/TESTBENCH/common/post_pnr_fpga_cells.v"
// ------ Include fabric top-level netlists -----
//`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/FPGA1212_FC_HD_SKY_PNR/fpga_core/fpga_core_icv_in_design.pt.v"
`include "/research/ece/lnis/USERS/DARPA_ERI/Tapeout/Nov2020_Skywater/FPGA1212_FLAT_HD_SKY_PNR/fpga_core/fpga_core_icv_in_design.pt.v"
`include "/research/ece/lnis/USERS/DARPA_ERI/Tapeout/Nov2020_Skywater/FPGA1212_FLAT_HD_SKY_PNR/fpga_top/fpga_top_icv_in_design.pt.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/TESTBENCH/common/post_pnr_scff_test.v"

View File

@ -0,0 +1,30 @@
//-------------------------------------------
// FPGA Synthesizable Verilog Netlist
// Description: Netlist Summary
// Author: Xifan TANG
// Organization: University of Utah
// Date: Fri Nov 20 15:49:05 2020
//-------------------------------------------
//----- Time scale -----
`timescale 1ns / 1ps
// ------ Include simulation defines -----
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/TESTBENCH/k4_N8_caravel_io_FPGA_12x12_fdhd_cc/prepnr/verilog_testbench/define_simulation.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/HDL/common/skywater_function_verification.v"
// ------ Include Skywater cell netlists -----
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/TESTBENCH/common/post_pnr_fpga_cells.v"
// ------ Include fabric top-level netlists -----
//`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/FPGA1212_FC_HD_SKY_PNR/fpga_core/fpga_core_icv_in_design.pt.v"
`include "/research/ece/lnis/USERS/DARPA_ERI/Tapeout/Nov2020_Skywater/FPGA1212_FLAT_HD_SKY_PNR/fpga_top/fpga_top_icv_in_design.pt.v"
`ifdef AUTOCHECKED_SIMULATION
`include "top_module_output_verilog.v"
`endif
`ifdef AUTOCHECKED_SIMULATION
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/TESTBENCH/k4_N8_caravel_io_FPGA_12x12_fdhd_cc/postpnr/verilog_testbench/top_module_post_pnr_autocheck_top_tb.v"
`endif