Whitney Knitter
Published © GPL3+

Independent Custom RTL Designs on Kria KR260

This project walks through how to deploy RTL designs in the programmable logic running independent of the Linux userspace on the KR260.

IntermediateFull instructions provided1 hour2,324
Independent Custom RTL Designs on Kria KR260

Things used in this project

Hardware components

Kria™ KR260 Robotics Starter Kit
AMD Kria™ KR260 Robotics Starter Kit
×1

Software apps and online services

Vivado Design Suite
AMD Vivado Design Suite

Story

Read more

Code

kr260_top.v

Verilog
`timescale 1ns / 1ps

module kr260_top(
    output [0:0]fan_en_b,
    inout [7:0]pmod1_io,
    inout [7:0]pmod2_io,
    inout [7:0]pmod3_io,
    inout [7:0]pmod4_io,
    inout [27:0]rpi_gpio
    );
    
    wire pl_clk;
    wire pl_resetn;
    
    wire [0:0]pmod1_io_tri_i_0;
    wire [1:1]pmod1_io_tri_i_1;
    wire [2:2]pmod1_io_tri_i_2;
    wire [3:3]pmod1_io_tri_i_3;
    wire [4:4]pmod1_io_tri_i_4;
    wire [5:5]pmod1_io_tri_i_5;
    wire [6:6]pmod1_io_tri_i_6;
    wire [7:7]pmod1_io_tri_i_7;
    wire [0:0]pmod1_io_tri_io_0;
    wire [1:1]pmod1_io_tri_io_1;
    wire [2:2]pmod1_io_tri_io_2;
    wire [3:3]pmod1_io_tri_io_3;
    wire [4:4]pmod1_io_tri_io_4;
    wire [5:5]pmod1_io_tri_io_5;
    wire [6:6]pmod1_io_tri_io_6;
    wire [7:7]pmod1_io_tri_io_7;
    wire [0:0]pmod1_io_tri_o_0;
    wire [1:1]pmod1_io_tri_o_1;
    wire [2:2]pmod1_io_tri_o_2;
    wire [3:3]pmod1_io_tri_o_3;
    wire [4:4]pmod1_io_tri_o_4;
    wire [5:5]pmod1_io_tri_o_5;
    wire [6:6]pmod1_io_tri_o_6;
    wire [7:7]pmod1_io_tri_o_7;
    wire [0:0]pmod1_io_tri_t_0;
    wire [1:1]pmod1_io_tri_t_1;
    wire [2:2]pmod1_io_tri_t_2;
    wire [3:3]pmod1_io_tri_t_3;
    wire [4:4]pmod1_io_tri_t_4;
    wire [5:5]pmod1_io_tri_t_5;
    wire [6:6]pmod1_io_tri_t_6;
    wire [7:7]pmod1_io_tri_t_7;
    
//    IOBUF pmod1_io_tri_iobuf_0(
//        .I(pmod1_io_tri_o_0),
//        .IO(pmod1_io[0]),
//        .O(pmod1_io_tri_i_0),
//        .T(pmod1_io_tri_t_0));
//    IOBUF pmod1_io_tri_iobuf_1(
//        .I(pmod1_io_tri_o_1),
//        .IO(pmod1_io[1]),
//        .O(pmod1_io_tri_i_1),
//        .T(pmod1_io_tri_t_1));
//    IOBUF pmod1_io_tri_iobuf_2(
//        .I(pmod1_io_tri_o_2),
//        .IO(pmod1_io[2]),
//        .O(pmod1_io_tri_i_2),
//        .T(pmod1_io_tri_t_2));
//    IOBUF pmod1_io_tri_iobuf_3(
//        .I(pmod1_io_tri_o_3),
//        .IO(pmod1_io[3]),
//        .O(pmod1_io_tri_i_3),
//        .T(pmod1_io_tri_t_3));
//    IOBUF pmod1_io_tri_iobuf_4(
//        .I(pmod1_io_tri_o_4),
//        .IO(pmod1_io[4]),
//        .O(pmod1_io_tri_i_4),
//        .T(pmod1_io_tri_t_4));
//    IOBUF pmod1_io_tri_iobuf_5(
//        .I(pmod1_io_tri_o_5),
//        .IO(pmod1_io[5]),
//        .O(pmod1_io_tri_i_5),
//        .T(pmod1_io_tri_t_5));
//    IOBUF pmod1_io_tri_iobuf_6(
//        .I(pmod1_io_tri_o_6),
//        .IO(pmod1_io[6]),
//        .O(pmod1_io_tri_i_6),
//        .T(pmod1_io_tri_t_6));
//    IOBUF pmod1_io_tri_iobuf_7(
//        .I(pmod1_io_tri_o_7),
//        .IO(pmod1_io[7]),
//        .O(pmod1_io_tri_i_7),
//        .T(pmod1_io_tri_t_7));
    
    wire [0:0]pmod2_io_tri_i_0;
    wire [1:1]pmod2_io_tri_i_1;
    wire [2:2]pmod2_io_tri_i_2;
    wire [3:3]pmod2_io_tri_i_3;
    wire [4:4]pmod2_io_tri_i_4;
    wire [5:5]pmod2_io_tri_i_5;
    wire [6:6]pmod2_io_tri_i_6;
    wire [7:7]pmod2_io_tri_i_7;
    wire [0:0]pmod2_io_tri_io_0;
    wire [1:1]pmod2_io_tri_io_1;
    wire [2:2]pmod2_io_tri_io_2;
    wire [3:3]pmod2_io_tri_io_3;
    wire [4:4]pmod2_io_tri_io_4;
    wire [5:5]pmod2_io_tri_io_5;
    wire [6:6]pmod2_io_tri_io_6;
    wire [7:7]pmod2_io_tri_io_7;
    wire [0:0]pmod2_io_tri_o_0;
    wire [1:1]pmod2_io_tri_o_1;
    wire [2:2]pmod2_io_tri_o_2;
    wire [3:3]pmod2_io_tri_o_3;
    wire [4:4]pmod2_io_tri_o_4;
    wire [5:5]pmod2_io_tri_o_5;
    wire [6:6]pmod2_io_tri_o_6;
    wire [7:7]pmod2_io_tri_o_7;
    wire [0:0]pmod2_io_tri_t_0;
    wire [1:1]pmod2_io_tri_t_1;
    wire [2:2]pmod2_io_tri_t_2;
    wire [3:3]pmod2_io_tri_t_3;
    wire [4:4]pmod2_io_tri_t_4;
    wire [5:5]pmod2_io_tri_t_5;
    wire [6:6]pmod2_io_tri_t_6;
    wire [7:7]pmod2_io_tri_t_7;
    
//    IOBUF pmod2_io_tri_iobuf_0(
//        .I(pmod2_io_tri_o_0),
//        .IO(pmod2_io[0]),
//        .O(pmod2_io_tri_i_0),
//        .T(pmod2_io_tri_t_0));
//    IOBUF pmod2_io_tri_iobuf_1(
//        .I(pmod2_io_tri_o_1),
//        .IO(pmod2_io[1]),
//        .O(pmod2_io_tri_i_1),
//        .T(pmod2_io_tri_t_1));
//    IOBUF pmod2_io_tri_iobuf_2(
//        .I(pmod2_io_tri_o_2),
//        .IO(pmod2_io[2]),
//        .O(pmod2_io_tri_i_2),
//        .T(pmod2_io_tri_t_2));
//    IOBUF pmod2_io_tri_iobuf_3(
//        .I(pmod2_io_tri_o_3),
//        .IO(pmod2_io[3]),
//        .O(pmod2_io_tri_i_3),
//        .T(pmod2_io_tri_t_3));
//    IOBUF pmod2_io_tri_iobuf_4(
//        .I(pmod2_io_tri_o_4),
//        .IO(pmod2_io[4]),
//        .O(pmod2_io_tri_i_4),
//        .T(pmod2_io_tri_t_4));
    IOBUF pmod2_io_tri_iobuf_5(
        .I(pmod2_io_tri_o_5),
        .IO(pmod2_io[5]),
        .O(pmod2_io_tri_i_5),
        .T(pmod2_io_tri_t_5));
    IOBUF pmod2_io_tri_iobuf_6(
        .I(pmod2_io_tri_o_6),
        .IO(pmod2_io[6]),
        .O(pmod2_io_tri_i_6),
        .T(pmod2_io_tri_t_6));
    IOBUF pmod2_io_tri_iobuf_7(
        .I(pmod2_io_tri_o_7),
        .IO(pmod2_io[7]),
        .O(pmod2_io_tri_i_7),
        .T(pmod2_io_tri_t_7));
    
    wire [0:0]pmod3_io_tri_i_0;
    wire [1:1]pmod3_io_tri_i_1;
    wire [2:2]pmod3_io_tri_i_2;
    wire [3:3]pmod3_io_tri_i_3;
    wire [4:4]pmod3_io_tri_i_4;
    wire [5:5]pmod3_io_tri_i_5;
    wire [6:6]pmod3_io_tri_i_6;
    wire [7:7]pmod3_io_tri_i_7;
    wire [0:0]pmod3_io_tri_io_0;
    wire [1:1]pmod3_io_tri_io_1;
    wire [2:2]pmod3_io_tri_io_2;
    wire [3:3]pmod3_io_tri_io_3;
    wire [4:4]pmod3_io_tri_io_4;
    wire [5:5]pmod3_io_tri_io_5;
    wire [6:6]pmod3_io_tri_io_6;
    wire [7:7]pmod3_io_tri_io_7;
    wire [0:0]pmod3_io_tri_o_0;
    wire [1:1]pmod3_io_tri_o_1;
    wire [2:2]pmod3_io_tri_o_2;
    wire [3:3]pmod3_io_tri_o_3;
    wire [4:4]pmod3_io_tri_o_4;
    wire [5:5]pmod3_io_tri_o_5;
    wire [6:6]pmod3_io_tri_o_6;
    wire [7:7]pmod3_io_tri_o_7;
    wire [0:0]pmod3_io_tri_t_0;
    wire [1:1]pmod3_io_tri_t_1;
    wire [2:2]pmod3_io_tri_t_2;
    wire [3:3]pmod3_io_tri_t_3;
    wire [4:4]pmod3_io_tri_t_4;
    wire [5:5]pmod3_io_tri_t_5;
    wire [6:6]pmod3_io_tri_t_6;
    wire [7:7]pmod3_io_tri_t_7;
    
    IOBUF pmod3_io_tri_iobuf_0(
        .I(pmod3_io_tri_o_0),
        .IO(pmod3_io[0]),
        .O(pmod3_io_tri_i_0),
        .T(pmod3_io_tri_t_0));
    IOBUF pmod3_io_tri_iobuf_1(
        .I(pmod3_io_tri_o_1),
        .IO(pmod3_io[1]),
        .O(pmod3_io_tri_i_1),
        .T(pmod3_io_tri_t_1));
    IOBUF pmod3_io_tri_iobuf_2(
        .I(pmod3_io_tri_o_2),
        .IO(pmod3_io[2]),
        .O(pmod3_io_tri_i_2),
        .T(pmod3_io_tri_t_2));
    IOBUF pmod3_io_tri_iobuf_3(
        .I(pmod3_io_tri_o_3),
        .IO(pmod3_io[3]),
        .O(pmod3_io_tri_i_3),
        .T(pmod3_io_tri_t_3));
    IOBUF pmod3_io_tri_iobuf_4(
        .I(pmod3_io_tri_o_4),
        .IO(pmod3_io[4]),
        .O(pmod3_io_tri_i_4),
        .T(pmod3_io_tri_t_4));
    IOBUF pmod3_io_tri_iobuf_5(
        .I(pmod3_io_tri_o_5),
        .IO(pmod3_io[5]),
        .O(pmod3_io_tri_i_5),
        .T(pmod3_io_tri_t_5));
    IOBUF pmod3_io_tri_iobuf_6(
        .I(pmod3_io_tri_o_6),
        .IO(pmod3_io[6]),
        .O(pmod3_io_tri_i_6),
        .T(pmod3_io_tri_t_6));
    IOBUF pmod3_io_tri_iobuf_7(
        .I(pmod3_io_tri_o_7),
        .IO(pmod3_io[7]),
        .O(pmod3_io_tri_i_7),
        .T(pmod3_io_tri_t_7));
    
    wire [0:0]pmod4_io_tri_i_0;
    wire [1:1]pmod4_io_tri_i_1;
    wire [2:2]pmod4_io_tri_i_2;
    wire [3:3]pmod4_io_tri_i_3;
    wire [4:4]pmod4_io_tri_i_4;
    wire [5:5]pmod4_io_tri_i_5;
    wire [6:6]pmod4_io_tri_i_6;
    wire [7:7]pmod4_io_tri_i_7;
    wire [0:0]pmod4_io_tri_io_0;
    wire [1:1]pmod4_io_tri_io_1;
    wire [2:2]pmod4_io_tri_io_2;
    wire [3:3]pmod4_io_tri_io_3;
    wire [4:4]pmod4_io_tri_io_4;
    wire [5:5]pmod4_io_tri_io_5;
    wire [6:6]pmod4_io_tri_io_6;
    wire [7:7]pmod4_io_tri_io_7;
    wire [0:0]pmod4_io_tri_o_0;
    wire [1:1]pmod4_io_tri_o_1;
    wire [2:2]pmod4_io_tri_o_2;
    wire [3:3]pmod4_io_tri_o_3;
    wire [4:4]pmod4_io_tri_o_4;
    wire [5:5]pmod4_io_tri_o_5;
    wire [6:6]pmod4_io_tri_o_6;
    wire [7:7]pmod4_io_tri_o_7;
    wire [0:0]pmod4_io_tri_t_0;
    wire [1:1]pmod4_io_tri_t_1;
    wire [2:2]pmod4_io_tri_t_2;
    wire [3:3]pmod4_io_tri_t_3;
    wire [4:4]pmod4_io_tri_t_4;
    wire [5:5]pmod4_io_tri_t_5;
    wire [6:6]pmod4_io_tri_t_6;
    wire [7:7]pmod4_io_tri_t_7;  
    
    IOBUF pmod4_io_tri_iobuf_0(
        .I(pmod4_io_tri_o_0),
        .IO(pmod4_io[0]),
        .O(pmod4_io_tri_i_0),
        .T(pmod4_io_tri_t_0));
    IOBUF pmod4_io_tri_iobuf_1(
        .I(pmod4_io_tri_o_1),
        .IO(pmod4_io[1]),
        .O(pmod4_io_tri_i_1),
        .T(pmod4_io_tri_t_1));
    IOBUF pmod4_io_tri_iobuf_2(
        .I(pmod4_io_tri_o_2),
        .IO(pmod4_io[2]),
        .O(pmod4_io_tri_i_2),
        .T(pmod4_io_tri_t_2));
    IOBUF pmod4_io_tri_iobuf_3(
        .I(pmod4_io_tri_o_3),
        .IO(pmod4_io[3]),
        .O(pmod4_io_tri_i_3),
        .T(pmod4_io_tri_t_3));
    IOBUF pmod4_io_tri_iobuf_4(
        .I(pmod4_io_tri_o_4),
        .IO(pmod4_io[4]),
        .O(pmod4_io_tri_i_4),
        .T(pmod4_io_tri_t_4));
    IOBUF pmod4_io_tri_iobuf_5(
        .I(pmod4_io_tri_o_5),
        .IO(pmod4_io[5]),
        .O(pmod4_io_tri_i_5),
        .T(pmod4_io_tri_t_5));
    IOBUF pmod4_io_tri_iobuf_6(
        .I(pmod4_io_tri_o_6),
        .IO(pmod4_io[6]),
        .O(pmod4_io_tri_i_6),
        .T(pmod4_io_tri_t_6));
    IOBUF pmod4_io_tri_iobuf_7(
        .I(pmod4_io_tri_o_7),
        .IO(pmod4_io[7]),
        .O(pmod4_io_tri_i_7),
        .T(pmod4_io_tri_t_7));  
        
    wire [0:0]rpi_gpio_tri_i_0;
    wire [1:1]rpi_gpio_tri_i_1;
    wire [2:2]rpi_gpio_tri_i_2;
    wire [3:3]rpi_gpio_tri_i_3;
    wire [4:4]rpi_gpio_tri_i_4;
    wire [5:5]rpi_gpio_tri_i_5;
    wire [6:6]rpi_gpio_tri_i_6;
    wire [7:7]rpi_gpio_tri_i_7;
    wire [8:8]rpi_gpio_tri_i_8;
    wire [9:9]rpi_gpio_tri_i_9;
    wire [10:10]rpi_gpio_tri_i_10;
    wire [11:11]rpi_gpio_tri_i_11;
    wire [12:12]rpi_gpio_tri_i_12;
    wire [13:13]rpi_gpio_tri_i_13;
    wire [14:14]rpi_gpio_tri_i_14;
    wire [15:15]rpi_gpio_tri_i_15;
    wire [16:16]rpi_gpio_tri_i_16;
    wire [17:17]rpi_gpio_tri_i_17;
    wire [18:18]rpi_gpio_tri_i_18;
    wire [19:19]rpi_gpio_tri_i_19;
    wire [20:20]rpi_gpio_tri_i_20;
    wire [21:21]rpi_gpio_tri_i_21;
    wire [22:22]rpi_gpio_tri_i_22;
    wire [23:23]rpi_gpio_tri_i_23;
    wire [24:24]rpi_gpio_tri_i_24;
    wire [25:25]rpi_gpio_tri_i_25;
    wire [26:26]rpi_gpio_tri_i_26;
    wire [27:27]rpi_gpio_tri_i_27;
    wire [0:0]rpi_gpio_tri_io_0;
    wire [1:1]rpi_gpio_tri_io_1;
    wire [2:2]rpi_gpio_tri_io_2;
    wire [3:3]rpi_gpio_tri_io_3;
    wire [4:4]rpi_gpio_tri_io_4;
    wire [5:5]rpi_gpio_tri_io_5;
    wire [6:6]rpi_gpio_tri_io_6;
    wire [7:7]rpi_gpio_tri_io_7;
    wire [8:8]rpi_gpio_tri_io_8;
    wire [9:9]rpi_gpio_tri_io_9;
    wire [10:10]rpi_gpio_tri_io_10;
    wire [11:11]rpi_gpio_tri_io_11;
    wire [12:12]rpi_gpio_tri_io_12;
    wire [13:13]rpi_gpio_tri_io_13;
    wire [14:14]rpi_gpio_tri_io_14;
    wire [15:15]rpi_gpio_tri_io_15;
    wire [16:16]rpi_gpio_tri_io_16;
    wire [17:17]rpi_gpio_tri_io_17;
    wire [18:18]rpi_gpio_tri_io_18;
    wire [19:19]rpi_gpio_tri_io_19;
    wire [20:20]rpi_gpio_tri_io_20;
    wire [21:21]rpi_gpio_tri_io_21;
    wire [22:22]rpi_gpio_tri_io_22;
    wire [23:23]rpi_gpio_tri_io_23;
    wire [24:24]rpi_gpio_tri_io_24;
    wire [25:25]rpi_gpio_tri_io_25;
    wire [26:26]rpi_gpio_tri_io_26;
    wire [27:27]rpi_gpio_tri_io_27;
    wire [0:0]rpi_gpio_tri_o_0;
    wire [1:1]rpi_gpio_tri_o_1;
    wire [2:2]rpi_gpio_tri_o_2;
    wire [3:3]rpi_gpio_tri_o_3;
    wire [4:4]rpi_gpio_tri_o_4;
    wire [5:5]rpi_gpio_tri_o_5;
    wire [6:6]rpi_gpio_tri_o_6;
    wire [7:7]rpi_gpio_tri_o_7;
    wire [8:8]rpi_gpio_tri_o_8;
    wire [9:9]rpi_gpio_tri_o_9;
    wire [10:10]rpi_gpio_tri_o_10;
    wire [11:11]rpi_gpio_tri_o_11;
    wire [12:12]rpi_gpio_tri_o_12;
    wire [13:13]rpi_gpio_tri_o_13;
    wire [14:14]rpi_gpio_tri_o_14;
    wire [15:15]rpi_gpio_tri_o_15;
    wire [16:16]rpi_gpio_tri_o_16;
    wire [17:17]rpi_gpio_tri_o_17;
    wire [18:18]rpi_gpio_tri_o_18;
    wire [19:19]rpi_gpio_tri_o_19;
    wire [20:20]rpi_gpio_tri_o_20;
    wire [21:21]rpi_gpio_tri_o_21;
    wire [22:22]rpi_gpio_tri_o_22;
    wire [23:23]rpi_gpio_tri_o_23;
    wire [24:24]rpi_gpio_tri_o_24;
    wire [25:25]rpi_gpio_tri_o_25;
    wire [26:26]rpi_gpio_tri_o_26;
    wire [27:27]rpi_gpio_tri_o_27;
    
    IOBUF rpi_gpio_tri_iobuf_0(
        .I(rpi_gpio_tri_o_0),
        .IO(rpi_gpio[0]),
        .O(rpi_gpio_tri_i_0),
        .T(rpi_gpio_tri_t_0));
    IOBUF rpi_gpio_tri_iobuf_1(
        .I(rpi_gpio_tri_o_1),
        .IO(rpi_gpio[1]),
        .O(rpi_gpio_tri_i_1),
        .T(rpi_gpio_tri_t_1)); 
    IOBUF rpi_gpio_tri_iobuf_2(
        .I(rpi_gpio_tri_o_2),
        .IO(rpi_gpio[2]),
        .O(rpi_gpio_tri_i_2),
        .T(rpi_gpio_tri_t_2));
    IOBUF rpi_gpio_tri_iobuf_3(
        .I(rpi_gpio_tri_o_3),
        .IO(rpi_gpio[3]),
        .O(rpi_gpio_tri_i_3),
        .T(rpi_gpio_tri_t_3));
    IOBUF rpi_gpio_tri_iobuf_4(
        .I(rpi_gpio_tri_o_4),
        .IO(rpi_gpio[4]),
        .O(rpi_gpio_tri_i_4),
        .T(rpi_gpio_tri_t_4));
    IOBUF rpi_gpio_tri_iobuf_5(
        .I(rpi_gpio_tri_o_5),
        .IO(rpi_gpio[5]),
        .O(rpi_gpio_tri_i_5),
        .T(rpi_gpio_tri_t_5));
    IOBUF rpi_gpio_tri_iobuf_6(
        .I(rpi_gpio_tri_o_6),
        .IO(rpi_gpio[6]),
        .O(rpi_gpio_tri_i_6),
        .T(rpi_gpio_tri_t_6));
    IOBUF rpi_gpio_tri_iobuf_7(
        .I(rpi_gpio_tri_o_7),
        .IO(rpi_gpio[7]),
        .O(rpi_gpio_tri_i_7),
        .T(rpi_gpio_tri_t_7));
    IOBUF rpi_gpio_tri_iobuf_8(
        .I(rpi_gpio_tri_o_8),
        .IO(rpi_gpio[8]),
        .O(rpi_gpio_tri_i_8),
        .T(rpi_gpio_tri_t_8));
    IOBUF rpi_gpio_tri_iobuf_9(
        .I(rpi_gpio_tri_o_9),
        .IO(rpi_gpio[9]),
        .O(rpi_gpio_tri_i_9),
        .T(rpi_gpio_tri_t_9));
    IOBUF rpi_gpio_tri_iobuf_10(
        .I(rpi_gpio_tri_o_10),
        .IO(rpi_gpio[10]),
        .O(rpi_gpio_tri_i_10),
        .T(rpi_gpio_tri_t_10));
    IOBUF rpi_gpio_tri_iobuf_11(
        .I(rpi_gpio_tri_o_11),
        .IO(rpi_gpio[11]),
        .O(rpi_gpio_tri_i_11),
        .T(rpi_gpio_tri_t_11));
    IOBUF rpi_gpio_tri_iobuf_12(
        .I(rpi_gpio_tri_o_12),
        .IO(rpi_gpio[12]),
        .O(rpi_gpio_tri_i_12),
        .T(rpi_gpio_tri_t_12));
    IOBUF rpi_gpio_tri_iobuf_13(
        .I(rpi_gpio_tri_o_13),
        .IO(rpi_gpio[13]),
        .O(rpi_gpio_tri_i_13),
        .T(rpi_gpio_tri_t_13));
    IOBUF rpi_gpio_tri_iobuf_14(
        .I(rpi_gpio_tri_o_14),
        .IO(rpi_gpio[14]),
        .O(rpi_gpio_tri_i_14),
        .T(rpi_gpio_tri_t_14));
    IOBUF rpi_gpio_tri_iobuf_15(
        .I(rpi_gpio_tri_o_15),
        .IO(rpi_gpio[15]),
        .O(rpi_gpio_tri_i_15),
        .T(rpi_gpio_tri_t_15));
    IOBUF rpi_gpio_tri_iobuf_16(
        .I(rpi_gpio_tri_o_16),
        .IO(rpi_gpio[16]),
        .O(rpi_gpio_tri_i_16),
        .T(rpi_gpio_tri_t_16));
    IOBUF rpi_gpio_tri_iobuf_17(
        .I(rpi_gpio_tri_o_17),
        .IO(rpi_gpio[17]),
        .O(rpi_gpio_tri_i_17),
        .T(rpi_gpio_tri_t_17));
    IOBUF rpi_gpio_tri_iobuf_18(
        .I(rpi_gpio_tri_o_18),
        .IO(rpi_gpio[18]),
        .O(rpi_gpio_tri_i_18),
        .T(rpi_gpio_tri_t_18));
    IOBUF rpi_gpio_tri_iobuf_19(
        .I(rpi_gpio_tri_o_19),
        .IO(rpi_gpio[19]),
        .O(rpi_gpio_tri_i_19),
        .T(rpi_gpio_tri_t_19));  
    IOBUF rpi_gpio_tri_iobuf_20(
        .I(rpi_gpio_tri_o_20),
        .IO(rpi_gpio[20]),
        .O(rpi_gpio_tri_i_20),
        .T(rpi_gpio_tri_t_20));
    IOBUF rpi_gpio_tri_iobuf_21(
        .I(rpi_gpio_tri_o_21),
        .IO(rpi_gpio[21]),
        .O(rpi_gpio_tri_i_21),
        .T(rpi_gpio_tri_t_21));
    IOBUF rpi_gpio_tri_iobuf_22(
        .I(rpi_gpio_tri_o_22),
        .IO(rpi_gpio[22]),
        .O(rpi_gpio_tri_i_22),
        .T(rpi_gpio_tri_t_22));
    IOBUF rpi_gpio_tri_iobuf_23(
        .I(rpi_gpio_tri_o_23),
        .IO(rpi_gpio[23]),
        .O(rpi_gpio_tri_i_23),
        .T(rpi_gpio_tri_t_23));
    IOBUF rpi_gpio_tri_iobuf_24(
        .I(rpi_gpio_tri_o_24),
        .IO(rpi_gpio[24]),
        .O(rpi_gpio_tri_i_24),
        .T(rpi_gpio_tri_t_24));
    IOBUF rpi_gpio_tri_iobuf_25(
        .I(rpi_gpio_tri_o_25),
        .IO(rpi_gpio[25]),
        .O(rpi_gpio_tri_i_25),
        .T(rpi_gpio_tri_t_25));
    IOBUF rpi_gpio_tri_iobuf_26(
        .I(rpi_gpio_tri_o_26),
        .IO(rpi_gpio[26]),
        .O(rpi_gpio_tri_i_26),
        .T(rpi_gpio_tri_t_26));
    IOBUF rpi_gpio_tri_iobuf_27(
        .I(rpi_gpio_tri_o_27),
        .IO(rpi_gpio[27]),
        .O(rpi_gpio_tri_i_27),
        .T(rpi_gpio_tri_t_27));         
    
    kria_bd kria_bd_i(
        .fan_en_b(fan_en_b),
        .pl_clk(pl_clk),
        .pl_resetn(pl_resetn),
        .pmod1_io_tri_i({pmod1_io_tri_i_7,pmod1_io_tri_i_6,pmod1_io_tri_i_5,pmod1_io_tri_i_4,pmod1_io_tri_i_3,pmod1_io_tri_i_2,pmod1_io_tri_i_1,pmod1_io_tri_i_0}),
        .pmod1_io_tri_o({pmod1_io_tri_o_7,pmod1_io_tri_o_6,pmod1_io_tri_o_5,pmod1_io_tri_o_4,pmod1_io_tri_o_3,pmod1_io_tri_o_2,pmod1_io_tri_o_1,pmod1_io_tri_o_0}),
        .pmod1_io_tri_t({pmod1_io_tri_t_7,pmod1_io_tri_t_6,pmod1_io_tri_t_5,pmod1_io_tri_t_4,pmod1_io_tri_t_3,pmod1_io_tri_t_2,pmod1_io_tri_t_1,pmod1_io_tri_t_0}),
        .pmod2_io_tri_i({pmod2_io_tri_i_7,pmod2_io_tri_i_6,pmod2_io_tri_i_5,pmod2_io_tri_i_4,pmod2_io_tri_i_3,pmod2_io_tri_i_2,pmod2_io_tri_i_1,pmod2_io_tri_i_0}),
        .pmod2_io_tri_o({pmod2_io_tri_o_7,pmod2_io_tri_o_6,pmod2_io_tri_o_5,pmod2_io_tri_o_4,pmod2_io_tri_o_3,pmod2_io_tri_o_2,pmod2_io_tri_o_1,pmod2_io_tri_o_0}),
        .pmod2_io_tri_t({pmod2_io_tri_t_7,pmod2_io_tri_t_6,pmod2_io_tri_t_5,pmod2_io_tri_t_4,pmod2_io_tri_t_3,pmod2_io_tri_t_2,pmod2_io_tri_t_1,pmod2_io_tri_t_0}),
        .pmod3_io_tri_i({pmod3_io_tri_i_7,pmod3_io_tri_i_6,pmod3_io_tri_i_5,pmod3_io_tri_i_4,pmod3_io_tri_i_3,pmod3_io_tri_i_2,pmod3_io_tri_i_1,pmod3_io_tri_i_0}),
        .pmod3_io_tri_o({pmod3_io_tri_o_7,pmod3_io_tri_o_6,pmod3_io_tri_o_5,pmod3_io_tri_o_4,pmod3_io_tri_o_3,pmod3_io_tri_o_2,pmod3_io_tri_o_1,pmod3_io_tri_o_0}),
        .pmod3_io_tri_t({pmod3_io_tri_t_7,pmod3_io_tri_t_6,pmod3_io_tri_t_5,pmod3_io_tri_t_4,pmod3_io_tri_t_3,pmod3_io_tri_t_2,pmod3_io_tri_t_1,pmod3_io_tri_t_0}),
        .pmod4_io_tri_i({pmod4_io_tri_i_7,pmod4_io_tri_i_6,pmod4_io_tri_i_5,pmod4_io_tri_i_4,pmod4_io_tri_i_3,pmod4_io_tri_i_2,pmod4_io_tri_i_1,pmod4_io_tri_i_0}),
        .pmod4_io_tri_o({pmod4_io_tri_o_7,pmod4_io_tri_o_6,pmod4_io_tri_o_5,pmod4_io_tri_o_4,pmod4_io_tri_o_3,pmod4_io_tri_o_2,pmod4_io_tri_o_1,pmod4_io_tri_o_0}),
        .pmod4_io_tri_t({pmod4_io_tri_t_7,pmod4_io_tri_t_6,pmod4_io_tri_t_5,pmod4_io_tri_t_4,pmod4_io_tri_t_3,pmod4_io_tri_t_2,pmod4_io_tri_t_1,pmod4_io_tri_t_0}),
        .rpi_gpio_tri_i({rpi_gpio_tri_i_27,rpi_gpio_tri_i_26,rpi_gpio_tri_i_25,rpi_gpio_tri_i_24,rpi_gpio_tri_i_23,rpi_gpio_tri_i_22,rpi_gpio_tri_i_21,rpi_gpio_tri_i_20,rpi_gpio_tri_i_19,rpi_gpio_tri_i_18,rpi_gpio_tri_i_17,rpi_gpio_tri_i_16,rpi_gpio_tri_i_15,rpi_gpio_tri_i_14,rpi_gpio_tri_i_13,rpi_gpio_tri_i_12,rpi_gpio_tri_i_11,rpi_gpio_tri_i_10,rpi_gpio_tri_i_9,rpi_gpio_tri_i_8,rpi_gpio_tri_i_7,rpi_gpio_tri_i_6,rpi_gpio_tri_i_5,rpi_gpio_tri_i_4,rpi_gpio_tri_i_3,rpi_gpio_tri_i_2,rpi_gpio_tri_i_1,rpi_gpio_tri_i_0}),
        .rpi_gpio_tri_o({rpi_gpio_tri_o_27,rpi_gpio_tri_o_26,rpi_gpio_tri_o_25,rpi_gpio_tri_o_24,rpi_gpio_tri_o_23,rpi_gpio_tri_o_22,rpi_gpio_tri_o_21,rpi_gpio_tri_o_20,rpi_gpio_tri_o_19,rpi_gpio_tri_o_18,rpi_gpio_tri_o_17,rpi_gpio_tri_o_16,rpi_gpio_tri_o_15,rpi_gpio_tri_o_14,rpi_gpio_tri_o_13,rpi_gpio_tri_o_12,rpi_gpio_tri_o_11,rpi_gpio_tri_o_10,rpi_gpio_tri_o_9,rpi_gpio_tri_o_8,rpi_gpio_tri_o_7,rpi_gpio_tri_o_6,rpi_gpio_tri_o_5,rpi_gpio_tri_o_4,rpi_gpio_tri_o_3,rpi_gpio_tri_o_2,rpi_gpio_tri_o_1,rpi_gpio_tri_o_0}),
        .rpi_gpio_tri_t({rpi_gpio_tri_t_27,rpi_gpio_tri_t_26,rpi_gpio_tri_t_25,rpi_gpio_tri_t_24,rpi_gpio_tri_t_23,rpi_gpio_tri_t_22,rpi_gpio_tri_t_21,rpi_gpio_tri_t_20,rpi_gpio_tri_t_19,rpi_gpio_tri_t_18,rpi_gpio_tri_t_17,rpi_gpio_tri_t_16,rpi_gpio_tri_t_15,rpi_gpio_tri_t_14,rpi_gpio_tri_t_13,rpi_gpio_tri_t_12,rpi_gpio_tri_t_11,rpi_gpio_tri_t_10,rpi_gpio_tri_t_9,rpi_gpio_tri_t_8,rpi_gpio_tri_t_7,rpi_gpio_tri_t_6,rpi_gpio_tri_t_5,rpi_gpio_tri_t_4,rpi_gpio_tri_t_3,rpi_gpio_tri_t_2,rpi_gpio_tri_t_1,rpi_gpio_tri_t_0}));

    wire [7:0] anodeReg;
    wire [4:0] cathodeReg;
    
    assign pmod1_io[0] = anodeReg[4]; //d 
    assign pmod1_io[1] = anodeReg[0]; //dp 
    assign pmod1_io[2] = anodeReg[5]; //c 
    assign pmod1_io[3] = anodeReg[3]; //e 
    assign pmod1_io[4] = anodeReg[1]; //g 
    assign pmod1_io[5] = anodeReg[2]; //f 
    assign pmod1_io[6] = anodeReg[6]; //b 
    assign pmod1_io[7] = anodeReg[7]; //a 
    
    assign pmod2_io[0] = cathodeReg[0]; //C1
    assign pmod2_io[1] = cathodeReg[1]; //C2
    assign pmod2_io[2] = cathodeReg[2]; //C3
    assign pmod2_io[3] = cathodeReg[3]; //C4
    assign pmod2_io[4] = cathodeReg[4]; //C5
    
    qdsp_6061_ctlr(
        .clk(pl_clk),
        .reset(pl_resetn),
        .anodeReg(anodeReg[7:0]),
        .cathodeReg(cathodeReg[4:0]));

endmodule

qdsp_6061_ctlr.v

Verilog
`timescale 1ns / 1ps
// This module scrolls "hello KR260" across the 5 7-segment displays of the 
// HP QDSP-6061 bubble display from right to left.
//
// ---------- QDSP-6061 Pinout ----------
//
//                             a
//       d╶┐┌╴ e             ────
//      c╶┐││┌╴ f         f │    │
//     b╶┐││││┌╴ g          │  g │ b
//    a╶┐││││││┌╴ dp  ❯❯     ────
//   8'b00000000          e │    │
//                          │    │ c
//                           ────
//                             d   ■ dp
//
//    anodeReg[7]   -> a   (pin 14)
//    anodeReg[6]   -> b   (pin 12)
//    anodeReg[5]   -> c   (pin  3)
//    anodeReg[4]   -> d   (pin  6)
//    anodeReg[3]   -> e   (pin  2)
//    anodeReg[2]   -> f   (pin 10)
//    anodeReg[1]   -> g   (pin  8)
//    anodeReg[0]   -> dp  (pin  5)
//
//    N/C           -> N/C (pin 11)
//
//    cathodeReg[4] -> c5  (pin  7)
//    cathodeReg[3] -> c4  (pin  9)
//    cathodeReg[2] -> c3  (pin  4)
//    cathodeReg[1] -> c2  (pin 13)
//    cathodeReg[0] -> c1  (pin  1)
//
//        
//                       ┌╴fifth╶─────╴▮▯▯▯▯ -> c1  (pin  1)
//                       │┌╴fourth╶───╴▯▮▯▯▯ -> c2  (pin 13)
//                       ││┌╴third╶───╴▯▯▮▯▯ -> c3  (pin  4)
//                       │││┌╴second╶─╴▯▯▯▮▯ -> c4  (pin  9)
//                       ││││┌╴first╶─╴▯▯▯▯▮ -> c5  (pin  7)
// cathodeReg[4:0] <= 5'b00000 

module qdsp_6061_ctlr(
    input clk,
    input reset,
    output reg [7:0] anodeReg,
    output reg [4:0] cathodeReg
    );
    
    parameter zero  = 8'b11111100;
    parameter one   = 8'b01100000;
    parameter two   = 8'b11011010;
    parameter three = 8'b11110010;
    parameter four  = 8'b01100110;
    parameter five  = 8'b10110110;
    parameter six   = 8'b10111110;
    parameter seven = 8'b11100000;
    parameter eight = 8'b11111110;
    parameter nine  = 8'b11110110;     

    parameter h     = 8'b00101110;
    parameter e     = 8'b10011110;
    parameter l     = 8'b00011100;
    parameter o     = 8'b00111010;
    parameter K     = 8'b01101110;
    parameter R     = 8'b11101110;
    parameter space = 8'b00000000;
    
    parameter cathodeC1 = 5'b00001;
    parameter cathodeC2 = 5'b00010;
    parameter cathodeC3 = 5'b00100;
    parameter cathodeC4 = 5'b01000;
    parameter cathodeC5 = 5'b10000;

    parameter msec_1 = 16'd100000; // 10ns/clk -> 0.001s/0.000000010s = 100000
    
    reg loop_incr_flag;  
    reg [15:0] wait_cnt;
    reg [4:0]  loop_cnt;
    reg [7:0]  incr_flag_cntr;
    reg [7:0]  anodeReg1, anodeReg2, anodeReg3, anodeReg4, anodeReg5;
    
    always @ (posedge clk)
        begin
            if (reset == 1'b0)
                begin
                    wait_cnt <= 16'd0;	
                    loop_incr_flag <= 1'b0;		
                    cathodeReg <= cathodeC1;
                end
            else
                begin
                    if (wait_cnt < msec_1)
                        begin						
                            loop_incr_flag <= 1'b0;	
                            wait_cnt <= wait_cnt + 1;
                        end
                    else
                        begin					
                            wait_cnt <= 16'd0;
    
                            if (cathodeReg == cathodeC5)
                                begin
                                    loop_incr_flag <= 1'b1;
                                    cathodeReg <= cathodeC1;
                                end
                            else
                                begin
                                    cathodeReg <= cathodeReg << 1;
                                end
                        end
                end
        end 
        
    always @ (posedge clk)
        begin
            if (reset == 1'b0)
                begin
                    loop_cnt <= 5'd0;
                    incr_flag_cntr <= 8'd0;
                end
            else
                begin
                    if (loop_incr_flag == 1'b1)
                        begin
                            if (incr_flag_cntr == 8'd255)
                                begin
                                    if (loop_cnt == 5'd15)
                                        begin
                                            loop_cnt <= 5'd0;
                                        end
                                    else
                                        begin
                                            loop_cnt <= loop_cnt + 1;
                                        end
                                end
                            else
                                begin
                                    loop_cnt <= loop_cnt;
                                end
                                
                            incr_flag_cntr <= incr_flag_cntr + 1;
                        end
                    else
                        begin
                            loop_cnt <= loop_cnt;
                        end 
                end
        end
    
    always @ (posedge clk)
        begin
            case (cathodeReg)
                cathodeC1 : anodeReg[7:0] <= anodeReg1[7:0];
                cathodeC2 : anodeReg[7:0] <= anodeReg2[7:0];
                cathodeC3 : anodeReg[7:0] <= anodeReg3[7:0];
                cathodeC4 : anodeReg[7:0] <= anodeReg4[7:0];
                cathodeC5 : anodeReg[7:0] <= anodeReg5[7:0];
                default   : anodeReg[7:0] <= anodeReg1[7:0];
            endcase
        end
    
    always @ (posedge clk)
        begin
            case (loop_cnt)
                0 :
                    begin
                        anodeReg1[7:0] <= space;
                        anodeReg2[7:0] <= space;
                        anodeReg3[7:0] <= space;
                        anodeReg4[7:0] <= space;
                        anodeReg5[7:0] <= space;
                    end
                1 :
                    begin
                        anodeReg1[7:0] <= space;
                        anodeReg2[7:0] <= space;
                        anodeReg3[7:0] <= space;
                        anodeReg4[7:0] <= space;
                        anodeReg5[7:0] <= h;
                    end
                2 :
                    begin
                        anodeReg1[7:0] <= space;
                        anodeReg2[7:0] <= space;
                        anodeReg3[7:0] <= space;
                        anodeReg4[7:0] <= h;
                        anodeReg5[7:0] <= e;
                    end
                3 :
                    begin
                        anodeReg1[7:0] <= space;
                        anodeReg2[7:0] <= space;
                        anodeReg3[7:0] <= h;
                        anodeReg4[7:0] <= e;
                        anodeReg5[7:0] <= l;
                    end
                4 :
                    begin
                        anodeReg1[7:0] <= space;
                        anodeReg2[7:0] <= h;
                        anodeReg3[7:0] <= e;
                        anodeReg4[7:0] <= l;
                        anodeReg5[7:0] <= l;
                    end
                5 :
                    begin
                        anodeReg1[7:0] <= h;
                        anodeReg2[7:0] <= e;
                        anodeReg3[7:0] <= l;
                        anodeReg4[7:0] <= l;
                        anodeReg5[7:0] <= o;
                    end
                6 :
                    begin
                        anodeReg1[7:0] <= e;
                        anodeReg2[7:0] <= l;
                        anodeReg3[7:0] <= l;
                        anodeReg4[7:0] <= o;
                        anodeReg5[7:0] <= space;
                    end
                7 :
                    begin
                        anodeReg1[7:0] <= l;
                        anodeReg2[7:0] <= l;
                        anodeReg3[7:0] <= o;
                        anodeReg4[7:0] <= space;
                        anodeReg5[7:0] <= K;//k;
                    end
                8 :
                    begin
                        anodeReg1[7:0] <= l;
                        anodeReg2[7:0] <= o;
                        anodeReg3[7:0] <= space;
                        anodeReg4[7:0] <= K;
                        anodeReg5[7:0] <= R;
                    end
                9 :
                    begin
                        anodeReg1[7:0] <= o;
                        anodeReg2[7:0] <= space;
                        anodeReg3[7:0] <= K;
                        anodeReg4[7:0] <= R;
                        anodeReg5[7:0] <= two;
                    end
                10 :
                    begin
                        anodeReg1[7:0] <= space;
                        anodeReg2[7:0] <= K;
                        anodeReg3[7:0] <= R;
                        anodeReg4[7:0] <= two;
                        anodeReg5[7:0] <= six;
                    end
                11 :
                    begin
                        anodeReg1[7:0] <= K;
                        anodeReg2[7:0] <= R;
                        anodeReg3[7:0] <= two;
                        anodeReg4[7:0] <= six;
                        anodeReg5[7:0] <= zero;
                    end
                12 :
                    begin
                        anodeReg1[7:0] <= R;
                        anodeReg2[7:0] <= two;
                        anodeReg3[7:0] <= six;
                        anodeReg4[7:0] <= zero;
                        anodeReg5[7:0] <= space;
                    end
                13 :
                    begin
                        anodeReg1[7:0] <= two;
                        anodeReg2[7:0] <= six;
                        anodeReg3[7:0] <= zero;
                        anodeReg4[7:0] <= space;
                        anodeReg5[7:0] <= space;
                    end
                14 :
                    begin
                        anodeReg1[7:0] <= six;
                        anodeReg2[7:0] <= zero;
                        anodeReg3[7:0] <= space;
                        anodeReg4[7:0] <= space;
                        anodeReg5[7:0] <= space;
                    end
                    
                15 :
                    begin
                        anodeReg1[7:0] <= zero;
                        anodeReg2[7:0] <= space;
                        anodeReg3[7:0] <= space;
                        anodeReg4[7:0] <= space;
                        anodeReg5[7:0] <= space;
                    end

                default :
                    begin
                        anodeReg1[7:0] <= h;
                        anodeReg2[7:0] <= e;
                        anodeReg3[7:0] <= l;
                        anodeReg4[7:0] <= l;
                        anodeReg5[7:0] <= o;
                    end
            endcase
        end
    
endmodule

pmod_pinout.xdc

Plain text
######################## PMOD 1 Upper ########################
set_property PACKAGE_PIN H12 [get_ports {pmod1_io[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod1_io[0]}]

set_property PACKAGE_PIN E10 [get_ports {pmod1_io[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod1_io[1]}]

set_property PACKAGE_PIN D10 [get_ports {pmod1_io[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod1_io[2]}]

set_property PACKAGE_PIN C11 [get_ports {pmod1_io[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod1_io[3]}]

######################## PMOD 1 Lower ########################
set_property PACKAGE_PIN B10 [get_ports {pmod1_io[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod1_io[4]}]

set_property PACKAGE_PIN E12 [get_ports {pmod1_io[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod1_io[5]}]

set_property PACKAGE_PIN D11 [get_ports {pmod1_io[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod1_io[6]}]

set_property PACKAGE_PIN B11 [get_ports {pmod1_io[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod1_io[7]}]

######################## PMOD 2 Upper ########################
set_property PACKAGE_PIN J11 [get_ports {pmod2_io[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod2_io[0]}]

set_property PACKAGE_PIN J10 [get_ports {pmod2_io[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod2_io[1]}]

set_property PACKAGE_PIN K13 [get_ports {pmod2_io[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod2_io[2]}]

set_property PACKAGE_PIN K12 [get_ports {pmod2_io[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod2_io[3]}]

######################## PMOD 2 Lower ########################
set_property PACKAGE_PIN H11 [get_ports {pmod2_io[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod2_io[4]}]

set_property PACKAGE_PIN G10 [get_ports {pmod2_io[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod2_io[5]}]

set_property PACKAGE_PIN F12 [get_ports {pmod2_io[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod2_io[6]}]

set_property PACKAGE_PIN F11 [get_ports {pmod2_io[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod2_io[7]}]

######################## PMOD 3 Upper ########################
set_property PACKAGE_PIN AE12 [get_ports {pmod3_io[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod3_io[0]}]

set_property PACKAGE_PIN AF12 [get_ports {pmod3_io[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod3_io[1]}]

set_property PACKAGE_PIN AG10 [get_ports {pmod3_io[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod3_io[2]}]

set_property PACKAGE_PIN AH10 [get_ports {pmod3_io[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod3_io[3]}]

######################## PMOD 3 Lower ########################
set_property PACKAGE_PIN AF11 [get_ports {pmod3_io[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod3_io[4]}]

set_property PACKAGE_PIN AG11 [get_ports {pmod3_io[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod3_io[5]}]

set_property PACKAGE_PIN AH12 [get_ports {pmod3_io[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod3_io[6]}]

set_property PACKAGE_PIN AH11 [get_ports {pmod3_io[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod3_io[7]}]

######################## PMOD 4 Upper ########################
set_property PACKAGE_PIN AC12 [get_ports {pmod4_io[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod4_io[0]}]

set_property PACKAGE_PIN AD12 [get_ports {pmod4_io[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod4_io[1]}]

set_property PACKAGE_PIN AE10 [get_ports {pmod4_io[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod4_io[2]}]

set_property PACKAGE_PIN AF10 [get_ports {pmod4_io[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod4_io[3]}]

######################## PMOD 4 Lower ########################
set_property PACKAGE_PIN AD11 [get_ports {pmod4_io[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod4_io[4]}]

set_property PACKAGE_PIN AD10 [get_ports {pmod4_io[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod4_io[5]}]

set_property PACKAGE_PIN AA11 [get_ports {pmod4_io[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod4_io[6]}]

set_property PACKAGE_PIN AA10 [get_ports {pmod4_io[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pmod4_io[7]}]

Credits

Whitney Knitter

Whitney Knitter

169 projects • 1699 followers
All thoughts/opinions are my own and do not reflect those of any company/entity I currently/previously associate with.

Comments