diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ca0aee0f05747976d04ae9e0359f0bef8383ade3..0506c6324704eb1976c70132c401c3d120cabf55 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,6 @@ stages: # List of stages for jobs, and their order of execution - build + - deploy build-job: # This job runs in the build stage, which runs first. stage: build @@ -38,3 +39,53 @@ build-job: # This job runs in the build stage, which runs first. - gateware-builds-tester/artifacts/ reports: junit: gateware-builds-tester/artifacts/tests_report.xml + +pages: + image: robertcnelson/beagle-devscripts-ubuntu-23.04-riscv64:latest + # https://git.beagleboard.org/beagleboard/ci-docker-images + stage: deploy + tags: + - docker-riscv64-ci + variables: + BUILD_OPTIONS_DIRECTORY: "custom-fpga-design" + BRANCH_UNDER_TEST: "develop" + rules: + - if: $CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop") + variables: + BUILD_OPTIONS_DIRECTORY: "build-options" + REPO_UNDER_TEST: $CI_MERGE_REQUEST_SOURCE_PROJECT_URL + BRANCH_UNDER_TEST: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME + DEBIAN_CHANGELOG_PKG: "bbb.io-gateware" + DEBIAN_SRC: "debian" + - if: $CI_PIPELINE_SOURCE == "push" + variables: + BUILD_OPTIONS_DIRECTORY: "custom-fpga-design" + REPO_UNDER_TEST: $CI_PROJECT_URL + BRANCH_UNDER_TEST: $CI_COMMIT_BRANCH + DEBIAN_CHANGELOG_PKG: "bbb.io-gateware-my-custom-fpga-design" + DEBIAN_SRC: "debian-custom" + script: + - rm -rf ./src/ || true + - mkdir -p ./src/debian/ || true + - rsync -av ./$DEBIAN_SRC/* ./src/debian/ + - mkdir -p ./src/gateware-builds-tester || true + - rsync -av ./gateware-builds-tester/* ./src/gateware-builds-tester/ + - echo "$DEBIAN_CHANGELOG_PKG (1.$(LANG=C date +%Y%m%d).0-0~lunar) lunar; urgency=low" > ./src/debian/changelog + - echo "" >> ./src/debian/changelog + - echo " * ci build of $CI_PROJECT_URL" >> ./src/debian/changelog + - echo "" >> ./src/debian/changelog + - echo " -- $GITLAB_USER_NAME <$GITLAB_USER_EMAIL> $(LANG=C date -R)" >> ./src/debian/changelog + - echo "" >> ./src/debian/changelog + - cat ./src/debian/changelog + - cd ./src/ ; debuild -b -us -uc ; cd ../ + - mkdir -p ./public/dists/stable/main/binary-riscv64/ + - mkdir -p ./public/pool + - cp -v *.deb ./public/pool/ || true + - cp -v *.build ./public/ || true + - cp -v *.buildinfo ./public/ || true + - cd ./public ; dpkg-scanpackages ./pool/ | gzip > ./dists/stable/main/binary-riscv64/Packages.gz || true ; cd ../ + - apindex public + artifacts: + when: on_success + paths: + - public diff --git a/build-bitstream.py b/build-bitstream.py index caed8f98e1fb43f23a33a4cd9e640ba975ffeb3b..be20d126a745512c2808c26895ffccbe3c4fd96d 100644 --- a/build-bitstream.py +++ b/build-bitstream.py @@ -42,6 +42,7 @@ import requests import yaml import sys import subprocess +import datetime from generate_gateware_overlays import generate_gateware_overlays @@ -93,7 +94,7 @@ def parse_arguments(): # Checks to see if all of the required tools are installed and present in path, if a needed tool isn't available the script will exit -def check_tool_status_linux(): +def check_tool_status(): if shutil.which("libero") is None: print("Error: libero not found in path") exit() @@ -116,11 +117,16 @@ def check_tool_status_linux(): path = os.environ["PATH"] - if "/riscv-unknown-elf-gcc/bin" not in path: + if "riscv-unknown-elf-gcc" not in path: print( "The path to the RISC-V toolchain needs to be set in PATH to run this script") exit() + if platform.system() == "Linux" or platform.system() == "Linux2": + if shutil.which("dtc") is None: + print("Error: dtc (device-tree-compiler) not found in path") + exit() + # Creates required folders and removes artifacts before beginning def init_workspace(): @@ -274,30 +280,40 @@ def get_libero_script_args(source_list): return libero_script_args +# +# Retrieve/generate the gateware's design version. This version number is stored in the PolarFire SoC device and used +# as part of programming the PolarFire SoC FPGA using IAP (gateware programming from Linux). +# Care must be taken to ensure this version number is different between programming attempts. Otherwise, the PolarFire +# SoC System Controller will not attempt to program the FPGA with the new gateware if it finds the design versions are +# identical. +# The approach to managing design version numbers is to use a unique design version number for release gateware. This +# unique design version number is specified as part of the yaml build option file. The version number is dd.vv.r where +# dd identifies the design, vv is an incremental features identifier and r is a revision number. +# For development, the design version number is generated based on the gateware generation date/time. This generated +# version number loops back every 45 days given the design version number stored in PolarFire SoC is 16 bit long. +# def get_design_version(source_list): - if "custom-fpga-design" in source_list: - # - # Ensure every CI gateware build uses a unique version number for gateware programming to - # be successful (IAP only re-programs the FPGA if the Libero design version is different - # from the one already programmed in the FPGA). - # This is required for forked repos. - # - git_hash = subprocess.check_output(['git', 'rev-parse', '--short', 'HEAD']) - git_hash_hex = git_hash.decode('ascii').strip("'") - git_hash_dec = int(git_hash_hex, 16) % 65535 - design_version = str(git_hash_dec) - else: - with open(source_list) as f: # open the yaml file passed as an arg - data = yaml.load(f, Loader=yaml.FullLoader) - unique_design_version = data.get("gateware").get("unique-design-version") - f.close() - if unique_design_version is None: - unique_design_version = "65.53.5" - - udv_sl = unique_design_version.split(".") - design_version = (int(udv_sl[0]) * 1000) + (int(udv_sl[1]) * 10) + int(udv_sl[2]) + with open(source_list) as f: # open the yaml file passed as an arg + data = yaml.load(f, Loader=yaml.FullLoader) + unique_design_version = data.get("gateware").get("unique-design-version") + f.close() - print("design_version: ", design_version) + if unique_design_version is None: + now = datetime.datetime.now() + day_of_year = now.timetuple().tm_yday + design_version = ((day_of_year %45) * 1440) + (now.hour * 60) + now.minute + else: + try: + udv_sl = unique_design_version.split(".") + design_version = (int(udv_sl[0]) * 1000) + (int(udv_sl[1]) * 10) + int(udv_sl[2]) + except (ValueError, AttributeError): + print("Error: Invalid value for unique-design-version in ", source_list ) + print("unique-design-version must be in the form dd.vv.r") + exit() + + # FPGA design version number stored in Polarfire SoC devices is 16 bits long. + design_version = design_version % 65536 + print("Design version: ", design_version) return str(design_version) @@ -337,14 +353,14 @@ def generate_libero_project(libero, yaml_input_file): # Execute the Libero TCL script used to create the Libero design initial_directory = os.getcwd() os.chdir("./sources/FPGA-design") - project_location = os.path.join(initial_directory, "work/libero") - script = os.path.join(initial_directory , "sources/FPGA-design/BUILD_BVF_GATEWARE.tcl") + project_location = os.path.join("..", "..", "work", "libero") + script = os.path.join("..", "..", "sources", "FPGA-design", "BUILD_BVF_GATEWARE.tcl") script_args = get_libero_script_args(yaml_input_file) design_version = get_design_version(yaml_input_file) - hss_image_location = os.path.join(initial_directory, "work/HSS/hss-envm-wrapper-bm1-p0.hex") - prog_export_path = initial_directory + hss_image_location = os.path.join("..", "..", "work", "HSS", "hss-envm-wrapper-bm1-p0.hex") + prog_export_path = os.path.join("..", "..") top_level_name = get_top_level_name() print("top level name: ", top_level_name) @@ -362,7 +378,7 @@ def main(): parse_arguments() # This function will check if all of the required tools are present and quit if they aren't - check_tool_status_linux() + check_tool_status() sources = {} @@ -374,7 +390,9 @@ def main(): build_options_list = get_libero_script_args(yaml_input_file) generate_gateware_overlays(os.path.join(os.getcwd(), "bitstream", "LinuxProgramming"), build_options_list) - make_mss_config(mss_configurator, "./sources/MSS_Configuration/MSS_Configuration.cfg", os.path.join(os.getcwd(), "work/MSS")) + mss_config_file_path = os.path.join(".", "sources", "MSS_Configuration", "MSS_Configuration.cfg") + work_mss_dir = os.path.join("work", "MSS") + make_mss_config(mss_configurator, mss_config_file_path, os.path.join(os.getcwd(), work_mss_dir)) make_hss(sources["HSS"], yaml_input_file) diff --git a/custom-fpga-design/my_custom_fpga_design.yaml b/custom-fpga-design/my_custom_fpga_design.yaml index 4d8eaee4792735a701b3662663b62678508c0e17..cde4a26a4ed761cd2625e82c1f64205be16fac6a 100644 --- a/custom-fpga-design/my_custom_fpga_design.yaml +++ b/custom-fpga-design/my_custom_fpga_design.yaml @@ -7,5 +7,4 @@ HSS: gateware: type: sources build-args: "M2_OPTION:NONE CAPE_OPTION:VERILOG_TUTORIAL" - unique-design-version: 9.0.2 diff --git a/debian-custom/bbb.io-gateware-my-custom-fpga-design.install b/debian-custom/bbb.io-gateware-my-custom-fpga-design.install new file mode 100644 index 0000000000000000000000000000000000000000..443448bcb27c672d62d556b4de8dced82056e00b --- /dev/null +++ b/debian-custom/bbb.io-gateware-my-custom-fpga-design.install @@ -0,0 +1,3 @@ +gateware-builds-tester/artifacts/bitstreams/my_custom_fpga_design/DirectC/* /usr/share/beagleboard/gateware/my_custom_fpga_design/DirectC +gateware-builds-tester/artifacts/bitstreams/my_custom_fpga_design/FlashProExpress/* /usr/share/beagleboard/gateware/my_custom_fpga_design/FlashProExpress +gateware-builds-tester/artifacts/bitstreams/my_custom_fpga_design/LinuxProgramming/* /usr/share/beagleboard/gateware/my_custom_fpga_design/LinuxProgramming \ No newline at end of file diff --git a/debian-custom/changelog b/debian-custom/changelog new file mode 100644 index 0000000000000000000000000000000000000000..4b97b11a65c5e21629173ceb4a3eabc8c8bae7cf --- /dev/null +++ b/debian-custom/changelog @@ -0,0 +1,5 @@ +bbb.io-gateware-my-custom-fpga-design (1.20231226.0-0~lunar) lunar; urgency=low + + * ci build of https://git.beagleboard.org/beaglev-fire/gateware + + -- Robert Nelson <robertcnelson@beagleboard.org> Tue, 26 Dec 2023 17:41:26 +0000 diff --git a/debian-custom/compat b/debian-custom/compat new file mode 100644 index 0000000000000000000000000000000000000000..f599e28b8ab0d8c9c57a486c89c4a5132dcbd3b2 --- /dev/null +++ b/debian-custom/compat @@ -0,0 +1 @@ +10 diff --git a/debian-custom/control b/debian-custom/control new file mode 100644 index 0000000000000000000000000000000000000000..92153949e4b25ebd1415f16d00b5a8aa983e13cc --- /dev/null +++ b/debian-custom/control @@ -0,0 +1,17 @@ +Source: bbb.io-gateware-my-custom-fpga-design +Section: misc +Priority: extra +Maintainer: Robert Nelson <robertcnelson@gmail.com> +Build-Depends: + debhelper (>= 10) +Standards-Version: 4.5.1 + +Package: bbb.io-gateware-my-custom-fpga-design +Architecture: all +Depends: + ${shlibs:Depends} + , ${misc:Depends} + , bbb.io-gateware + , mtd-utils +Description: bbb.io-gateware-my-custom-fpga-design + bbb.io-gateware-my-custom-fpga-design diff --git a/debian-custom/rules b/debian-custom/rules new file mode 100755 index 0000000000000000000000000000000000000000..9752fa6124aa6ff51036c011da99d999ec720ad5 --- /dev/null +++ b/debian-custom/rules @@ -0,0 +1,10 @@ +#!/usr/bin/make -f +# See debhelper(7) (uncomment to enable) +# output every command that modifies files on the build system. +DH_VERBOSE = 1 + +%: + dh $@ + +override_dh_builddeb: + dh_builddeb -- -Zxz diff --git a/debian/bbb.io-gateware.install b/debian/bbb.io-gateware.install new file mode 100644 index 0000000000000000000000000000000000000000..659223595bc35e1f2448394e0eff508d59749334 --- /dev/null +++ b/debian/bbb.io-gateware.install @@ -0,0 +1,15 @@ +debian/change-gateware.sh /usr/share/beagleboard/gateware +debian/update-gateware.sh /usr/share/microchip/gateware +debian/mcp356x_read.py /usr/share/microchip/gateware +gateware-builds-tester/artifacts/bitstreams/board-tests/DirectC/* /usr/share/beagleboard/gateware/board-tests/DirectC +gateware-builds-tester/artifacts/bitstreams/board-tests/FlashProExpress/* /usr/share/beagleboard/gateware/board-tests/FlashProExpress +gateware-builds-tester/artifacts/bitstreams/board-tests/LinuxProgramming/* /usr/share/beagleboard/gateware/board-tests/LinuxProgramming +gateware-builds-tester/artifacts/bitstreams/default/DirectC/* /usr/share/beagleboard/gateware/default/DirectC +gateware-builds-tester/artifacts/bitstreams/default/FlashProExpress/* /usr/share/beagleboard/gateware/default/FlashProExpress +gateware-builds-tester/artifacts/bitstreams/default/LinuxProgramming/* /usr/share/beagleboard/gateware/default/LinuxProgramming +gateware-builds-tester/artifacts/bitstreams/minimal/DirectC/* /usr/share/beagleboard/gateware/minimal/DirectC +gateware-builds-tester/artifacts/bitstreams/minimal/FlashProExpress/* /usr/share/beagleboard/gateware/minimal/FlashProExpress +gateware-builds-tester/artifacts/bitstreams/minimal/LinuxProgramming/* /usr/share/beagleboard/gateware/minimal/LinuxProgramming +gateware-builds-tester/artifacts/bitstreams/robotics/DirectC/* /usr/share/beagleboard/gateware/robotics/DirectC +gateware-builds-tester/artifacts/bitstreams/robotics/FlashProExpress/* /usr/share/beagleboard/gateware/robotics/FlashProExpress +gateware-builds-tester/artifacts/bitstreams/robotics/LinuxProgramming/* /usr/share/beagleboard/gateware/robotics/LinuxProgramming diff --git a/debian/change-gateware.sh b/debian/change-gateware.sh new file mode 100755 index 0000000000000000000000000000000000000000..fab1167293f40296258241d6f1b6e324cc717bb2 --- /dev/null +++ b/debian/change-gateware.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +if ! id | grep -q root; then + echo "must be run as root" + exit +fi + +if [ -d $1 ] +then + echo "Changing gateware." + if [ -e $1/LinuxProgramming/mpfs_bitstream.spi ] + then + if [ -e $1/LinuxProgramming/mpfs_dtbo.spi ] + then + cp -v $1/LinuxProgramming/mpfs_dtbo.spi /lib/firmware/mpfs_dtbo.spi + cp -v $1/LinuxProgramming/mpfs_bitstream.spi /lib/firmware/mpfs_bitstream.spi + sync + . /usr/share/microchip/gateware/update-gateware.sh + else + echo "No device tree overlay file found." + fi + else + echo "No gateware file found." + fi +else + echo "No directory found for this requested gateware." +fi diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000000000000000000000000000000000000..5e6715d53b694d953e09357ebb477f90e1570421 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,5 @@ +bbb.io-gateware (1.20231226.0-0~lunar) lunar; urgency=low + + * ci build of https://git.beagleboard.org/beaglev-fire/gateware + + -- Robert Nelson <robertcnelson@beagleboard.org> Tue, 26 Dec 2023 17:41:26 +0000 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000000000000000000000000000000000000..f599e28b8ab0d8c9c57a486c89c4a5132dcbd3b2 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +10 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000000000000000000000000000000000000..281f9a2104ebfa992f362c525bab3b7117543bc4 --- /dev/null +++ b/debian/control @@ -0,0 +1,16 @@ +Source: bbb.io-gateware +Section: misc +Priority: extra +Maintainer: Robert Nelson <robertcnelson@gmail.com> +Build-Depends: + debhelper (>= 10) +Standards-Version: 4.5.1 + +Package: bbb.io-gateware +Architecture: all +Depends: + ${shlibs:Depends} + , ${misc:Depends} + , mtd-utils +Description: bbb.io-gateware + bbb.io-gateware diff --git a/debian/mcp356x_read.py b/debian/mcp356x_read.py new file mode 100644 index 0000000000000000000000000000000000000000..d73787d481ecbbb7108558f6942ef2d0bb5cdf73 --- /dev/null +++ b/debian/mcp356x_read.py @@ -0,0 +1,322 @@ +#!/bin/env python3 + +# +# This script is intended to be run with python 3 +# + +import time +import os +import re +import subprocess +import functools + +voltage_raws = [] + +voltage_differential_raws = [] + +voltage_scales = [ "in_voltage-voltage_scale" ] + +hw_gain = [ "hardwaregain" ] + +hw_gain_available = [ hw_gain[0] + "_available" ] + +calib_bias = [ "calibbias" ] + +calib_bias_available = [ calib_bias[0] + "_available" ] + +calib_scale = [ "calibscale" ] + +calib_scale_available = [ calib_scale[0] + "_available" ] + +oversampling_ratio = [ "oversampling_ratio" ] + +oversampling_ratio_available = [ oversampling_ratio[0] + "_available" ] +temperature_raws = [ "in_temp_raw" ] + +temperature_scale = [ "in_temp_scale" ] + +DIR_PATH="/sys/bus/iio/devices/" +device = [] +mcp_devices = [] + +device2channels ={} + + +new_line = '\n' + +def mult(file1_name, file2_name): + global ABS_PATH + file1 = open(ABS_PATH+file1_name,'r') + val1 = int(file1.read()) + file1.close() + file2 = open(ABS_PATH+file2_name,'r') + val2 = float(file2.read()) + file2.close() + return (val1 * val2) + + +def print_attribute(file_name): + global ABS_PATH + attr_file = open(ABS_PATH + file_name,'r') + string = attr_file.read() + attr_file.close() + # clean the string for printing + string = string.replace("0000000", "") + return string + +def calculate_temperature(file1_name): + global ABS_PATH + + name_file = open(ABS_PATH + "name",'r') + device_name_string = name_file.read() + name_file.close() + + temperature = open(ABS_PATH+file1_name,'r') + temperature_val = int(temperature.read()) + temperature.close() + + if ( 'mcp3564\n' == device_name_string ): + return temperature_val * 4.0096 * 0.0001 * 2.4 - 269.13 + else: + return 0 + +def write_attribute(file_name, value): + global ABS_PATH + attr_file = open(ABS_PATH + file_name,'w') + attr_file.write(value) + attr_file.close() + return 0 + +def get_name(file_name): + global ABS_PATH + attr_file = open(file_name,'r') + string = attr_file.read() + attr_file.close() + return string + + + + +if not os.path.isdir(DIR_PATH): + print('IIO is not enabled') + exit() + +proc = subprocess.Popen("ls -1 " + DIR_PATH + "| grep device", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) +stdout, stderr = proc.communicate() + +lines = stdout.decode('utf-8').split('\n') + +print('Search for devices:') +for line in lines: + path=DIR_PATH + line + if os.path.exists(path): + if os.path.exists(path + "/name"): + device_name= get_name(path + "/name") + + print('------------->', device_name) + + if re.search(r"mcp3[45]6[124][rR]", device_name): + device_index = re.findall(r'\d+', line) + if device_index: + mcp_devices.append(device_index[0]) + + # get voltage_raws* + proc_channels = subprocess.Popen("ls -1 " + path + "/ | grep in_voltage* | grep -v scale | grep -v \"-\"", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + stdout_channels, stderr_channels = proc_channels.communicate() + voltage_raws = stdout_channels.decode('utf-8').split('\n') + voltage_raws = voltage_raws[:-1] + + # get voltage_differential_raws + proc_channels = subprocess.Popen("ls -1 " + path + "/ | grep in_voltage* | grep -v scale | grep \"-\"", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + stdout_channels, stderr_channels = proc_channels.communicate() + voltage_differential_raws = stdout_channels.decode('utf-8').split('\n') + voltage_differential_raws = voltage_differential_raws[:-1] + + +for mcp_device in mcp_devices: + ABS_PATH = f'{DIR_PATH}iio:device{mcp_device}/' + + print('--------------------------------') + print('--------------------------------') + print('--------------------------------') + print(f'Device: {print_attribute("name")}') + print('--------------------------------') + + print(f'Available Voltage Oversampling Ratio:') + oversampling_ratio_string = print_attribute(oversampling_ratio_available[0]) + oversampling_ratio_list = oversampling_ratio_string.split() + print(f' {oversampling_ratio_string}') + + print('--------------------------------') + print(f'Current Voltage Oversampling Ratio: %s' % (print_attribute(oversampling_ratio[0]))) + print('--------------------------------') + + print(f'Available Voltage Hardware Gain:') + hw_gain_string = print_attribute(hw_gain_available[0]) + hw_gain_list = hw_gain_string.split() + print(f' {hw_gain_string}') + + print('--------------------------------') + print(f'Current Voltage Hardware Gain: %s' % (print_attribute(hw_gain[0]))) + print('--------------------------------') + + print(f'Available Voltage Calibration Bias {new_line} [ Low, Step, High ] {new_line} %s' % (print_attribute(calib_bias_available[0]).replace(" ", " "))) + + print('--------------------------------') + print(f'Current Voltage Calibration Bias: %s' % (print_attribute(calib_bias[0]))) + print('--------------------------------') + + print(f'Available Voltage Calibration Scale {new_line} [ Low, Step, High ] {new_line} %s' % (print_attribute(calib_scale_available[0]).replace(" ", " "))) + + print('--------------------------------') + print(f'Current Voltage Calibration Scale: %s' % (print_attribute(calib_scale[0]))) + print('--------------------------------') + + print('--------------------------------') + # Measured voltage in millivolts + # U = in2_raw * in_scale + + print('\n Voltage') + print('=========') + + print(f' Channel V mV') + for raw in voltage_raws: + # Voltage Scale is in mV + voltage_mv = mult(raw,voltage_scales[0]) + voltage = voltage_mv/1000 + print('---------------------------------------------------------------------') + print(f' {raw}: %2.4f | %5.6f' % (voltage, voltage_mv)) + + print('\n\n--------------------------------') + + + print('\n Differential Voltage') + print('======================') + + print(f' Channel V mV') + for raw in voltage_differential_raws: + # Voltage Scale is in mV + voltage_mv = mult(raw,voltage_scales[0]) + voltage = voltage_mv/1000 + print('---------------------------------------------------------------------') + print(f' {raw}: %8.4f | %15.6f' % (voltage, voltage_mv)) + + print('\n\n--------------------------------') + print('\n\n Temperature(',u'\xb0\x43','): %8.4f' % calculate_temperature(temperature_raws[0])) + print('\n\n--------------------------------') + + if os.geteuid()==0: + print('\n\n================================') + print ('Running as root.') + print('================================\n\n') + + # Testing Hardware Gain + current_hw_gain = print_attribute(hw_gain[0]) + print(f' Current Voltage Hardware Gain: x{current_hw_gain}') + + + print('\n================================') + print(f' Testing Hardware gain settings: {hw_gain_string}') + print('================================\n') + print('--------------------------------') + + for hw_gain_value in hw_gain_list: + print(f' {new_line} Set Voltage Hardware Gain: x{hw_gain_value}') + + write_attribute(hw_gain[0], hw_gain_value) + + print(f' Channel V mV') + voltage_mv = mult(voltage_differential_raws[0], voltage_scales[0]) + voltage = voltage_mv/1000 + print('---------------------------------------------------------------------') + print(f' {voltage_differential_raws[0]}: %2.4f | %5.6f -> Hw Gain: x%s' % (voltage, voltage_mv, print_attribute(hw_gain[0]))) + print('---------------------------------------------------------------------------------------------------------------------') + + # set back the Hardware Gain + write_attribute(hw_gain[0], current_hw_gain) + print('--------------------------------') + + # Testing Oversampling Ratio + current_oversampling_ratio = print_attribute(oversampling_ratio[0]) + print(f' Current Oversampling Ratio: x{current_oversampling_ratio}') + + print(f' {new_line}') + print('\n================================') + print(f' Testing Oversampling Ratio settings: {oversampling_ratio_string}') + print('================================\n') + print('--------------------------------') + + for oversampling_ratio_value in oversampling_ratio_list: + print(f' {new_line} Set Oversampling Ratio: x{oversampling_ratio_value}') + + write_attribute(oversampling_ratio[0], oversampling_ratio_value) + + print(f' Channel V mV') + voltage_mv = mult(voltage_differential_raws[0], voltage_scales[0]) + voltage = voltage_mv/1000 + print('---------------------------------------------------------------------') + print(f' {voltage_differential_raws[0]}: %2.4f | %5.6f -> Oversampling Ratio: x%s' % (voltage, voltage_mv, print_attribute(oversampling_ratio[0]))) + print('---------------------------------------------------------------------------------------------------------------------') + + # set back the Oversampling Ratio + write_attribute(oversampling_ratio[0], current_oversampling_ratio) + print('\n--------------------------------') + + # Testing Calibration BIAS + current_calib_bias = print_attribute(calib_bias[0]) + print(f'{new_line} Current Calibration BIAS: {current_calib_bias}') + + print('\n\n================================') + print(f' Testing Calibration Bias settings') + print('================================\n') + print('--------------------------------\n') + + calib_bias_value = "50000" + print(f' {new_line} Set Calibration BIAS: {calib_bias_value}') + + write_attribute(calib_bias[0], calib_bias_value) + + print(f' Channel V mV') + voltage_mv = mult(voltage_differential_raws[0], voltage_scales[0]) + voltage = voltage_mv/1000 + print('---------------------------------------------------------------------') + print(f' {voltage_differential_raws[0]}: %2.4f | %5.6f -> Calibration BIAS: %s' % (voltage, voltage_mv, print_attribute(calib_bias[0]))) + print('---------------------------------------------------------------------------------------------------------------------') + + # set back the Calibration Bias + write_attribute(calib_bias[0], "0") + print('\n--------------------------------') + + # Testing Calibration Scale + calib_scale_x1_gain = 8388608 + + current_calib_scale = print_attribute(calib_scale[0]) + print(f'{new_line} Current Calibration Scale: {int(current_calib_scale)/calib_scale_x1_gain}') + + print('\n\n================================') + print(f' Testing Calibration Scale settings') + print('================================\n') + print('--------------------------------') + + calib_scale_value = 4194304; + print(f' {new_line} Set Calibration Scale: {calib_scale_value/calib_scale_x1_gain}') + + write_attribute(calib_scale[0], str(calib_scale_value)) + + print(f' Channel V mV') + voltage_mv = mult(voltage_differential_raws[0], voltage_scales[0]) + voltage = voltage_mv/1000 + print('---------------------------------------------------------------------') + calib_scale_string = print_attribute(calib_scale[0]) + calib_scale_int = int(calib_scale_string) + print(f' {voltage_differential_raws[0]}: %2.4f | %5.6f -> Calibration Scale: x%2.6f' % (voltage, voltage_mv, calib_scale_int/calib_scale_x1_gain)) + print('*********************************************************************************************************************') + print('*********************************************************************************************************************') + print('*********************************************************************************************************************') + + # set back the Calibration Scale + write_attribute(calib_scale[0], str(calib_scale_x1_gain)) + + else: + print ('User is not root.\n') + print ('Changing the user configurable settings must by done by root user.\n') \ No newline at end of file diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000000000000000000000000000000000000..9752fa6124aa6ff51036c011da99d999ec720ad5 --- /dev/null +++ b/debian/rules @@ -0,0 +1,10 @@ +#!/usr/bin/make -f +# See debhelper(7) (uncomment to enable) +# output every command that modifies files on the build system. +DH_VERBOSE = 1 + +%: + dh $@ + +override_dh_builddeb: + dh_builddeb -- -Zxz diff --git a/debian/update-gateware.sh b/debian/update-gateware.sh new file mode 100755 index 0000000000000000000000000000000000000000..2b1deb28a9f9d63e7e6d56fcc58404c1708ef994 --- /dev/null +++ b/debian/update-gateware.sh @@ -0,0 +1,45 @@ +#!/bin/bash +echo "================================================================================" +echo "| FPGA Gateware Update |" +echo "| |" +echo "| Please ensure that the mpfs_bitstream.spi file containing the gateware |" +echo "| update has been copied to directory /lib/firmware. |" +echo "| |" +echo "| !!! This will take a couple of minutes. !!! |" +echo "| |" +echo "| Give the system a few minutes to reboot itself |" +echo "| after Linux has shutdown. |" +echo "| |" +echo "================================================================================" + +if [ ! -f /lib/firmware/mpfs_bitstream.spi ] ; then + echo "Missing: /lib/firmware/mpfs_bitstream.spi" + exit 2 +fi + +#read -rsp $'Press any key to continue...\n' -n1 key + +if [ ! -f /sys/kernel/debug/fpga/microchip_exec_update ] ; then + /usr/bin/mount -t debugfs none /sys/kernel/debug +fi + +# Trash exisitng device tree overlay in case the rest of the process fails: +/usr/sbin/mtd_debug erase /dev/mtd0 0x0 0x10000 + +# Write device tree overlay +dtbo_ls=$(ls -l /lib/firmware/mpfs_dtbo.spi) +dtbo_size=$(echo $dtbo_ls | cut -d " " -f 5) + +echo "Writing mpfs_dtbo.spi to /dev/mtd0" +/usr/sbin/mtd_debug write /dev/mtd0 0x400 $dtbo_size /lib/firmware/mpfs_dtbo.spi > /dev/zero + +# Fake the presence of a golden image for now. +/usr/sbin/mtd_debug write /dev/mtd0 0 4 /dev/zero > /dev/zero + +# Initiate FPGA update. +echo "Triggering FPGA Gateware Update (/sys/kernel/debug/fpga/microchip_exec_update)" +echo 1 > /sys/kernel/debug/fpga/microchip_exec_update + +# Reboot Linux for the gateware update to take effect. +# FPGA reprogramming takes places between Linux shut-down and HSS restarting the board. +/usr/sbin/reboot diff --git a/generate_gateware_overlays.py b/generate_gateware_overlays.py index 47dd3ec19c4365f2a0e7decfb8b575ed5a6dd7ad..7cd0f6afe4304ba8f21a874e55622a8f641470c2 100644 --- a/generate_gateware_overlays.py +++ b/generate_gateware_overlays.py @@ -107,7 +107,7 @@ def get_gateware_git_version(work_dir): try: git_hash = subprocess.check_output(['git', 'describe', '--tags']) except subprocess.CalledProcessError as e: - git_hash = 0 + git_hash = b"\n" return git_hash.decode('ascii').strip("'").strip("\n") diff --git a/sources/FPGA-design/script_support/components/BVF_GATEWARE.tcl b/sources/FPGA-design/script_support/components/BVF_GATEWARE.tcl index 536458652753dbf21cad45619d48bede73c9e210..1bb716567cb7d38f147c0403b5ff2bf090656008 100644 --- a/sources/FPGA-design/script_support/components/BVF_GATEWARE.tcl +++ b/sources/FPGA-design/script_support/components/BVF_GATEWARE.tcl @@ -285,7 +285,14 @@ sd_mark_pins_unused -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:SPI_0_SS sd_mark_pins_unused -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:SPI_1_SS1} sd_mark_pins_unused -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:SPI_1_CLK} -sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M} -value {GND} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_56_58} -value {GND} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_3_7} -value {GND} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_A} -value {GND} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_B} -value {GND} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_C} -value {GND} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_D} -value {GND} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_E} -value {GND} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_F} -value {GND} #------------------------------------------------------------------------------- diff --git a/sources/FPGA-design/script_support/components/BVF_RISCV_SUBSYSTEM.tcl b/sources/FPGA-design/script_support/components/BVF_RISCV_SUBSYSTEM.tcl index 163e46d9275a62ff680595731699a2b63efdbfea..d6ef3aa0f699b38524b8a6826964b1d123da8b8a 100644 --- a/sources/FPGA-design/script_support/components/BVF_RISCV_SUBSYSTEM.tcl +++ b/sources/FPGA-design/script_support/components/BVF_RISCV_SUBSYSTEM.tcl @@ -102,6 +102,21 @@ sd_create_scalar_port -sd_name ${sd_name} -port_name {PHY_MDC} -port_direction { sd_create_scalar_port -sd_name ${sd_name} -port_name {PHY_MDIO} -port_direction {INOUT} +#------------------------------------------------------------------------------- +# Fabric interrupts +#------------------------------------------------------------------------------- +sd_create_bus_port -sd_name ${sd_name} -port_name {MSS_INT_F2M_3_7} -port_direction {IN} -port_range {[7:3]} + + +sd_create_bus_port -sd_name ${sd_name} -port_name {MSS_INT_F2M_A} -port_direction {IN} -port_range {[15:8]} +sd_create_bus_port -sd_name ${sd_name} -port_name {MSS_INT_F2M_B} -port_direction {IN} -port_range {[23:16]} +sd_create_bus_port -sd_name ${sd_name} -port_name {MSS_INT_F2M_C} -port_direction {IN} -port_range {[31:24]} +sd_create_bus_port -sd_name ${sd_name} -port_name {MSS_INT_F2M_D} -port_direction {IN} -port_range {[39:32]} +sd_create_bus_port -sd_name ${sd_name} -port_name {MSS_INT_F2M_E} -port_direction {IN} -port_range {[47:40]} +sd_create_bus_port -sd_name ${sd_name} -port_name {MSS_INT_F2M_F} -port_direction {IN} -port_range {[55:48]} + +sd_create_bus_port -sd_name ${sd_name} -port_name {MSS_INT_F2M_56_58} -port_direction {IN} -port_range {[58:56]} + #------------------------------------------------------------------------------- # User LEDs #------------------------------------------------------------------------------- @@ -141,15 +156,28 @@ sd_instantiate_component -sd_name ${sd_name} -component_name {PF_SOC_MSS} -insta sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_SOC_MSS:MSS_INT_F2M} -pin_slices {[0]} sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_SOC_MSS:MSS_INT_F2M} -pin_slices {[1]} sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_SOC_MSS:MSS_INT_F2M} -pin_slices {[2]} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_SOC_MSS:MSS_INT_F2M} -pin_slices {[58:3]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_SOC_MSS:MSS_INT_F2M} -pin_slices {"[7:3]"} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_SOC_MSS:MSS_INT_F2M} -pin_slices {"[15:8]"} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_SOC_MSS:MSS_INT_F2M} -pin_slices {"[23:16]"} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_SOC_MSS:MSS_INT_F2M} -pin_slices {"[31:24]"} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_SOC_MSS:MSS_INT_F2M} -pin_slices {"[39:32]"} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_SOC_MSS:MSS_INT_F2M} -pin_slices {"[47:40]"} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_SOC_MSS:MSS_INT_F2M} -pin_slices {"[55:48]"} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_SOC_MSS:MSS_INT_F2M} -pin_slices {"[58:56]"} sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_SOC_MSS:MSS_INT_F2M} -pin_slices {[59]} sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_SOC_MSS:MSS_INT_F2M} -pin_slices {[60]} sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_SOC_MSS:MSS_INT_F2M} -pin_slices {[61]} sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_SOC_MSS:MSS_INT_F2M} -pin_slices {[62]} sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_SOC_MSS:MSS_INT_F2M} -pin_slices {[63]} -sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {PF_SOC_MSS:MSS_INT_F2M[58:3]} -port_name {} - +sd_connect_pins -sd_name ${sd_name} -pin_names {"MSS_INT_F2M_3_7" "PF_SOC_MSS:MSS_INT_F2M[7:3]"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"MSS_INT_F2M_A" "PF_SOC_MSS:MSS_INT_F2M[15:8]"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"MSS_INT_F2M_B" "PF_SOC_MSS:MSS_INT_F2M[23:16]"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"MSS_INT_F2M_C" "PF_SOC_MSS:MSS_INT_F2M[31:24]"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"MSS_INT_F2M_D" "PF_SOC_MSS:MSS_INT_F2M[39:32]"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"MSS_INT_F2M_E" "PF_SOC_MSS:MSS_INT_F2M[47:40]"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"MSS_INT_F2M_F" "PF_SOC_MSS:MSS_INT_F2M[55:48]"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"MSS_INT_F2M_56_58" "PF_SOC_MSS:MSS_INT_F2M[58:56]"} sd_mark_pins_unused -sd_name ${sd_name} -pin_names {PF_SOC_MSS:MSS_INT_M2F} #sd_mark_pins_unused -sd_name ${sd_name} -pin_names {PF_SOC_MSS:FIC_2_AXI4_TARGET} diff --git a/sources/FPGA-design/script_support/components/CAPE/DEFAULT/ADD_CAPE.tcl b/sources/FPGA-design/script_support/components/CAPE/DEFAULT/ADD_CAPE.tcl index 91a29bbd42cb2ff0c87404949929f3ee5e70b6de..a21173fd32a2c7f708f634f811dfb44f93bfa005 100644 --- a/sources/FPGA-design/script_support/components/CAPE/DEFAULT/ADD_CAPE.tcl +++ b/sources/FPGA-design/script_support/components/CAPE/DEFAULT/ADD_CAPE.tcl @@ -5,9 +5,9 @@ puts "======== Add cape option: DEFAULT ========" #------------------------------------------------------------------------------- source script_support/components/CAPE/DEFAULT/APB_BUS_CONVERTER.tcl source script_support/components/CAPE/DEFAULT/CoreAPB3_CAPE.tcl -#source script_support/components/CAPE/DEFAULT/CAPE_CoreAPB.tcl source script_support/components/CAPE/DEFAULT/CoreGPIO_LCD.tcl -source script_support/components/CAPE/DEFAULT/P8_GPIO_LCD.tcl +#source script_support/components/CAPE/DEFAULT/P8_GPIO_LCD.tcl +source script_support/components/CAPE/DEFAULT/P8_GPIO_UPPER.tcl source script_support/components/CAPE/DEFAULT/CoreGPIO_P9.tcl source script_support/components/CAPE/DEFAULT/P9_GPIO.tcl source script_support/components/CAPE/DEFAULT/CAPE_DEFAULT_GPIOS.tcl @@ -62,6 +62,17 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE:P9_PIN42" "P9_PIN42"} sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE:APB_SLAVE" "BVF_RISCV_SUBSYSTEM:CAPE_APB_MTARGET"} +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_E} +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_A} +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_B} +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_C} +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_D} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_A" "CAPE:INT_A"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_B" "CAPE:INT_B"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_C" "CAPE:INT_C"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_D" "CAPE:INT_D"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_E" "CAPE:INT_E"} + sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MMUART_2_TXD} sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {BVF_RISCV_SUBSYSTEM:MMUART_2_TXD} -port_name {} sd_rename_port -sd_name ${sd_name} -current_port_name {MMUART_2_TXD} -new_port_name {P9_24} diff --git a/sources/FPGA-design/script_support/components/CAPE/DEFAULT/CAPE.tcl b/sources/FPGA-design/script_support/components/CAPE/DEFAULT/CAPE.tcl index f655bd5943bcd681317bb286108bfa0b169f1b99..af929b91bf2863d848e309715bd5b6aca866a517 100644 --- a/sources/FPGA-design/script_support/components/CAPE/DEFAULT/CAPE.tcl +++ b/sources/FPGA-design/script_support/components/CAPE/DEFAULT/CAPE.tcl @@ -1,4 +1,4 @@ -# Creating SmartDesign CAPE +# Creating SmartDesign "CAPE" set sd_name {CAPE} create_smartdesign -sd_name ${sd_name} @@ -78,6 +78,11 @@ sd_create_bus_port -sd_name ${sd_name} -port_name {GPIO_OUT} -port_direction {IN sd_create_bus_port -sd_name ${sd_name} -port_name {APB_SLAVE_SLAVE_PRDATA} -port_direction {OUT} -port_range {[31:0]} sd_create_bus_port -sd_name ${sd_name} -port_name {GPIO_IN} -port_direction {OUT} -port_range {[27:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {INT_A} -port_direction {OUT} -port_range {[7:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {INT_B} -port_direction {OUT} -port_range {[7:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {INT_C} -port_direction {OUT} -port_range {[7:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {INT_D} -port_direction {OUT} -port_range {[7:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {INT_E} -port_direction {OUT} -port_range {[7:0]} # Create top level Bus interface Ports @@ -91,6 +96,9 @@ sd_create_bif_port -sd_name ${sd_name} -port_name {APB_SLAVE} -port_bif_vlnv {AM "PREADY:APB_SLAVE_SLAVE_PREADY" \ "PSLVERR:APB_SLAVE_SLAVE_PSLVERR" } +sd_create_pin_slices -sd_name ${sd_name} -pin_name {INT_E} -pin_slices {[4:0]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {INT_E} -pin_slices {[7:5]} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {INT_E[7:5]} -value {GND} # Add APB_BUS_CONVERTER_0 instance sd_instantiate_component -sd_name ${sd_name} -component_name {APB_BUS_CONVERTER} -instance_name {APB_BUS_CONVERTER_0} @@ -108,11 +116,16 @@ sd_instantiate_component -sd_name ${sd_name} -component_name {CoreAPB3_CAPE} -in # Add P8_GPIO_UPPER_0 instance sd_instantiate_component -sd_name ${sd_name} -component_name {P8_GPIO_UPPER} -instance_name {P8_GPIO_UPPER_0} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {P8_GPIO_UPPER_0:INT} -pin_slices {[15:8]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {P8_GPIO_UPPER_0:INT} -pin_slices {[7:0]} # Add P9_GPIO_0 instance sd_instantiate_component -sd_name ${sd_name} -component_name {P9_GPIO} -instance_name {P9_GPIO_0} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {P9_GPIO_0:INT} -pin_slices {[15:8]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {P9_GPIO_0:INT} -pin_slices {[20:16]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {P9_GPIO_0:INT} -pin_slices {[7:0]} @@ -194,6 +207,11 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_PIN42" "PWM_0:PWM_0" } sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_IN" "GPIO_IN" } sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_OE" "GPIO_OE" } sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_OUT" "GPIO_OUT" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"INT_A" "P8_GPIO_UPPER_0:INT[7:0]" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"INT_B" "P8_GPIO_UPPER_0:INT[15:8]" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"INT_C" "P9_GPIO_0:INT[7:0]" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"INT_D" "P9_GPIO_0:INT[15:8]" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"INT_E[4:0]" "P9_GPIO_0:INT[20:16]" } # Add bus interface net connections sd_connect_pins -sd_name ${sd_name} -pin_names {"APB_BUS_CONVERTER_0:APB_MASTER" "CoreAPB3_CAPE_0:APB3mmaster" } @@ -206,7 +224,7 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreAPB3_CAPE_0:APBmslave5" "PW # Re-enable auto promotion of pins of type 'pad' auto_promote_pad_pins -promote_all 1 -# Save the smartDesign +# Save the SmartDesign save_smartdesign -sd_name ${sd_name} -# Generate SmartDesign CAPE +# Generate SmartDesign "CAPE" generate_component -component_name ${sd_name} diff --git a/sources/FPGA-design/script_support/components/CAPE/DEFAULT/P8_GPIO_LCD.tcl b/sources/FPGA-design/script_support/components/CAPE/DEFAULT/P8_GPIO_LCD.tcl deleted file mode 100644 index 9b16ecca90b1b7a06df3ac6c26decb3369cc796e..0000000000000000000000000000000000000000 --- a/sources/FPGA-design/script_support/components/CAPE/DEFAULT/P8_GPIO_LCD.tcl +++ /dev/null @@ -1,174 +0,0 @@ -# Creating SmartDesign P8_GPIO_UPPER -set sd_name {P8_GPIO_UPPER} -create_smartdesign -sd_name ${sd_name} - -auto_promote_pad_pins -promote_all 1 - -# Add GPIO BIBUFs -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_0_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_1_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_2_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_3_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_4_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_5_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_6_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_7_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_8_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_9_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_10_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_11_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_12_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_13_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_14_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_15_BIBUF} - - -sd_instantiate_component -sd_name ${sd_name} -component_name {CoreGPIO_P8_UPPER} -instance_name {} - -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[15:15]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[14:14]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[13:13]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[12:12]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[11:11]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[10:10]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[9:9]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[8:8]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[7:7]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[6:6]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[5:5]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[4:4]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[3:3]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[2:2]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[1:1]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[0:0]"} - -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[15:15]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[14:14]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[13:13]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[12:12]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[11:11]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[10:10]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[9:9]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[8:8]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[7:7]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[6:6]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[5:5]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[4:4]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[3:3]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[2:2]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[1:1]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[0:0]"} - -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[15:15]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[14:14]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[13:13]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[12:12]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[11:11]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[10:10]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[9:9]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[8:8]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[7:7]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[6:6]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[5:5]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[4:4]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[3:3]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[2:2]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[1:1]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[0:0]"} - - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[0:0]" "GPIO_0_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[0:0]" "GPIO_0_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[0:0]" "GPIO_0_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[1:1]" "GPIO_1_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[1:1]" "GPIO_1_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[1:1]" "GPIO_1_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[2:2]" "GPIO_2_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[2:2]" "GPIO_2_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[2:2]" "GPIO_2_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[3:3]" "GPIO_3_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[3:3]" "GPIO_3_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[3:3]" "GPIO_3_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[4:4]" "GPIO_4_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[4:4]" "GPIO_4_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[4:4]" "GPIO_4_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[5:5]" "GPIO_5_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[5:5]" "GPIO_5_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[5:5]" "GPIO_5_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[6:6]" "GPIO_6_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[6:6]" "GPIO_6_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[6:6]" "GPIO_6_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[7:7]" "GPIO_7_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[7:7]" "GPIO_7_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[7:7]" "GPIO_7_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[8:8]" "GPIO_8_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[8:8]" "GPIO_8_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[8:8]" "GPIO_8_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[9:9]" "GPIO_9_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[9:9]" "GPIO_9_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[9:9]" "GPIO_9_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[10:10]" "GPIO_10_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[10:10]" "GPIO_10_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[10:10]" "GPIO_10_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[11:11]" "GPIO_11_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[11:11]" "GPIO_11_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[11:11]" "GPIO_11_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[12:12]" "GPIO_12_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[12:12]" "GPIO_12_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[12:12]" "GPIO_12_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[13:13]" "GPIO_13_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[13:13]" "GPIO_13_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[13:13]" "GPIO_13_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[14:14]" "GPIO_14_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[14:14]" "GPIO_14_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[14:14]" "GPIO_14_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[15:15]" "GPIO_15_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[15:15]" "GPIO_15_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[15:15]" "GPIO_15_BIBUF:E"} - - -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD} -new_port_name {GPIO_0_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_0} -new_port_name {GPIO_1_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_1} -new_port_name {GPIO_2_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_2} -new_port_name {GPIO_3_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_3} -new_port_name {GPIO_4_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_4} -new_port_name {GPIO_5_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_5} -new_port_name {GPIO_6_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_6} -new_port_name {GPIO_7_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_7} -new_port_name {GPIO_8_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_8} -new_port_name {GPIO_9_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_9} -new_port_name {GPIO_10_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_10} -new_port_name {GPIO_11_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_11} -new_port_name {GPIO_12_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_12} -new_port_name {GPIO_13_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_13} -new_port_name {GPIO_14_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_14} -new_port_name {GPIO_15_PAD} - -sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:PRESETN} -port_name {} -sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:PCLK} -port_name {} -sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:APB_bif} -port_name {} - -sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_P8_UPPER_0:INT} - - -# Re-enable auto promotion of pins of type 'pad' -auto_promote_pad_pins -promote_all 1 -# Save the smartDesign -save_smartdesign -sd_name ${sd_name} -# Generate SmartDesign P8_GPIO_UPPER -generate_component -component_name ${sd_name} diff --git a/sources/FPGA-design/script_support/components/CAPE/DEFAULT/P8_GPIO_UPPER.tcl b/sources/FPGA-design/script_support/components/CAPE/DEFAULT/P8_GPIO_UPPER.tcl new file mode 100644 index 0000000000000000000000000000000000000000..c162d804156e0190274d77127a0241de7f353bfb --- /dev/null +++ b/sources/FPGA-design/script_support/components/CAPE/DEFAULT/P8_GPIO_UPPER.tcl @@ -0,0 +1,266 @@ +# Creating SmartDesign "P8_GPIO_UPPER" +set sd_name {P8_GPIO_UPPER} +create_smartdesign -sd_name ${sd_name} + +# Disable auto promotion of pins of type 'pad' +auto_promote_pad_pins -promote_all 0 + +# Create top level Scalar Ports +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_bif_PENABLE} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_bif_PSEL} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_bif_PWRITE} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {PCLK} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {PRESETN} -port_direction {IN} + +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_bif_PREADY} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_bif_PSLVERR} -port_direction {OUT} + +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_0_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_10_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_11_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_12_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_13_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_14_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_15_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_1_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_2_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_3_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_4_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_5_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_6_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_7_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_8_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_9_PAD} -port_direction {INOUT} -port_is_pad {1} + +# Create top level Bus Ports +sd_create_bus_port -sd_name ${sd_name} -port_name {APB_bif_PADDR} -port_direction {IN} -port_range {[7:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {APB_bif_PWDATA} -port_direction {IN} -port_range {[31:0]} + +sd_create_bus_port -sd_name ${sd_name} -port_name {APB_bif_PRDATA} -port_direction {OUT} -port_range {[31:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {INT} -port_direction {OUT} -port_range {[15:0]} + + +# Create top level Bus interface Ports +sd_create_bif_port -sd_name ${sd_name} -port_name {APB_bif} -port_bif_vlnv {AMBA:AMBA2:APB:r0p0} -port_bif_role {slave} -port_bif_mapping {\ +"PADDR:APB_bif_PADDR" \ +"PSELx:APB_bif_PSEL" \ +"PENABLE:APB_bif_PENABLE" \ +"PWRITE:APB_bif_PWRITE" \ +"PRDATA:APB_bif_PRDATA" \ +"PWDATA:APB_bif_PWDATA" \ +"PREADY:APB_bif_PREADY" \ +"PSLVERR:APB_bif_PSLVERR" } + +# Add CoreGPIO_P8_UPPER_0 instance +sd_instantiate_component -sd_name ${sd_name} -component_name {CoreGPIO_P8_UPPER} -instance_name {CoreGPIO_P8_UPPER_0} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[0:0]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[10:10]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[11:11]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[12:12]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[13:13]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[14:14]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[15:15]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[1:1]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[2:2]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[3:3]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[4:4]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[5:5]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[6:6]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[7:7]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[8:8]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[9:9]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[0:0]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[10:10]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[11:11]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[12:12]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[13:13]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[14:14]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[15:15]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[1:1]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[2:2]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[3:3]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[4:4]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[5:5]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[6:6]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[7:7]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[8:8]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[9:9]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[0:0]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[10:10]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[11:11]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[12:12]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[13:13]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[14:14]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[15:15]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[1:1]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[2:2]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[3:3]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[4:4]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[5:5]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[6:6]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[7:7]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[8:8]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[9:9]} + + + +# Add GPIO_0_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_0_BIBUF} + + + +# Add GPIO_1_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_1_BIBUF} + + + +# Add GPIO_2_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_2_BIBUF} + + + +# Add GPIO_3_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_3_BIBUF} + + + +# Add GPIO_4_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_4_BIBUF} + + + +# Add GPIO_5_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_5_BIBUF} + + + +# Add GPIO_6_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_6_BIBUF} + + + +# Add GPIO_7_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_7_BIBUF} + + + +# Add GPIO_8_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_8_BIBUF} + + + +# Add GPIO_9_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_9_BIBUF} + + + +# Add GPIO_10_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_10_BIBUF} + + + +# Add GPIO_11_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_11_BIBUF} + + + +# Add GPIO_12_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_12_BIBUF} + + + +# Add GPIO_13_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_13_BIBUF} + + + +# Add GPIO_14_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_14_BIBUF} + + + +# Add GPIO_15_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_15_BIBUF} + + + +# Add scalar net connections +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[0:0]" "GPIO_0_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[10:10]" "GPIO_10_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[11:11]" "GPIO_11_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[12:12]" "GPIO_12_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[13:13]" "GPIO_13_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[14:14]" "GPIO_14_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[15:15]" "GPIO_15_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[1:1]" "GPIO_1_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[2:2]" "GPIO_2_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[3:3]" "GPIO_3_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[4:4]" "GPIO_4_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[5:5]" "GPIO_5_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[6:6]" "GPIO_6_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[7:7]" "GPIO_7_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[8:8]" "GPIO_8_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[9:9]" "GPIO_9_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[0:0]" "GPIO_0_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[10:10]" "GPIO_10_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[11:11]" "GPIO_11_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[12:12]" "GPIO_12_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[13:13]" "GPIO_13_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[14:14]" "GPIO_14_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[15:15]" "GPIO_15_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[1:1]" "GPIO_1_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[2:2]" "GPIO_2_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[3:3]" "GPIO_3_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[4:4]" "GPIO_4_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[5:5]" "GPIO_5_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[6:6]" "GPIO_6_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[7:7]" "GPIO_7_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[8:8]" "GPIO_8_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[9:9]" "GPIO_9_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[0:0]" "GPIO_0_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[10:10]" "GPIO_10_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[11:11]" "GPIO_11_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[12:12]" "GPIO_12_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[13:13]" "GPIO_13_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[14:14]" "GPIO_14_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[15:15]" "GPIO_15_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[1:1]" "GPIO_1_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[2:2]" "GPIO_2_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[3:3]" "GPIO_3_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[4:4]" "GPIO_4_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[5:5]" "GPIO_5_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[6:6]" "GPIO_6_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[7:7]" "GPIO_7_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[8:8]" "GPIO_8_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[9:9]" "GPIO_9_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:PCLK" "PCLK" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:PRESETN" "PRESETN" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_0_BIBUF:PAD" "GPIO_0_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_10_BIBUF:PAD" "GPIO_10_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_11_BIBUF:PAD" "GPIO_11_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_12_BIBUF:PAD" "GPIO_12_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_13_BIBUF:PAD" "GPIO_13_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_14_BIBUF:PAD" "GPIO_14_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_15_BIBUF:PAD" "GPIO_15_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_1_BIBUF:PAD" "GPIO_1_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_2_BIBUF:PAD" "GPIO_2_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_3_BIBUF:PAD" "GPIO_3_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_4_BIBUF:PAD" "GPIO_4_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_5_BIBUF:PAD" "GPIO_5_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_6_BIBUF:PAD" "GPIO_6_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_7_BIBUF:PAD" "GPIO_7_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_8_BIBUF:PAD" "GPIO_8_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_9_BIBUF:PAD" "GPIO_9_PAD" } + +# Add bus net connections +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:INT" "INT" } + +# Add bus interface net connections +sd_connect_pins -sd_name ${sd_name} -pin_names {"APB_bif" "CoreGPIO_P8_UPPER_0:APB_bif" } + +# Re-enable auto promotion of pins of type 'pad' +auto_promote_pad_pins -promote_all 1 +# Save the SmartDesign +save_smartdesign -sd_name ${sd_name} +# Generate SmartDesign "P8_GPIO_UPPER" +generate_component -component_name ${sd_name} diff --git a/sources/FPGA-design/script_support/components/CAPE/DEFAULT/P9_GPIO.tcl b/sources/FPGA-design/script_support/components/CAPE/DEFAULT/P9_GPIO.tcl index bb4d1618e707974a5a94a2e458410bf0d23200fe..9afedc1e3d4b599d8a4efeb9ca66ff4ffe819b79 100644 --- a/sources/FPGA-design/script_support/components/CAPE/DEFAULT/P9_GPIO.tcl +++ b/sources/FPGA-design/script_support/components/CAPE/DEFAULT/P9_GPIO.tcl @@ -1,4 +1,4 @@ -# Creating SmartDesign P9_GPIO +# Creating SmartDesign "P9_GPIO" set sd_name {P9_GPIO} create_smartdesign -sd_name ${sd_name} @@ -28,6 +28,7 @@ sd_create_bus_port -sd_name ${sd_name} -port_name {APB_bif_PADDR} -port_directio sd_create_bus_port -sd_name ${sd_name} -port_name {APB_bif_PWDATA} -port_direction {IN} -port_range {[31:0]} sd_create_bus_port -sd_name ${sd_name} -port_name {APB_bif_PRDATA} -port_direction {OUT} -port_range {[31:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {INT} -port_direction {OUT} -port_range {[20:0]} # Create top level Bus interface Ports @@ -148,7 +149,6 @@ sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_ sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_P9_0:GPIO_OE[8:8]} sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {[9:9]} sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_P9_0:GPIO_OE[9:9]} -sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_P9_0:INT} @@ -219,13 +219,15 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_19_BIBUF:PAD" "GPIO_19_PAD sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_1_BIBUF:PAD" "GPIO_1_PAD" } sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_4_BIBUF:PAD" "GPIO_4_PAD" } +# Add bus net connections +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:INT" "INT" } # Add bus interface net connections sd_connect_pins -sd_name ${sd_name} -pin_names {"APB_bif" "CoreGPIO_P9_0:APB_bif" } # Re-enable auto promotion of pins of type 'pad' auto_promote_pad_pins -promote_all 1 -# Save the smartDesign +# Save the SmartDesign save_smartdesign -sd_name ${sd_name} -# Generate SmartDesign P9_GPIO +# Generate SmartDesign "P9_GPIO" generate_component -component_name ${sd_name} diff --git a/sources/FPGA-design/script_support/components/CAPE/DEFAULT/Readme.md b/sources/FPGA-design/script_support/components/CAPE/DEFAULT/Readme.md index 2349d4f77db2e1c368a47f5b4b5527140a73a9ed..d02c040d1136b826f451c37825297f3ad0a30c19 100644 --- a/sources/FPGA-design/script_support/components/CAPE/DEFAULT/Readme.md +++ b/sources/FPGA-design/script_support/components/CAPE/DEFAULT/Readme.md @@ -2,102 +2,102 @@ ## P8 Header -| Signal | Control | Description | -|--------|----------------------------|-------------| -| P8_1 | n/a | GND | -| P8_2 | n/a | GND | -| P8_3 | MSS GPIO_2[0] | User LED 0 | -| P8_4 | MSS GPIO_2[1] | User LED 1 | -| P8_5 | MSS GPIO_2[2] | User LED 2 | -| P8_6 | MSS GPIO_2[3] | User LED 3 | -| P8_7 | MSS GPIO_2[4] | User LED 4 | -| P8_8 | MSS GPIO_2[5] | User LED 5 | -| P8_9 | MSS GPIO_2[6] | User LED 6 | -| P8_10 | MSS GPIO_2[7] | User LED 7 | -| P8_11 | MSS GPIO_2[8] | User LED 8 | -| P8_12 | MSS GPIO_2[9] | User LED 9 | -| P8_13 | core_pwm[1] @ 0x41500000 | PWM_2:1 | -| P8_14 | MSS GPIO_2[11] | User LED 11 | -| P8_15 | MSS GPIO_2[12] | GPIO | -| P8_16 | MSS GPIO_2[13] | GPIO | -| P8_17 | MSS GPIO_2[14] | GPIO | -| P8_18 | MSS GPIO_2[15] | GPIO | -| P8_19 | core_pwm[0] @ 0x41500000 | PWM_2:0 | -| P8_20 | MSS GPIO_2[17] | GPIO | -| P8_21 | MSS GPIO_2[18] | GPIO | -| P8_22 | MSS GPIO_2[19] | GPIO | -| P8_23 | MSS GPIO_2[20] | GPIO | -| P8_24 | MSS GPIO_2[21] | GPIO | -| P8_25 | MSS GPIO_2[22] | GPIO | -| P8_26 | MSS GPIO_2[23] | GPIO | -| P8_27 | MSS GPIO_2[24] | GPIO | -| P8_28 | MSS GPIO_2[25] | GPIO | -| P8_29 | MSS GPIO_2[26] | GPIO | -| P8_30 | MSS GPIO_2[27] | GPIO | -| P8_31 | core_gpio[0] @ 0x41100000 | GPIO | -| P8_32 | core_gpio[1] @ 0x41100000 | GPIO | -| P8_33 | core_gpio[2] @ 0x41100000 | GPIO | -| P8_34 | core_gpio[3] @ 0x41100000 | GPIO | -| P8_35 | core_gpio[4] @ 0x41100000 | GPIO | -| P8_36 | core_gpio[5] @ 0x41100000 | GPIO | -| P8_37 | core_gpio[6] @ 0x41100000 | GPIO | -| P8_38 | core_gpio[7] @ 0x41100000 | GPIO | -| P8_39 | core_gpio[8] @ 0x41100000 | GPIO | -| P8_40 | core_gpio[9] @ 0x41100000 | GPIO | -| P8_41 | core_gpio[10] @ 0x41100000 | GPIO | -| P8_42 | core_gpio[11] @ 0x41100000 | GPIO | -| P8_43 | core_gpio[12] @ 0x41100000 | GPIO | -| P8_44 | core_gpio[13] @ 0x41100000 | GPIO | -| P8_45 | core_gpio[14] @ 0x41100000 | GPIO | -| P8_46 | core_gpio[15] @ 0x41100000 | GPIO | +| Signal | Control | Irq # | Description | +|--------|----------------------------|-------|-------------| +| P8_1 | n/a | n/a | GND | +| P8_2 | n/a | n/a | GND | +| P8_3 | MSS GPIO_2[0] | 53 | User LED 0 | +| P8_4 | MSS GPIO_2[1] | 53 | User LED 1 | +| P8_5 | MSS GPIO_2[2] | 53 | User LED 2 | +| P8_6 | MSS GPIO_2[3] | 53 | User LED 3 | +| P8_7 | MSS GPIO_2[4] | 53 | User LED 4 | +| P8_8 | MSS GPIO_2[5] | 53 | User LED 5 | +| P8_9 | MSS GPIO_2[6] | 53 | User LED 6 | +| P8_10 | MSS GPIO_2[7] | 53 | User LED 7 | +| P8_11 | MSS GPIO_2[8] | 53 | User LED 8 | +| P8_12 | MSS GPIO_2[9] | 53 | User LED 9 | +| P8_13 | core_pwm[1] @ 0x41500000 | n/a | PWM_2:1 | +| P8_14 | MSS GPIO_2[11] | 53 | User LED 11 | +| P8_15 | MSS GPIO_2[12] | 53 | GPIO | +| P8_16 | MSS GPIO_2[13] | 53 | GPIO | +| P8_17 | MSS GPIO_2[14] | 53 | GPIO | +| P8_18 | MSS GPIO_2[15] | 53 | GPIO | +| P8_19 | core_pwm[0] @ 0x41500000 | n/a | PWM_2:0 | +| P8_20 | MSS GPIO_2[17] | 53 | GPIO | +| P8_21 | MSS GPIO_2[18] | 53 | GPIO | +| P8_22 | MSS GPIO_2[19] | 53 | GPIO | +| P8_23 | MSS GPIO_2[20] | 53 | GPIO | +| P8_24 | MSS GPIO_2[21] | 53 | GPIO | +| P8_25 | MSS GPIO_2[22] | 53 | GPIO | +| P8_26 | MSS GPIO_2[23] | 53 | GPIO | +| P8_27 | MSS GPIO_2[24] | 53 | GPIO | +| P8_28 | MSS GPIO_2[25] | 53 | GPIO | +| P8_29 | MSS GPIO_2[26] | 53 | GPIO | +| P8_30 | MSS GPIO_2[27] | 53 | GPIO | +| P8_31 | core_gpio[0] @ 0x41100000 | 126 | GPIO | +| P8_32 | core_gpio[1] @ 0x41100000 | 127 | GPIO | +| P8_33 | core_gpio[2] @ 0x41100000 | 128 | GPIO | +| P8_34 | core_gpio[3] @ 0x41100000 | 129 | GPIO | +| P8_35 | core_gpio[4] @ 0x41100000 | 130 | GPIO | +| P8_36 | core_gpio[5] @ 0x41100000 | 131 | GPIO | +| P8_37 | core_gpio[6] @ 0x41100000 | 132 | GPIO | +| P8_38 | core_gpio[7] @ 0x41100000 | 133 | GPIO | +| P8_39 | core_gpio[8] @ 0x41100000 | 134 | GPIO | +| P8_40 | core_gpio[9] @ 0x41100000 | 135 | GPIO | +| P8_41 | core_gpio[10] @ 0x41100000 | 136 | GPIO | +| P8_42 | core_gpio[11] @ 0x41100000 | 137 | GPIO | +| P8_43 | core_gpio[12] @ 0x41100000 | 138 | GPIO | +| P8_44 | core_gpio[13] @ 0x41100000 | 139 | GPIO | +| P8_45 | core_gpio[14] @ 0x41100000 | 140 | GPIO | +| P8_46 | core_gpio[15] @ 0x41100000 | 141 | GPIO | ## P9 Header -| Signal | Control | Description | -|--------|----------------------------|-------------| -| P9_1 | n/a | GND | -| P9_2 | n/a | GND | -| P9_3 | n/a | VCC 3.3V | -| P9_4 | n/a | VCC 3.3V | -| P9_5 | n/a | VDD 5V | -| P9_6 | n/a | VDD 5V | -| P9_7 | n/a | SYS 5V | -| P9_8 | n/a | SYS 5V | -| P9_9 | n/a | NC | -| P9_10 | n/a | SYS_RSTN | -| P9_11 | MMUART4 | UART4 RX | -| P9_12 | core_gpio[1] @ 0x41200000 | GPIO | -| P9_13 | MMUART4 | UART4 TX | -| P9_14 | core_pwm[0] @ 0x41400000 | PWM_1:0 | -| P9_15 | core_gpio[4] @ 0x41200000 | GPIO | -| P9_16 | core_pwm[1] @ 0x41400000 | PWM_1:1 | -| P9_17 | MSS SPI0 | SPI0 CS | -| P9_18 | MSS SPI0 | SPI0 DI | -| P9_19 | MSS I2C0 | I2C0 SCL | -| P9_20 | MSS I2C0 | I2C0 SDA | -| P9_21 | MSS SPI0 | SPI0 DO | -| P9_22 | MSS SPI0 | SPI0 SCLK | -| P9_23 | core_gpio[10] @ 0x41200000 | GPIO | -| P9_24 | MMUART2 | UART1 TX | -| P9_25 | core_gpio[12] @ 0x41200000 | GPIO | -| P9_26 | MMUART2 | UART2 RX | -| P9_27 | core_gpio[14] @ 0x41200000 | GPIO | -| P9_28 | MSS SPI | SPI1 CS | -| P9_29 | MSS SPI | SPI1 DO | -| P9_30 | core_gpio[17] @ 0x41200000 | GPIO | -| P9_31 | MSS SPI | SPI1 SCLK | -| P9_32 | n/a | VDD ADC | -| P9_33 | n/a | ADC input 4 | -| P9_34 | n/a | AGND | -| P9_35 | n/a | ADC input 6 | -| P9_36 | n/a | ADC input 5 | -| P9_37 | n/a | ADC input 2 | -| P9_38 | n/a | ADC input 3 | -| P9_39 | n/a | ADC input 0 | -| P9_40 | n/a | ADC input 1 | -| P9_41 | core_gpio[19] @ 0x41200000 | GPIO | -| P9_42 | core_pwm[0] @ 0x41000000 | PWM_0:0 | -| P9_43 | n/a | GND | -| P9_44 | n/a | GND | -| P9_45 | n/a | GND | -| P9_46 | n/a | GND | +| Signal | Control | Irq # | Description | +|--------|----------------------------|-------|-------------| +| P9_1 | n/a | n/a | GND | +| P9_2 | n/a | n/a | GND | +| P9_3 | n/a | n/a | VCC 3.3V | +| P9_4 | n/a | n/a | VCC 3.3V | +| P9_5 | n/a | n/a | VDD 5V | +| P9_6 | n/a | n/a | VDD 5V | +| P9_7 | n/a | n/a | SYS 5V | +| P9_8 | n/a | n/a | SYS 5V | +| P9_9 | n/a | n/a | NC | +| P9_10 | n/a | n/a | SYS_RSTN | +| P9_11 | MMUART4 | 94 | UART4 RX | +| P9_12 | core_gpio[1] @ 0x41200000 | 143 | GPIO | +| P9_13 | MMUART4 | 94 | UART4 TX | +| P9_14 | core_pwm[0] @ 0x41400000 | n/a | PWM_1:0 | +| P9_15 | core_gpio[4] @ 0x41200000 | 146 | GPIO | +| P9_16 | core_pwm[1] @ 0x41400000 | n/a | PWM_1:1 | +| P9_17 | MSS SPI0 | 54 | SPI0 CS | +| P9_18 | MSS SPI0 | 54 | SPI0 DI | +| P9_19 | MSS I2C0 | 58 | I2C0 SCL | +| P9_20 | MSS I2C0 | 58 | I2C0 SDA | +| P9_21 | MSS SPI0 | 54 | SPI0 DO | +| P9_22 | MSS SPI0 | 54 | SPI0 SCLK | +| P9_23 | core_gpio[10] @ 0x41200000 | 152 | GPIO | +| P9_24 | MMUART2 | 92 | UART1 TX | +| P9_25 | core_gpio[12] @ 0x41200000 | 154 | GPIO | +| P9_26 | MMUART2 | 92 | UART2 RX | +| P9_27 | core_gpio[14] @ 0x41200000 | 156 | GPIO | +| P9_28 | MSS SPI1 | 55 | SPI1 CS | +| P9_29 | MSS SPI1 | 55 | SPI1 DO | +| P9_30 | core_gpio[17] @ 0x41200000 | 159 | GPIO | +| P9_31 | MSS SPI1 | 55 | SPI1 SCLK | +| P9_32 | n/a | n/a | VDD ADC | +| P9_33 | n/a | n/a | ADC input 4 | +| P9_34 | n/a | n/a | AGND | +| P9_35 | n/a | n/a | ADC input 6 | +| P9_36 | n/a | n/a | ADC input 5 | +| P9_37 | n/a | n/a | ADC input 2 | +| P9_38 | n/a | n/a | ADC input 3 | +| P9_39 | n/a | n/a | ADC input 0 | +| P9_40 | n/a | n/a | ADC input 1 | +| P9_41 | core_gpio[19] @ 0x41200000 | 161 | GPIO | +| P9_42 | core_pwm[0] @ 0x41000000 | n/a | PWM_0:0 | +| P9_43 | n/a | n/a | GND | +| P9_44 | n/a | n/a | GND | +| P9_45 | n/a | n/a | GND | +| P9_46 | n/a | n/a | GND | diff --git a/sources/FPGA-design/script_support/components/CAPE/GPIOS/ADD_CAPE.tcl b/sources/FPGA-design/script_support/components/CAPE/GPIOS/ADD_CAPE.tcl index 331f13f79ed0c6d11b655030cbf6e6c5ec64e0ca..62de4820177dd1c2c612c554c2016e33a984bdcf 100644 --- a/sources/FPGA-design/script_support/components/CAPE/GPIOS/ADD_CAPE.tcl +++ b/sources/FPGA-design/script_support/components/CAPE/GPIOS/ADD_CAPE.tcl @@ -4,12 +4,12 @@ puts "======== Add cape option: GPIOS ========" # Build cape's submodules #------------------------------------------------------------------------------- source script_support/components/CAPE/GPIOS/APB_BUS_CONVERTER.tcl +source script_support/components/CAPE/DEFAULT/CoreAPB3_CAPE.tcl source script_support/components/CAPE/GPIOS/CoreGPIO_LCD.tcl -source script_support/components/CAPE/GPIOS/P8_GPIO_LCD.tcl +source script_support/components/CAPE/GPIOS/P8_GPIO_UPPER.tcl source script_support/components/CAPE/GPIOS/CoreGPIO_P9.tcl source script_support/components/CAPE/GPIOS/P9_GPIO.tcl source script_support/components/CAPE/GPIOS/CAPE_DEFAULT_GPIOS.tcl -#source script_support/components/CAPE/GPIOS/CAPE_PWM.tcl source script_support/components/CAPE/GPIOS/CAPE.tcl #------------------------------------------------------------------------------- @@ -20,11 +20,10 @@ set sd_name ${top_level_name} #------------------------------------------------------------------------------- # Cape pins #------------------------------------------------------------------------------- -#sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_19} -port_direction {OUT} - sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_11} -port_direction {IN} sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_13} -port_direction {OUT} + #------------------------------------------------------------------------------- # Instantiate. #------------------------------------------------------------------------------- @@ -46,9 +45,21 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:GPIO_2_F2M" sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:GPIO_2_M2F" "CAPE:GPIO_OUT"} sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:GPIO_2_OE_M2F" "CAPE:GPIO_OE"} - sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE:APB_SLAVE" "BVF_RISCV_SUBSYSTEM:CAPE_APB_MTARGET"} +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_E} +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_A} +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_B} +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_C} +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_D} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_A" "CAPE:INT_A"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_B" "CAPE:INT_B"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_C" "CAPE:INT_C"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_D" "CAPE:INT_D"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_E" "CAPE:INT_E"} + + + sd_delete_ports -sd_name ${sd_name} -port_names {P9_11} sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MMUART_4_RXD} -value {GND} sd_delete_ports -sd_name ${sd_name} -port_names {P9_13} diff --git a/sources/FPGA-design/script_support/components/CAPE/GPIOS/CAPE.tcl b/sources/FPGA-design/script_support/components/CAPE/GPIOS/CAPE.tcl index 8e1424285f5dfcb04fee020d7882f56d17c651ce..82405d610c58df2eaa0ddd092ac3eb200591aacd 100644 --- a/sources/FPGA-design/script_support/components/CAPE/GPIOS/CAPE.tcl +++ b/sources/FPGA-design/script_support/components/CAPE/GPIOS/CAPE.tcl @@ -1,138 +1,233 @@ -# Creating SmartDesign CAPE +# Creating SmartDesign "CAPE" set sd_name {CAPE} create_smartdesign -sd_name ${sd_name} -#------------------------------------------------------------------------------- -# Create APB Bus -#------------------------------------------------------------------------------- -create_and_configure_core -core_vlnv {Actel:DirectCore:CoreAPB3:4.2.100} -component_name {CoreAPB3_CAPE} -params {\ -"APBSLOT0ENABLE:false" "APBSLOT1ENABLE:true" "APBSLOT2ENABLE:true" "APBSLOT3ENABLE:false" \ -"APBSLOT4ENABLE:false" "APBSLOT5ENABLE:false" "APBSLOT6ENABLE:false" "APBSLOT7ENABLE:false" \ -"APBSLOT8ENABLE:false" "APBSLOT9ENABLE:false" "APBSLOT10ENABLE:false" "APBSLOT11ENABLE:false" \ -"APBSLOT12ENABLE:false" "APBSLOT13ENABLE:false" "APBSLOT14ENABLE:false" "APBSLOT15ENABLE:false" \ -"APB_DWIDTH:32" \ -"IADDR_OPTION:0" \ -"MADDR_BITS:24" \ -"SC_0:false" "SC_1:false" "SC_2:false" "SC_3:false" "SC_4:false" "SC_5:false" \ -"SC_6:false" "SC_7:false" "SC_8:false" "SC_9:false" "SC_10:false" "SC_11:false" \ -"SC_12:false" "SC_13:false" "SC_14:false" \ -"SC_15:false" \ -"UPR_NIBBLE_POSN:5"} - -sd_instantiate_component -sd_name {CAPE} -component_name {CoreAPB3_CAPE} -instance_name {} - -#------------------------------------------------------------------------------- -# Create APB Bus Converter -#------------------------------------------------------------------------------- +# Disable auto promotion of pins of type 'pad' +auto_promote_pad_pins -promote_all 0 + +# Create top level Scalar Ports +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_SLAVE_SLAVE_PENABLE} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_SLAVE_SLAVE_PSEL} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_SLAVE_SLAVE_PWRITE} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {PCLK} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {PRESETN} -port_direction {IN} + +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_SLAVE_SLAVE_PREADY} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_SLAVE_SLAVE_PSLVERR} -port_direction {OUT} + +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN10_USER_LED_7} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN11_USER_LED_8} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN12_USER_LED_9} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN13_USER_LED_10} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN14_USER_LED_11} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN15} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN16} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN17} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN18} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN19} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN20} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN21} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN22} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN23} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN24} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN25} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN26} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN27} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN28} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN29} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN30} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN31} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN32} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN33} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN34} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN35} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN36} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN37} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN38} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN39} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN3_USER_LED_0} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN40} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN41} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN42} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN43} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN44} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN45} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN46} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN4_USER_LED_1} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN5_USER_LED_2} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN6_USER_LED_3} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN7_USER_LED_4} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN8_USER_LED_5} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN9_USER_LED_6} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN11} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN12} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN13} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN14} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN15} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN16} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN17} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN18} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN21} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN22} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN23} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN24} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN25} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN26} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN27} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN28} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN29} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN30} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN31} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN41} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN42} -port_direction {INOUT} -port_is_pad {1} + +# Create top level Bus Ports +sd_create_bus_port -sd_name ${sd_name} -port_name {APB_SLAVE_SLAVE_PADDR} -port_direction {IN} -port_range {[31:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {APB_SLAVE_SLAVE_PWDATA} -port_direction {IN} -port_range {[31:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {GPIO_OE} -port_direction {IN} -port_range {[27:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {GPIO_OUT} -port_direction {IN} -port_range {[27:0]} + +sd_create_bus_port -sd_name ${sd_name} -port_name {APB_SLAVE_SLAVE_PRDATA} -port_direction {OUT} -port_range {[31:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {GPIO_IN} -port_direction {OUT} -port_range {[27:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {INT_A} -port_direction {OUT} -port_range {[7:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {INT_B} -port_direction {OUT} -port_range {[7:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {INT_C} -port_direction {OUT} -port_range {[7:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {INT_D} -port_direction {OUT} -port_range {[7:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {INT_E} -port_direction {OUT} -port_range {[7:0]} + + +# Create top level Bus interface Ports +sd_create_bif_port -sd_name ${sd_name} -port_name {APB_SLAVE} -port_bif_vlnv {AMBA:AMBA2:APB:r0p0} -port_bif_role {slave} -port_bif_mapping {\ +"PADDR:APB_SLAVE_SLAVE_PADDR" \ +"PSELx:APB_SLAVE_SLAVE_PSEL" \ +"PENABLE:APB_SLAVE_SLAVE_PENABLE" \ +"PWRITE:APB_SLAVE_SLAVE_PWRITE" \ +"PRDATA:APB_SLAVE_SLAVE_PRDATA" \ +"PWDATA:APB_SLAVE_SLAVE_PWDATA" \ +"PREADY:APB_SLAVE_SLAVE_PREADY" \ +"PSLVERR:APB_SLAVE_SLAVE_PSLVERR" } + +sd_create_pin_slices -sd_name ${sd_name} -pin_name {INT_E} -pin_slices {[4:0]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {INT_E} -pin_slices {[7:5]} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {INT_E[7:5]} -value {GND} +# Add APB_BUS_CONVERTER_0 instance sd_instantiate_component -sd_name ${sd_name} -component_name {APB_BUS_CONVERTER} -instance_name {APB_BUS_CONVERTER_0} -#------------------------------------------------------------------------------- -# Add Default Cape GPIOs -#------------------------------------------------------------------------------- + + +# Add CAPE_DEFAULT_GPIOS instance sd_instantiate_component -sd_name ${sd_name} -component_name {CAPE_DEFAULT_GPIOS} -instance_name {CAPE_DEFAULT_GPIOS} -sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CAPE_DEFAULT_GPIOS:GPIO_OUT} -port_name {} -sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CAPE_DEFAULT_GPIOS:GPIO_OE} -port_name {} -sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CAPE_DEFAULT_GPIOS:GPIO_IN} -port_name {} - -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_0_PAD} -new_port_name {P8_PIN3_USER_LED_0} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_1_PAD} -new_port_name {P8_PIN4_USER_LED_1} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_2_PAD} -new_port_name {P8_PIN5_USER_LED_2} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_3_PAD} -new_port_name {P8_PIN6_USER_LED_3} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_4_PAD} -new_port_name {P8_PIN7_USER_LED_4} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_5_PAD} -new_port_name {P8_PIN8_USER_LED_5} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_6_PAD} -new_port_name {P8_PIN9_USER_LED_6} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_7_PAD} -new_port_name {P8_PIN10_USER_LED_7} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_8_PAD} -new_port_name {P8_PIN11_USER_LED_8} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_9_PAD} -new_port_name {P8_PIN12_USER_LED_9} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_10_PAD} -new_port_name {P8_PIN13_USER_LED_10} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_11_PAD} -new_port_name {P8_PIN14_USER_LED_11} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_12_PAD} -new_port_name {P8_PIN15} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_13_PAD} -new_port_name {P8_PIN16} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_14_PAD} -new_port_name {P8_PIN17} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_15_PAD} -new_port_name {P8_PIN18} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_16_PAD} -new_port_name {P8_PIN19} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_17_PAD} -new_port_name {P8_PIN20} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_18_PAD} -new_port_name {P8_PIN21} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_19_PAD} -new_port_name {P8_PIN22} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_20_PAD} -new_port_name {P8_PIN23} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_21_PAD} -new_port_name {P8_PIN24} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_22_PAD} -new_port_name {P8_PIN25} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_23_PAD} -new_port_name {P8_PIN26} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_24_PAD} -new_port_name {P8_PIN27} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_25_PAD} -new_port_name {P8_PIN28} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_26_PAD} -new_port_name {P8_PIN29} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_27_PAD} -new_port_name {P8_PIN30} - - -#------------------------------------------------------------------------------- -# P8 -#------------------------------------------------------------------------------- + + +# Add CoreAPB3_CAPE_0 instance +sd_instantiate_component -sd_name ${sd_name} -component_name {CoreAPB3_CAPE} -instance_name {CoreAPB3_CAPE_0} + + + +# Add P8_GPIO_UPPER_0 instance sd_instantiate_component -sd_name ${sd_name} -component_name {P8_GPIO_UPPER} -instance_name {P8_GPIO_UPPER_0} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {P8_GPIO_UPPER_0:INT} -pin_slices {[15:8]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {P8_GPIO_UPPER_0:INT} -pin_slices {[7:0]} -sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {P8_GPIO_UPPER_0:PRESETN} -port_name {} -sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {P8_GPIO_UPPER_0:PCLK} -port_name {} - -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_0_PAD} -new_port_name {P8_PIN31} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_1_PAD} -new_port_name {P8_PIN32} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_2_PAD} -new_port_name {P8_PIN33} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_3_PAD} -new_port_name {P8_PIN34} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_4_PAD} -new_port_name {P8_PIN35} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_5_PAD} -new_port_name {P8_PIN36} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_6_PAD} -new_port_name {P8_PIN37} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_7_PAD} -new_port_name {P8_PIN38} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_8_PAD} -new_port_name {P8_PIN39} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_9_PAD} -new_port_name {P8_PIN40} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_10_PAD} -new_port_name {P8_PIN41} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_11_PAD} -new_port_name {P8_PIN42} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_12_PAD} -new_port_name {P8_PIN43} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_13_PAD} -new_port_name {P8_PIN44} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_14_PAD} -new_port_name {P8_PIN45} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_15_PAD} -new_port_name {P8_PIN46} - -#------------------------------------------------------------------------------- -# P9 -#------------------------------------------------------------------------------- -sd_instantiate_component -sd_name ${sd_name} -component_name {P9_GPIO} -instance_name {P9_GPIO_0} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_0_PAD} -new_port_name {P9_PIN11} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_1_PAD} -new_port_name {P9_PIN12} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_2_PAD} -new_port_name {P9_PIN13} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_3_PAD} -new_port_name {P9_PIN14} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_4_PAD} -new_port_name {P9_PIN15} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_5_PAD} -new_port_name {P9_PIN16} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_6_PAD} -new_port_name {P9_PIN17} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_7_PAD} -new_port_name {P9_PIN18} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_8_PAD} -new_port_name {P9_PIN21} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_9_PAD} -new_port_name {P9_PIN22} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_10_PAD} -new_port_name {P9_PIN23} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_11_PAD} -new_port_name {P9_PIN24} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_12_PAD} -new_port_name {P9_PIN25} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_13_PAD} -new_port_name {P9_PIN26} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_14_PAD} -new_port_name {P9_PIN27} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_15_PAD} -new_port_name {P9_PIN28} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_16_PAD} -new_port_name {P9_PIN29} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_17_PAD} -new_port_name {P9_PIN30} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_18_PAD} -new_port_name {P9_PIN31} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_19_PAD} -new_port_name {P9_PIN41} -sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_20_PAD} -new_port_name {P9_PIN42} - -#------------------------------------------------------------------------------- -# Connections -#------------------------------------------------------------------------------- -sd_connect_pins -sd_name ${sd_name} -pin_names {"PRESETN" "P9_GPIO_0:PRESETN"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"PCLK" "P9_GPIO_0:PCLK"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:APB_bif" "CoreAPB3_CAPE_0:APBmslave1"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:APB_bif" "CoreAPB3_CAPE_0:APBmslave2"} - -sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {APB_BUS_CONVERTER_0:APB_SLAVE} -port_name {} -sd_connect_pins -sd_name ${sd_name} -pin_names {"APB_BUS_CONVERTER_0:APB_MASTER" "CoreAPB3_CAPE_0:APB3mmaster"} +# Add P9_GPIO_0 instance +sd_instantiate_component -sd_name ${sd_name} -component_name {P9_GPIO} -instance_name {P9_GPIO_0} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {P9_GPIO_0:INT} -pin_slices {[15:8]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {P9_GPIO_0:INT} -pin_slices {[20:16]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {P9_GPIO_0:INT} -pin_slices {[7:0]} + + + +# Add scalar net connections +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_0_PAD" "P8_PIN3_USER_LED_0" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_10_PAD" "P8_PIN13_USER_LED_10" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_11_PAD" "P8_PIN14_USER_LED_11" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_12_PAD" "P8_PIN15" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_13_PAD" "P8_PIN16" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_14_PAD" "P8_PIN17" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_15_PAD" "P8_PIN18" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_16_PAD" "P8_PIN19" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_17_PAD" "P8_PIN20" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_18_PAD" "P8_PIN21" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_19_PAD" "P8_PIN22" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_1_PAD" "P8_PIN4_USER_LED_1" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_20_PAD" "P8_PIN23" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_21_PAD" "P8_PIN24" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_22_PAD" "P8_PIN25" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_23_PAD" "P8_PIN26" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_24_PAD" "P8_PIN27" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_25_PAD" "P8_PIN28" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_26_PAD" "P8_PIN29" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_27_PAD" "P8_PIN30" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_2_PAD" "P8_PIN5_USER_LED_2" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_3_PAD" "P8_PIN6_USER_LED_3" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_4_PAD" "P8_PIN7_USER_LED_4" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_5_PAD" "P8_PIN8_USER_LED_5" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_6_PAD" "P8_PIN9_USER_LED_6" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_7_PAD" "P8_PIN10_USER_LED_7" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_8_PAD" "P8_PIN11_USER_LED_8" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_9_PAD" "P8_PIN12_USER_LED_9" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:GPIO_0_PAD" "P8_PIN31" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:GPIO_10_PAD" "P8_PIN41" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:GPIO_11_PAD" "P8_PIN42" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:GPIO_12_PAD" "P8_PIN43" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:GPIO_13_PAD" "P8_PIN44" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:GPIO_14_PAD" "P8_PIN45" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:GPIO_15_PAD" "P8_PIN46" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:GPIO_1_PAD" "P8_PIN32" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:GPIO_2_PAD" "P8_PIN33" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:GPIO_3_PAD" "P8_PIN34" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:GPIO_4_PAD" "P8_PIN35" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:GPIO_5_PAD" "P8_PIN36" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:GPIO_6_PAD" "P8_PIN37" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:GPIO_7_PAD" "P8_PIN38" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:GPIO_8_PAD" "P8_PIN39" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:GPIO_9_PAD" "P8_PIN40" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:PCLK" "P9_GPIO_0:PCLK" "PCLK" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:PRESETN" "P9_GPIO_0:PRESETN" "PRESETN" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:GPIO_0_PAD" "P9_PIN11" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:GPIO_10_PAD" "P9_PIN23" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:GPIO_11_PAD" "P9_PIN24" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:GPIO_12_PAD" "P9_PIN25" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:GPIO_13_PAD" "P9_PIN26" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:GPIO_14_PAD" "P9_PIN27" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:GPIO_15_PAD" "P9_PIN28" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:GPIO_16_PAD" "P9_PIN29" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:GPIO_17_PAD" "P9_PIN30" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:GPIO_18_PAD" "P9_PIN31" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:GPIO_19_PAD" "P9_PIN41" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:GPIO_1_PAD" "P9_PIN12" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:GPIO_20_PAD" "P9_PIN42" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:GPIO_2_PAD" "P9_PIN13" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:GPIO_3_PAD" "P9_PIN14" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:GPIO_4_PAD" "P9_PIN15" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:GPIO_5_PAD" "P9_PIN16" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:GPIO_6_PAD" "P9_PIN17" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:GPIO_7_PAD" "P9_PIN18" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:GPIO_8_PAD" "P9_PIN21" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:GPIO_9_PAD" "P9_PIN22" } + +# Add bus net connections +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_IN" "GPIO_IN" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_OE" "GPIO_OE" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_OUT" "GPIO_OUT" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"INT_A" "P8_GPIO_UPPER_0:INT[7:0]" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"INT_B" "P8_GPIO_UPPER_0:INT[15:8]" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"INT_C" "P9_GPIO_0:INT[7:0]" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"INT_D" "P9_GPIO_0:INT[15:8]" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"INT_E[4:0]" "P9_GPIO_0:INT[20:16]" } + +# Add bus interface net connections +sd_connect_pins -sd_name ${sd_name} -pin_names {"APB_BUS_CONVERTER_0:APB_MASTER" "CoreAPB3_CAPE_0:APB3mmaster" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"APB_BUS_CONVERTER_0:APB_SLAVE" "APB_SLAVE" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreAPB3_CAPE_0:APBmslave1" "P8_GPIO_UPPER_0:APB_bif" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreAPB3_CAPE_0:APBmslave2" "P9_GPIO_0:APB_bif" } # Re-enable auto promotion of pins of type 'pad' auto_promote_pad_pins -promote_all 1 -# Save the smartDesign +# Save the SmartDesign save_smartdesign -sd_name ${sd_name} -# Generate SmartDesign CAPE +# Generate SmartDesign "CAPE" generate_component -component_name ${sd_name} diff --git a/sources/FPGA-design/script_support/components/CAPE/GPIOS/CAPE_PWM.tcl b/sources/FPGA-design/script_support/components/CAPE/GPIOS/CAPE_PWM.tcl deleted file mode 100644 index aaffab1d8a949287fc27347eadefabe99eccd13d..0000000000000000000000000000000000000000 --- a/sources/FPGA-design/script_support/components/CAPE/GPIOS/CAPE_PWM.tcl +++ /dev/null @@ -1,72 +0,0 @@ -# Creating SmartDesign CAPE_PWM -set sd_name {CAPE_PWM} -create_smartdesign -sd_name ${sd_name} - - -create_and_configure_core -core_vlnv {Actel:DirectCore:corepwm:4.5.100} -component_name {corepwm_C1} -params {\ -"APB_DWIDTH:32" "CONFIG_MODE:0" \ -"DAC_MODE1:false" "DAC_MODE2:false" "DAC_MODE3:false" "DAC_MODE4:false" "DAC_MODE5:false" \ -"DAC_MODE6:false" "DAC_MODE7:false" "DAC_MODE8:false" "DAC_MODE9:false" "DAC_MODE10:false" \ -"DAC_MODE11:false" "DAC_MODE12:false" "DAC_MODE13:false" "DAC_MODE14:false" "DAC_MODE15:false" \ -"DAC_MODE16:false" \ -"FIXED_PERIOD:1" "FIXED_PERIOD_EN:false" "FIXED_PRESCALE:0" "FIXED_PRESCALE_EN:false" \ -"FIXED_PWM_NEGEDGE1:0" "FIXED_PWM_NEGEDGE2:0" "FIXED_PWM_NEGEDGE3:0" "FIXED_PWM_NEGEDGE4:0" "FIXED_PWM_NEGEDGE5:0" \ -"FIXED_PWM_NEGEDGE6:0" "FIXED_PWM_NEGEDGE7:0" "FIXED_PWM_NEGEDGE8:0" "FIXED_PWM_NEGEDGE9:0" "FIXED_PWM_NEGEDGE10:0" \ -"FIXED_PWM_NEGEDGE11:0" "FIXED_PWM_NEGEDGE12:0" "FIXED_PWM_NEGEDGE13:0" "FIXED_PWM_NEGEDGE14:0" "FIXED_PWM_NEGEDGE15:0" \ -"FIXED_PWM_NEGEDGE16:0" \ -"FIXED_PWM_NEG_EN1:false" "FIXED_PWM_NEG_EN2:false" "FIXED_PWM_NEG_EN3:false" "FIXED_PWM_NEG_EN4:false" "FIXED_PWM_NEG_EN5:false" \ -"FIXED_PWM_NEG_EN6:false" "FIXED_PWM_NEG_EN7:false" "FIXED_PWM_NEG_EN8:false" "FIXED_PWM_NEG_EN9:false" "FIXED_PWM_NEG_EN10:false" \ -"FIXED_PWM_NEG_EN11:false" "FIXED_PWM_NEG_EN12:false" "FIXED_PWM_NEG_EN13:false" "FIXED_PWM_NEG_EN14:false" "FIXED_PWM_NEG_EN15:false" \ -"FIXED_PWM_NEG_EN16:false" \ -"FIXED_PWM_POSEDGE1:0" "FIXED_PWM_POSEDGE2:0" "FIXED_PWM_POSEDGE3:0" "FIXED_PWM_POSEDGE4:0" "FIXED_PWM_POSEDGE5:0" \ -"FIXED_PWM_POSEDGE6:0" "FIXED_PWM_POSEDGE7:0" "FIXED_PWM_POSEDGE8:0" "FIXED_PWM_POSEDGE9:0" "FIXED_PWM_POSEDGE10:0" \ -"FIXED_PWM_POSEDGE11:0" "FIXED_PWM_POSEDGE12:0" "FIXED_PWM_POSEDGE13:0" "FIXED_PWM_POSEDGE14:0" "FIXED_PWM_POSEDGE15:0" \ -"FIXED_PWM_POSEDGE16:0" \ -"FIXED_PWM_POS_EN1:false" "FIXED_PWM_POS_EN2:false" "FIXED_PWM_POS_EN3:false" "FIXED_PWM_POS_EN4:false" "FIXED_PWM_POS_EN5:false" \ -"FIXED_PWM_POS_EN6:true" "FIXED_PWM_POS_EN7:true" "FIXED_PWM_POS_EN8:true" "FIXED_PWM_POS_EN9:true" "FIXED_PWM_POS_EN10:true" \ -"FIXED_PWM_POS_EN11:true" "FIXED_PWM_POS_EN12:true" "FIXED_PWM_POS_EN13:true" "FIXED_PWM_POS_EN14:true" "FIXED_PWM_POS_EN15:true" \ -"FIXED_PWM_POS_EN16:true" \ -"PWM_NUM:4" \ -"PWM_STRETCH_VALUE1:false" "PWM_STRETCH_VALUE2:false" "PWM_STRETCH_VALUE3:false" "PWM_STRETCH_VALUE4:false" "PWM_STRETCH_VALUE5:false" \ -"PWM_STRETCH_VALUE6:false" "PWM_STRETCH_VALUE7:false" "PWM_STRETCH_VALUE8:false" "PWM_STRETCH_VALUE9:false" "PWM_STRETCH_VALUE10:false" \ -"PWM_STRETCH_VALUE11:false" "PWM_STRETCH_VALUE12:false" "PWM_STRETCH_VALUE13:false" "PWM_STRETCH_VALUE14:false" "PWM_STRETCH_VALUE15:false" \ -"PWM_STRETCH_VALUE16:false" \ -"SEPARATE_PWM_CLK:false" \ -"SHADOW_REG_EN1:false" "SHADOW_REG_EN2:false" "SHADOW_REG_EN3:false" "SHADOW_REG_EN4:false" "SHADOW_REG_EN5:false" \ -"SHADOW_REG_EN6:false" "SHADOW_REG_EN7:false" "SHADOW_REG_EN8:false" "SHADOW_REG_EN9:false" \ -"SHADOW_REG_EN10:false" "SHADOW_REG_EN11:false" "SHADOW_REG_EN12:false" "SHADOW_REG_EN13:false" \ -"SHADOW_REG_EN14:false" "SHADOW_REG_EN15:false" "SHADOW_REG_EN16:false" \ -"TACHINT_ACT_LEVEL:false" \ -"TACH_EDGE1:false" "TACH_EDGE2:false" "TACH_EDGE3:false" "TACH_EDGE4:false" "TACH_EDGE5:false" \ -"TACH_EDGE6:false" "TACH_EDGE7:false" "TACH_EDGE8:false" "TACH_EDGE9:false" "TACH_EDGE10:false" \ -"TACH_EDGE11:false" "TACH_EDGE12:false" "TACH_EDGE13:false" "TACH_EDGE14:false" "TACH_EDGE15:false" \ -"TACH_EDGE16:false" \ -"TACH_NUM:1"} - -sd_instantiate_component -sd_name ${sd_name} -component_name {corepwm_C1} -instance_name {} - -sd_create_pin_slices -sd_name ${sd_name} -pin_name {corepwm_C1_0:PWM} -pin_slices {"[3:3]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {corepwm_C1_0:PWM} -pin_slices {"[2:2]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {corepwm_C1_0:PWM} -pin_slices {"[1:1]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {corepwm_C1_0:PWM} -pin_slices {"[0:0]"} - -sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {corepwm_C1_0:APBslave} -port_name {} -sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {corepwm_C1_0:PRESETN} -port_name {} -sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {corepwm_C1_0:PCLK} -port_name {} -sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {corepwm_C1_0:PWM[0:0]} -port_name {} -sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {corepwm_C1_0:PWM[3:3]} -port_name {} -sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {corepwm_C1_0:PWM[2:2]} -port_name {} -sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {corepwm_C1_0:PWM[1:1]} -port_name {} - -sd_rename_port -sd_name ${sd_name} -current_port_name {PWM_2} -new_port_name {PWM_3} -sd_rename_port -sd_name ${sd_name} -current_port_name {PWM_1} -new_port_name {PWM_2} -sd_rename_port -sd_name ${sd_name} -current_port_name {PWM_0} -new_port_name {PWM_1} -sd_rename_port -sd_name ${sd_name} -current_port_name {PWM} -new_port_name {PWM_0} - - -# Re-enable auto promotion of pins of type 'pad' -auto_promote_pad_pins -promote_all 1 -# Save the smartDesign -save_smartdesign -sd_name ${sd_name} -# Generate SmartDesign CAPE_PWM -generate_component -component_name ${sd_name} diff --git a/sources/FPGA-design/script_support/components/CAPE/GPIOS/CoreAPB3_CAPE.tcl b/sources/FPGA-design/script_support/components/CAPE/GPIOS/CoreAPB3_CAPE.tcl new file mode 100644 index 0000000000000000000000000000000000000000..ab9b81e998527110100572f6008a0373b7ecbfe8 --- /dev/null +++ b/sources/FPGA-design/script_support/components/CAPE/GPIOS/CoreAPB3_CAPE.tcl @@ -0,0 +1,42 @@ +# Exporting Component Description of CoreAPB3_CAPE to TCL +# Family: PolarFireSoC +# Part Number: MPFS025T-FCVG484E +# Create and Configure the core component CoreAPB3_CAPE +create_and_configure_core -core_vlnv {Actel:DirectCore:CoreAPB3:4.2.100} -component_name {CoreAPB3_CAPE} -params {\ +"APB_DWIDTH:32" \ +"APBSLOT0ENABLE:true" \ +"APBSLOT1ENABLE:true" \ +"APBSLOT2ENABLE:true" \ +"APBSLOT3ENABLE:false" \ +"APBSLOT4ENABLE:true" \ +"APBSLOT5ENABLE:true" \ +"APBSLOT6ENABLE:false" \ +"APBSLOT7ENABLE:false" \ +"APBSLOT8ENABLE:false" \ +"APBSLOT9ENABLE:false" \ +"APBSLOT10ENABLE:false" \ +"APBSLOT11ENABLE:false" \ +"APBSLOT12ENABLE:false" \ +"APBSLOT13ENABLE:false" \ +"APBSLOT14ENABLE:false" \ +"APBSLOT15ENABLE:false" \ +"IADDR_OPTION:0" \ +"MADDR_BITS:24" \ +"SC_0:false" \ +"SC_1:false" \ +"SC_2:false" \ +"SC_3:false" \ +"SC_4:false" \ +"SC_5:false" \ +"SC_6:false" \ +"SC_7:false" \ +"SC_8:false" \ +"SC_9:false" \ +"SC_10:false" \ +"SC_11:false" \ +"SC_12:false" \ +"SC_13:false" \ +"SC_14:false" \ +"SC_15:false" \ +"UPR_NIBBLE_POSN:5" } +# Exporting Component Description of CoreAPB3_CAPE to TCL done diff --git a/sources/FPGA-design/script_support/components/CAPE/GPIOS/P8_GPIO_LCD.tcl b/sources/FPGA-design/script_support/components/CAPE/GPIOS/P8_GPIO_LCD.tcl deleted file mode 100644 index d14a5aeac101fc0be8e7a50715be09ee78dcf8e8..0000000000000000000000000000000000000000 --- a/sources/FPGA-design/script_support/components/CAPE/GPIOS/P8_GPIO_LCD.tcl +++ /dev/null @@ -1,174 +0,0 @@ -# Creating SmartDesign P8_GPIO_UPPER -set sd_name {P8_GPIO_UPPER} -create_smartdesign -sd_name ${sd_name} - -auto_promote_pad_pins -promote_all 1 - -# Add GPIO BIBUFs -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_0_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_1_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_2_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_3_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_4_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_5_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_6_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_7_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_8_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_9_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_10_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_11_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_12_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_13_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_14_BIBUF} -sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_15_BIBUF} - - -sd_instantiate_component -sd_name ${sd_name} -component_name {CoreGPIO_P8_UPPER} -instance_name {} - -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[15:15]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[14:14]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[13:13]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[12:12]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[11:11]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[10:10]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[9:9]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[8:8]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[7:7]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[6:6]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[5:5]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[4:4]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[3:3]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[2:2]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[1:1]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[0:0]"} - -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[15:15]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[14:14]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[13:13]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[12:12]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[11:11]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[10:10]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[9:9]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[8:8]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[7:7]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[6:6]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[5:5]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[4:4]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[3:3]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[2:2]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[1:1]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[0:0]"} - -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[15:15]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[14:14]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[13:13]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[12:12]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[11:11]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[10:10]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[9:9]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[8:8]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[7:7]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[6:6]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[5:5]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[4:4]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[3:3]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[2:2]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[1:1]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[0:0]"} - - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[0:0]" "GPIO_0_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[0:0]" "GPIO_0_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[0:0]" "GPIO_0_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[1:1]" "GPIO_1_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[1:1]" "GPIO_1_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[1:1]" "GPIO_1_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[2:2]" "GPIO_2_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[2:2]" "GPIO_2_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[2:2]" "GPIO_2_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[3:3]" "GPIO_3_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[3:3]" "GPIO_3_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[3:3]" "GPIO_3_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[4:4]" "GPIO_4_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[4:4]" "GPIO_4_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[4:4]" "GPIO_4_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[5:5]" "GPIO_5_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[5:5]" "GPIO_5_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[5:5]" "GPIO_5_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[6:6]" "GPIO_6_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[6:6]" "GPIO_6_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[6:6]" "GPIO_6_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[7:7]" "GPIO_7_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[7:7]" "GPIO_7_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[7:7]" "GPIO_7_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[8:8]" "GPIO_8_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[8:8]" "GPIO_8_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[8:8]" "GPIO_8_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[9:9]" "GPIO_9_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[9:9]" "GPIO_9_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[9:9]" "GPIO_9_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[10:10]" "GPIO_10_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[10:10]" "GPIO_10_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[10:10]" "GPIO_10_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[11:11]" "GPIO_11_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[11:11]" "GPIO_11_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[11:11]" "GPIO_11_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[12:12]" "GPIO_12_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[12:12]" "GPIO_12_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[12:12]" "GPIO_12_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[13:13]" "GPIO_13_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[13:13]" "GPIO_13_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[13:13]" "GPIO_13_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[14:14]" "GPIO_14_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[14:14]" "GPIO_14_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[14:14]" "GPIO_14_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[15:15]" "GPIO_15_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[15:15]" "GPIO_15_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[15:15]" "GPIO_15_BIBUF:E"} - -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD} -new_port_name {GPIO_0_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_0} -new_port_name {GPIO_1_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_1} -new_port_name {GPIO_2_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_2} -new_port_name {GPIO_3_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_3} -new_port_name {GPIO_4_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_4} -new_port_name {GPIO_5_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_5} -new_port_name {GPIO_6_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_6} -new_port_name {GPIO_7_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_7} -new_port_name {GPIO_8_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_8} -new_port_name {GPIO_9_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_9} -new_port_name {GPIO_10_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_10} -new_port_name {GPIO_11_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_11} -new_port_name {GPIO_12_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_12} -new_port_name {GPIO_13_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_13} -new_port_name {GPIO_14_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_14} -new_port_name {GPIO_15_PAD} - - -sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:PRESETN} -port_name {} -sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:PCLK} -port_name {} -sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:APB_bif} -port_name {} - -sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_P8_UPPER_0:INT} - - -# Re-enable auto promotion of pins of type 'pad' -auto_promote_pad_pins -promote_all 1 -# Save the smartDesign -save_smartdesign -sd_name ${sd_name} -# Generate SmartDesign P8_GPIO_UPPER -generate_component -component_name ${sd_name} diff --git a/sources/FPGA-design/script_support/components/CAPE/GPIOS/P8_GPIO_UPPER.tcl b/sources/FPGA-design/script_support/components/CAPE/GPIOS/P8_GPIO_UPPER.tcl new file mode 100644 index 0000000000000000000000000000000000000000..c162d804156e0190274d77127a0241de7f353bfb --- /dev/null +++ b/sources/FPGA-design/script_support/components/CAPE/GPIOS/P8_GPIO_UPPER.tcl @@ -0,0 +1,266 @@ +# Creating SmartDesign "P8_GPIO_UPPER" +set sd_name {P8_GPIO_UPPER} +create_smartdesign -sd_name ${sd_name} + +# Disable auto promotion of pins of type 'pad' +auto_promote_pad_pins -promote_all 0 + +# Create top level Scalar Ports +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_bif_PENABLE} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_bif_PSEL} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_bif_PWRITE} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {PCLK} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {PRESETN} -port_direction {IN} + +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_bif_PREADY} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_bif_PSLVERR} -port_direction {OUT} + +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_0_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_10_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_11_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_12_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_13_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_14_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_15_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_1_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_2_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_3_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_4_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_5_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_6_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_7_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_8_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_9_PAD} -port_direction {INOUT} -port_is_pad {1} + +# Create top level Bus Ports +sd_create_bus_port -sd_name ${sd_name} -port_name {APB_bif_PADDR} -port_direction {IN} -port_range {[7:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {APB_bif_PWDATA} -port_direction {IN} -port_range {[31:0]} + +sd_create_bus_port -sd_name ${sd_name} -port_name {APB_bif_PRDATA} -port_direction {OUT} -port_range {[31:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {INT} -port_direction {OUT} -port_range {[15:0]} + + +# Create top level Bus interface Ports +sd_create_bif_port -sd_name ${sd_name} -port_name {APB_bif} -port_bif_vlnv {AMBA:AMBA2:APB:r0p0} -port_bif_role {slave} -port_bif_mapping {\ +"PADDR:APB_bif_PADDR" \ +"PSELx:APB_bif_PSEL" \ +"PENABLE:APB_bif_PENABLE" \ +"PWRITE:APB_bif_PWRITE" \ +"PRDATA:APB_bif_PRDATA" \ +"PWDATA:APB_bif_PWDATA" \ +"PREADY:APB_bif_PREADY" \ +"PSLVERR:APB_bif_PSLVERR" } + +# Add CoreGPIO_P8_UPPER_0 instance +sd_instantiate_component -sd_name ${sd_name} -component_name {CoreGPIO_P8_UPPER} -instance_name {CoreGPIO_P8_UPPER_0} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[0:0]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[10:10]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[11:11]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[12:12]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[13:13]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[14:14]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[15:15]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[1:1]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[2:2]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[3:3]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[4:4]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[5:5]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[6:6]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[7:7]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[8:8]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {[9:9]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[0:0]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[10:10]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[11:11]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[12:12]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[13:13]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[14:14]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[15:15]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[1:1]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[2:2]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[3:3]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[4:4]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[5:5]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[6:6]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[7:7]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[8:8]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {[9:9]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[0:0]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[10:10]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[11:11]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[12:12]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[13:13]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[14:14]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[15:15]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[1:1]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[2:2]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[3:3]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[4:4]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[5:5]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[6:6]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[7:7]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[8:8]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {[9:9]} + + + +# Add GPIO_0_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_0_BIBUF} + + + +# Add GPIO_1_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_1_BIBUF} + + + +# Add GPIO_2_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_2_BIBUF} + + + +# Add GPIO_3_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_3_BIBUF} + + + +# Add GPIO_4_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_4_BIBUF} + + + +# Add GPIO_5_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_5_BIBUF} + + + +# Add GPIO_6_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_6_BIBUF} + + + +# Add GPIO_7_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_7_BIBUF} + + + +# Add GPIO_8_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_8_BIBUF} + + + +# Add GPIO_9_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_9_BIBUF} + + + +# Add GPIO_10_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_10_BIBUF} + + + +# Add GPIO_11_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_11_BIBUF} + + + +# Add GPIO_12_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_12_BIBUF} + + + +# Add GPIO_13_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_13_BIBUF} + + + +# Add GPIO_14_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_14_BIBUF} + + + +# Add GPIO_15_BIBUF instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_15_BIBUF} + + + +# Add scalar net connections +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[0:0]" "GPIO_0_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[10:10]" "GPIO_10_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[11:11]" "GPIO_11_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[12:12]" "GPIO_12_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[13:13]" "GPIO_13_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[14:14]" "GPIO_14_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[15:15]" "GPIO_15_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[1:1]" "GPIO_1_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[2:2]" "GPIO_2_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[3:3]" "GPIO_3_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[4:4]" "GPIO_4_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[5:5]" "GPIO_5_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[6:6]" "GPIO_6_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[7:7]" "GPIO_7_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[8:8]" "GPIO_8_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[9:9]" "GPIO_9_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[0:0]" "GPIO_0_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[10:10]" "GPIO_10_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[11:11]" "GPIO_11_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[12:12]" "GPIO_12_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[13:13]" "GPIO_13_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[14:14]" "GPIO_14_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[15:15]" "GPIO_15_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[1:1]" "GPIO_1_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[2:2]" "GPIO_2_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[3:3]" "GPIO_3_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[4:4]" "GPIO_4_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[5:5]" "GPIO_5_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[6:6]" "GPIO_6_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[7:7]" "GPIO_7_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[8:8]" "GPIO_8_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[9:9]" "GPIO_9_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[0:0]" "GPIO_0_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[10:10]" "GPIO_10_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[11:11]" "GPIO_11_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[12:12]" "GPIO_12_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[13:13]" "GPIO_13_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[14:14]" "GPIO_14_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[15:15]" "GPIO_15_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[1:1]" "GPIO_1_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[2:2]" "GPIO_2_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[3:3]" "GPIO_3_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[4:4]" "GPIO_4_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[5:5]" "GPIO_5_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[6:6]" "GPIO_6_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[7:7]" "GPIO_7_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[8:8]" "GPIO_8_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[9:9]" "GPIO_9_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:PCLK" "PCLK" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:PRESETN" "PRESETN" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_0_BIBUF:PAD" "GPIO_0_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_10_BIBUF:PAD" "GPIO_10_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_11_BIBUF:PAD" "GPIO_11_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_12_BIBUF:PAD" "GPIO_12_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_13_BIBUF:PAD" "GPIO_13_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_14_BIBUF:PAD" "GPIO_14_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_15_BIBUF:PAD" "GPIO_15_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_1_BIBUF:PAD" "GPIO_1_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_2_BIBUF:PAD" "GPIO_2_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_3_BIBUF:PAD" "GPIO_3_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_4_BIBUF:PAD" "GPIO_4_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_5_BIBUF:PAD" "GPIO_5_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_6_BIBUF:PAD" "GPIO_6_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_7_BIBUF:PAD" "GPIO_7_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_8_BIBUF:PAD" "GPIO_8_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_9_BIBUF:PAD" "GPIO_9_PAD" } + +# Add bus net connections +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:INT" "INT" } + +# Add bus interface net connections +sd_connect_pins -sd_name ${sd_name} -pin_names {"APB_bif" "CoreGPIO_P8_UPPER_0:APB_bif" } + +# Re-enable auto promotion of pins of type 'pad' +auto_promote_pad_pins -promote_all 1 +# Save the SmartDesign +save_smartdesign -sd_name ${sd_name} +# Generate SmartDesign "P8_GPIO_UPPER" +generate_component -component_name ${sd_name} diff --git a/sources/FPGA-design/script_support/components/CAPE/GPIOS/P9_GPIO.tcl b/sources/FPGA-design/script_support/components/CAPE/GPIOS/P9_GPIO.tcl index 0230e58ff248d468856b2b9158335373746cc6f1..80a11faa766fbe046c04006a5a8e38be079855dd 100644 --- a/sources/FPGA-design/script_support/components/CAPE/GPIOS/P9_GPIO.tcl +++ b/sources/FPGA-design/script_support/components/CAPE/GPIOS/P9_GPIO.tcl @@ -1,220 +1,331 @@ -# Creating SmartDesign P9_GPIO +# Creating SmartDesign "P9_GPIO" set sd_name {P9_GPIO} create_smartdesign -sd_name ${sd_name} -auto_promote_pad_pins -promote_all 1 - -# Add GPIO BIBUFs +# Disable auto promotion of pins of type 'pad' +auto_promote_pad_pins -promote_all 0 + +# Create top level Scalar Ports +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_bif_PENABLE} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_bif_PSEL} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_bif_PWRITE} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {PCLK} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {PRESETN} -port_direction {IN} + +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_bif_PREADY} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_bif_PSLVERR} -port_direction {OUT} + +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_0_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_10_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_11_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_12_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_13_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_14_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_15_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_16_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_17_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_18_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_19_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_1_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_20_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_2_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_3_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_4_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_5_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_6_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_7_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_8_PAD} -port_direction {INOUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {GPIO_9_PAD} -port_direction {INOUT} -port_is_pad {1} + +# Create top level Bus Ports +sd_create_bus_port -sd_name ${sd_name} -port_name {APB_bif_PADDR} -port_direction {IN} -port_range {[7:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {APB_bif_PWDATA} -port_direction {IN} -port_range {[31:0]} + +sd_create_bus_port -sd_name ${sd_name} -port_name {APB_bif_PRDATA} -port_direction {OUT} -port_range {[31:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {INT} -port_direction {OUT} -port_range {[20:0]} + + +# Create top level Bus interface Ports +sd_create_bif_port -sd_name ${sd_name} -port_name {APB_bif} -port_bif_vlnv {AMBA:AMBA2:APB:r0p0} -port_bif_role {slave} -port_bif_mapping {\ +"PADDR:APB_bif_PADDR" \ +"PSELx:APB_bif_PSEL" \ +"PENABLE:APB_bif_PENABLE" \ +"PWRITE:APB_bif_PWRITE" \ +"PRDATA:APB_bif_PRDATA" \ +"PWDATA:APB_bif_PWDATA" \ +"PREADY:APB_bif_PREADY" \ +"PSLVERR:APB_bif_PSLVERR" } + +# Add CoreGPIO_P9_0 instance +sd_instantiate_component -sd_name ${sd_name} -component_name {CoreGPIO_P9} -instance_name {CoreGPIO_P9_0} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {[0:0]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {[10:10]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {[11:11]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {[12:12]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {[13:13]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {[14:14]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {[15:15]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {[16:16]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {[17:17]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {[18:18]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {[19:19]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {[1:1]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {[20:20]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {[2:2]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {[3:3]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {[4:4]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {[5:5]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {[6:6]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {[7:7]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {[8:8]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {[9:9]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {[0:0]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {[10:10]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {[11:11]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {[12:12]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {[13:13]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {[14:14]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {[15:15]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {[16:16]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {[17:17]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {[18:18]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {[19:19]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {[1:1]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {[20:20]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {[2:2]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {[3:3]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {[4:4]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {[5:5]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {[6:6]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {[7:7]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {[8:8]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {[9:9]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {[0:0]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {[10:10]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {[11:11]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {[12:12]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {[13:13]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {[14:14]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {[15:15]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {[16:16]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {[17:17]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {[18:18]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {[19:19]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {[1:1]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {[20:20]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {[2:2]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {[3:3]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {[4:4]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {[5:5]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {[6:6]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {[7:7]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {[8:8]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {[9:9]} + + + +# Add GPIO_0_BIBUF instance sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_0_BIBUF} + + + +# Add GPIO_1_BIBUF instance sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_1_BIBUF} + + + +# Add GPIO_2_BIBUF instance sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_2_BIBUF} + + + +# Add GPIO_3_BIBUF instance sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_3_BIBUF} + + + +# Add GPIO_4_BIBUF instance sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_4_BIBUF} + + + +# Add GPIO_5_BIBUF instance sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_5_BIBUF} + + + +# Add GPIO_6_BIBUF instance sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_6_BIBUF} + + + +# Add GPIO_7_BIBUF instance sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_7_BIBUF} + + + +# Add GPIO_8_BIBUF instance sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_8_BIBUF} + + + +# Add GPIO_9_BIBUF instance sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_9_BIBUF} + + + +# Add GPIO_10_BIBUF instance sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_10_BIBUF} + + + +# Add GPIO_11_BIBUF instance sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_11_BIBUF} + + + +# Add GPIO_12_BIBUF instance sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_12_BIBUF} + + + +# Add GPIO_13_BIBUF instance sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_13_BIBUF} + + + +# Add GPIO_14_BIBUF instance sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_14_BIBUF} + + + +# Add GPIO_15_BIBUF instance sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_15_BIBUF} + + + +# Add GPIO_16_BIBUF instance sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_16_BIBUF} + + + +# Add GPIO_17_BIBUF instance sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_17_BIBUF} + + + +# Add GPIO_18_BIBUF instance sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_18_BIBUF} + + + +# Add GPIO_19_BIBUF instance sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_19_BIBUF} + + + +# Add GPIO_20_BIBUF instance sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_20_BIBUF} -sd_instantiate_component -sd_name ${sd_name} -component_name {CoreGPIO_P9} -instance_name {} - -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[20:20]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[19:19]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[18:18]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[17:17]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[16:16]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[15:15]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[14:14]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[13:13]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[12:12]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[11:11]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[10:10]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[9:9]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[8:8]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[7:7]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[6:6]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[5:5]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[4:4]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[3:3]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[2:2]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[1:1]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[0:0]"} - -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[20:20]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[19:19]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[18:18]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[17:17]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[16:16]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[15:15]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[14:14]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[13:13]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[12:12]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[11:11]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[10:10]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[9:9]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[8:8]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[7:7]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[6:6]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[5:5]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[4:4]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[3:3]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[2:2]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[1:1]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[0:0]"} - -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[20:20]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[19:19]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[18:18]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[17:17]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[16:16]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[15:15]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[14:14]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[13:13]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[12:12]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[11:11]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[10:10]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[9:9]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[8:8]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[7:7]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[6:6]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[5:5]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[4:4]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[3:3]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[2:2]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[1:1]"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[0:0]"} - - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[0:0]" "GPIO_0_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[0:0]" "GPIO_0_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[0:0]" "GPIO_0_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[1:1]" "GPIO_1_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[1:1]" "GPIO_1_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[1:1]" "GPIO_1_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[2:2]" "GPIO_2_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[2:2]" "GPIO_2_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[2:2]" "GPIO_2_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[3:3]" "GPIO_3_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[3:3]" "GPIO_3_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[3:3]" "GPIO_3_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[4:4]" "GPIO_4_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[4:4]" "GPIO_4_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[4:4]" "GPIO_4_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[5:5]" "GPIO_5_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[5:5]" "GPIO_5_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[5:5]" "GPIO_5_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[6:6]" "GPIO_6_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[6:6]" "GPIO_6_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[6:6]" "GPIO_6_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[7:7]" "GPIO_7_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[7:7]" "GPIO_7_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[7:7]" "GPIO_7_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[8:8]" "GPIO_8_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[8:8]" "GPIO_8_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[8:8]" "GPIO_8_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[9:9]" "GPIO_9_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[9:9]" "GPIO_9_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[9:9]" "GPIO_9_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[10:10]" "GPIO_10_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[10:10]" "GPIO_10_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[10:10]" "GPIO_10_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[11:11]" "GPIO_11_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[11:11]" "GPIO_11_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[11:11]" "GPIO_11_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[12:12]" "GPIO_12_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[12:12]" "GPIO_12_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[12:12]" "GPIO_12_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[13:13]" "GPIO_13_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[13:13]" "GPIO_13_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[13:13]" "GPIO_13_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[14:14]" "GPIO_14_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[14:14]" "GPIO_14_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[14:14]" "GPIO_14_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[15:15]" "GPIO_15_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[15:15]" "GPIO_15_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[15:15]" "GPIO_15_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[16:16]" "GPIO_16_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[16:16]" "GPIO_16_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[16:16]" "GPIO_16_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[17:17]" "GPIO_17_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[17:17]" "GPIO_17_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[17:17]" "GPIO_17_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[18:18]" "GPIO_18_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[18:18]" "GPIO_18_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[18:18]" "GPIO_18_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[19:19]" "GPIO_19_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[19:19]" "GPIO_19_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[19:19]" "GPIO_19_BIBUF:E"} - -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[20:20]" "GPIO_20_BIBUF:D"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[20:20]" "GPIO_20_BIBUF:Y"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[20:20]" "GPIO_20_BIBUF:E"} - - -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD} -new_port_name {GPIO_0_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_0} -new_port_name {GPIO_1_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_1} -new_port_name {GPIO_2_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_2} -new_port_name {GPIO_3_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_3} -new_port_name {GPIO_4_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_4} -new_port_name {GPIO_5_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_5} -new_port_name {GPIO_6_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_6} -new_port_name {GPIO_7_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_7} -new_port_name {GPIO_8_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_8} -new_port_name {GPIO_9_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_9} -new_port_name {GPIO_10_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_10} -new_port_name {GPIO_11_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_11} -new_port_name {GPIO_12_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_12} -new_port_name {GPIO_13_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_13} -new_port_name {GPIO_14_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_14} -new_port_name {GPIO_15_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_15} -new_port_name {GPIO_16_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_16} -new_port_name {GPIO_17_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_17} -new_port_name {GPIO_18_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_18} -new_port_name {GPIO_19_PAD} -sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_19} -new_port_name {GPIO_20_PAD} - - -sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:PRESETN} -port_name {} -sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:PCLK} -port_name {} -sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:APB_bif} -port_name {} - -sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_P9_0:INT} +# Add scalar net connections +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[0:0]" "GPIO_0_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[10:10]" "GPIO_10_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[11:11]" "GPIO_11_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[12:12]" "GPIO_12_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[13:13]" "GPIO_13_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[14:14]" "GPIO_14_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[15:15]" "GPIO_15_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[16:16]" "GPIO_16_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[17:17]" "GPIO_17_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[18:18]" "GPIO_18_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[19:19]" "GPIO_19_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[1:1]" "GPIO_1_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[20:20]" "GPIO_20_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[2:2]" "GPIO_2_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[3:3]" "GPIO_3_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[4:4]" "GPIO_4_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[5:5]" "GPIO_5_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[6:6]" "GPIO_6_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[7:7]" "GPIO_7_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[8:8]" "GPIO_8_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[9:9]" "GPIO_9_BIBUF:Y" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[0:0]" "GPIO_0_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[10:10]" "GPIO_10_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[11:11]" "GPIO_11_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[12:12]" "GPIO_12_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[13:13]" "GPIO_13_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[14:14]" "GPIO_14_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[15:15]" "GPIO_15_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[16:16]" "GPIO_16_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[17:17]" "GPIO_17_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[18:18]" "GPIO_18_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[19:19]" "GPIO_19_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[1:1]" "GPIO_1_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[20:20]" "GPIO_20_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[2:2]" "GPIO_2_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[3:3]" "GPIO_3_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[4:4]" "GPIO_4_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[5:5]" "GPIO_5_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[6:6]" "GPIO_6_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[7:7]" "GPIO_7_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[8:8]" "GPIO_8_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[9:9]" "GPIO_9_BIBUF:E" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[0:0]" "GPIO_0_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[10:10]" "GPIO_10_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[11:11]" "GPIO_11_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[12:12]" "GPIO_12_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[13:13]" "GPIO_13_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[14:14]" "GPIO_14_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[15:15]" "GPIO_15_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[16:16]" "GPIO_16_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[17:17]" "GPIO_17_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[18:18]" "GPIO_18_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[19:19]" "GPIO_19_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[1:1]" "GPIO_1_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[20:20]" "GPIO_20_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[2:2]" "GPIO_2_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[3:3]" "GPIO_3_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[4:4]" "GPIO_4_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[5:5]" "GPIO_5_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[6:6]" "GPIO_6_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[7:7]" "GPIO_7_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[8:8]" "GPIO_8_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[9:9]" "GPIO_9_BIBUF:D" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:PCLK" "PCLK" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:PRESETN" "PRESETN" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_0_BIBUF:PAD" "GPIO_0_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_10_BIBUF:PAD" "GPIO_10_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_11_BIBUF:PAD" "GPIO_11_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_12_BIBUF:PAD" "GPIO_12_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_13_BIBUF:PAD" "GPIO_13_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_14_BIBUF:PAD" "GPIO_14_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_15_BIBUF:PAD" "GPIO_15_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_16_BIBUF:PAD" "GPIO_16_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_17_BIBUF:PAD" "GPIO_17_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_18_BIBUF:PAD" "GPIO_18_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_19_BIBUF:PAD" "GPIO_19_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_1_BIBUF:PAD" "GPIO_1_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_20_BIBUF:PAD" "GPIO_20_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_2_BIBUF:PAD" "GPIO_2_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_3_BIBUF:PAD" "GPIO_3_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_4_BIBUF:PAD" "GPIO_4_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_5_BIBUF:PAD" "GPIO_5_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_6_BIBUF:PAD" "GPIO_6_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_7_BIBUF:PAD" "GPIO_7_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_8_BIBUF:PAD" "GPIO_8_PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_9_BIBUF:PAD" "GPIO_9_PAD" } + +# Add bus net connections +sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:INT" "INT" } + +# Add bus interface net connections +sd_connect_pins -sd_name ${sd_name} -pin_names {"APB_bif" "CoreGPIO_P9_0:APB_bif" } # Re-enable auto promotion of pins of type 'pad' auto_promote_pad_pins -promote_all 1 -# Save the smartDesign +# Save the SmartDesign save_smartdesign -sd_name ${sd_name} -# Generate SmartDesign P9_GPIO +# Generate SmartDesign "P9_GPIO" generate_component -component_name ${sd_name} diff --git a/sources/FPGA-design/script_support/components/CAPE/GPIOS/Readme.md b/sources/FPGA-design/script_support/components/CAPE/GPIOS/Readme.md index 2d43b13058bd61b8989bdf4b5fffd4890f0942c2..1241367ee125d732a3cf4de59242d23446080f9b 100644 --- a/sources/FPGA-design/script_support/components/CAPE/GPIOS/Readme.md +++ b/sources/FPGA-design/script_support/components/CAPE/GPIOS/Readme.md @@ -2,102 +2,102 @@ ## P8 Header -| Signal | Control | Description | -|--------|----------------------------|-------------| -| P8_1 | n/a | GND | -| P8_2 | n/a | GND | -| P8_3 | MSS GPIO_2[0] | User LED 0 | -| P8_4 | MSS GPIO_2[1] | User LED 1 | -| P8_5 | MSS GPIO_2[2] | User LED 2 | -| P8_6 | MSS GPIO_2[3] | User LED 3 | -| P8_7 | MSS GPIO_2[4] | User LED 4 | -| P8_8 | MSS GPIO_2[5] | User LED 5 | -| P8_9 | MSS GPIO_2[6] | User LED 6 | -| P8_10 | MSS GPIO_2[7] | User LED 7 | -| P8_11 | MSS GPIO_2[8] | User LED 8 | -| P8_12 | MSS GPIO_2[9] | User LED 9 | -| P8_13 | MSS GPIO_2[10] | User LED 10 | -| P8_14 | MSS GPIO_2[11] | User LED 11 | -| P8_15 | MSS GPIO_2[12] | GPIO | -| P8_16 | MSS GPIO_2[13] | GPIO | -| P8_17 | MSS GPIO_2[14] | GPIO | -| P8_18 | MSS GPIO_2[15] | GPIO | -| P8_19 | MSS GPIO_2[16] | GPIO | -| P8_20 | MSS GPIO_2[17] | GPIO | -| P8_21 | MSS GPIO_2[18] | GPIO | -| P8_22 | MSS GPIO_2[19] | GPIO | -| P8_23 | MSS GPIO_2[20] | GPIO | -| P8_24 | MSS GPIO_2[21] | GPIO | -| P8_25 | MSS GPIO_2[22] | GPIO | -| P8_26 | MSS GPIO_2[23] | GPIO | -| P8_27 | MSS GPIO_2[24] | GPIO | -| P8_28 | MSS GPIO_2[25] | GPIO | -| P8_29 | MSS GPIO_2[26] | GPIO | -| P8_30 | MSS GPIO_2[27] | GPIO | -| P8_31 | core_gpio[0] @ 0x41100000 | GPIO | -| P8_32 | core_gpio[1] @ 0x41100000 | GPIO | -| P8_33 | core_gpio[2] @ 0x41100000 | GPIO | -| P8_34 | core_gpio[3] @ 0x41100000 | GPIO | -| P8_35 | core_gpio[4] @ 0x41100000 | GPIO | -| P8_36 | core_gpio[5] @ 0x41100000 | GPIO | -| P8_37 | core_gpio[6] @ 0x41100000 | GPIO | -| P8_38 | core_gpio[7] @ 0x41100000 | GPIO | -| P8_39 | core_gpio[8] @ 0x41100000 | GPIO | -| P8_40 | core_gpio[9] @ 0x41100000 | GPIO | -| P8_41 | core_gpio[10] @ 0x41100000 | GPIO | -| P8_42 | core_gpio[11] @ 0x41100000 | GPIO | -| P8_43 | core_gpio[12] @ 0x41100000 | GPIO | -| P8_44 | core_gpio[13] @ 0x41100000 | GPIO | -| P8_45 | core_gpio[14] @ 0x41100000 | GPIO | -| P8_46 | core_gpio[15] @ 0x41100000 | GPIO | +| Signal | Control | Irq # | Description | +|--------|----------------------------|-------|-------------| +| P8_1 | n/a | n/a | GND | +| P8_2 | n/a | n/a | GND | +| P8_3 | MSS GPIO_2[0] | 53 | User LED 0 | +| P8_4 | MSS GPIO_2[1] | 53 | User LED 1 | +| P8_5 | MSS GPIO_2[2] | 53 | User LED 2 | +| P8_6 | MSS GPIO_2[3] | 53 | User LED 3 | +| P8_7 | MSS GPIO_2[4] | 53 | User LED 4 | +| P8_8 | MSS GPIO_2[5] | 53 | User LED 5 | +| P8_9 | MSS GPIO_2[6] | 53 | User LED 6 | +| P8_10 | MSS GPIO_2[7] | 53 | User LED 7 | +| P8_11 | MSS GPIO_2[8] | 53 | User LED 8 | +| P8_12 | MSS GPIO_2[9] | 53 | User LED 9 | +| P8_13 | MSS GPIO_2[10] | 53 | User LED 10 | +| P8_14 | MSS GPIO_2[11] | 53 | User LED 11 | +| P8_15 | MSS GPIO_2[12] | 53 | GPIO | +| P8_16 | MSS GPIO_2[13] | 53 | GPIO | +| P8_17 | MSS GPIO_2[14] | 53 | GPIO | +| P8_18 | MSS GPIO_2[15] | 53 | GPIO | +| P8_19 | MSS GPIO_2[16] | 53 | GPIO | +| P8_20 | MSS GPIO_2[17] | 53 | GPIO | +| P8_21 | MSS GPIO_2[18] | 53 | GPIO | +| P8_22 | MSS GPIO_2[19] | 53 | GPIO | +| P8_23 | MSS GPIO_2[20] | 53 | GPIO | +| P8_24 | MSS GPIO_2[21] | 53 | GPIO | +| P8_25 | MSS GPIO_2[22] | 53 | GPIO | +| P8_26 | MSS GPIO_2[23] | 53 | GPIO | +| P8_27 | MSS GPIO_2[24] | 53 | GPIO | +| P8_28 | MSS GPIO_2[25] | 53 | GPIO | +| P8_29 | MSS GPIO_2[26] | 53 | GPIO | +| P8_30 | MSS GPIO_2[27] | 53 | GPIO | +| P8_31 | core_gpio[0] @ 0x41100000 | 126 | GPIO | +| P8_32 | core_gpio[1] @ 0x41100000 | 127 | GPIO | +| P8_33 | core_gpio[2] @ 0x41100000 | 128 | GPIO | +| P8_34 | core_gpio[3] @ 0x41100000 | 129 | GPIO | +| P8_35 | core_gpio[4] @ 0x41100000 | 130 | GPIO | +| P8_36 | core_gpio[5] @ 0x41100000 | 131 | GPIO | +| P8_37 | core_gpio[6] @ 0x41100000 | 132 | GPIO | +| P8_38 | core_gpio[7] @ 0x41100000 | 133 | GPIO | +| P8_39 | core_gpio[8] @ 0x41100000 | 134 | GPIO | +| P8_40 | core_gpio[9] @ 0x41100000 | 135 | GPIO | +| P8_41 | core_gpio[10] @ 0x41100000 | 136 | GPIO | +| P8_42 | core_gpio[11] @ 0x41100000 | 137 | GPIO | +| P8_43 | core_gpio[12] @ 0x41100000 | 138 | GPIO | +| P8_44 | core_gpio[13] @ 0x41100000 | 139 | GPIO | +| P8_45 | core_gpio[14] @ 0x41100000 | 140 | GPIO | +| P8_46 | core_gpio[15] @ 0x41100000 | 141 | GPIO | ## P9 Header -| Signal | Control | Description | -|--------|----------------------------|-------------| -| P9_1 | n/a | GND | -| P9_2 | n/a | GND | -| P9_3 | n/a | VCC 3.3V | -| P9_4 | n/a | VCC 3.3V | -| P9_5 | n/a | VDD 5V | -| P9_6 | n/a | VDD 5V | -| P9_7 | n/a | SYS 5V | -| P9_8 | n/a | SYS 5V | -| P9_9 | n/a | NC | -| P9_10 | n/a | SYS_RSTN | -| P9_11 | core_gpio[0] @ 0x41200000 | GPIO | -| P9_12 | core_gpio[1] @ 0x41200000 | GPIO | -| P9_13 | core_gpio[2] @ 0x41200000 | GPIO | -| P9_14 | core_gpio[3] @ 0x41200000 | GPIO | -| P9_15 | core_gpio[4] @ 0x41200000 | GPIO | -| P9_16 | core_gpio[5] @ 0x41200000 | GPIO | -| P9_17 | core_gpio[6] @ 0x41200000 | GPIO | -| P9_18 | core_gpio[7] @ 0x41200000 | GPIO | -| P9_19 | MSS I2C0 | I2C0 SCL | -| P9_20 | MSS I2C0 | I2C0 SDA | -| P9_21 | core_gpio[8] @ 0x41200000 | GPIO | -| P9_22 | core_gpio[9] @ 0x41200000 | GPIO | -| P9_23 | core_gpio[10] @ 0x41200000 | GPIO | -| P9_24 | core_gpio[11] @ 0x41200000 | GPIO | -| P9_25 | core_gpio[12] @ 0x41200000 | GPIO | -| P9_26 | core_gpio[13] @ 0x41200000 | GPIO | -| P9_27 | core_gpio[14] @ 0x41200000 | GPIO | -| P9_28 | core_gpio[15] @ 0x41200000 | GPIO | -| P9_29 | core_gpio[16] @ 0x41200000 | GPIO | -| P9_30 | core_gpio[17] @ 0x41200000 | GPIO | -| P9_31 | core_gpio[18] @ 0x41200000 | GPIO | -| P9_32 | n/a | VDD ADC | -| P9_33 | n/a | ADC input 4 | -| P9_34 | n/a | AGND | -| P9_35 | n/a | ADC input 6 | -| P9_36 | n/a | ADC input 5 | -| P9_37 | n/a | ADC input 2 | -| P9_38 | n/a | ADC input 3 | -| P9_39 | n/a | ADC input 0 | -| P9_40 | n/a | ADC input 1 | -| P9_41 | core_gpio[19] @ 0x41200000 | GPIO | -| P9_42 | core_gpio[20] @ 0x41200000 | GPIO | -| P9_43 | n/a | GND | -| P9_44 | n/a | GND | -| P9_45 | n/a | GND | -| P9_46 | n/a | GND | +| Signal | Control | Irq # | Description | +|--------|----------------------------|-------|-------------| +| P9_1 | n/a | n/a | GND | +| P9_2 | n/a | n/a | GND | +| P9_3 | n/a | n/a | VCC 3.3V | +| P9_4 | n/a | n/a | VCC 3.3V | +| P9_5 | n/a | n/a | VDD 5V | +| P9_6 | n/a | n/a | VDD 5V | +| P9_7 | n/a | n/a | SYS 5V | +| P9_8 | n/a | n/a | SYS 5V | +| P9_9 | n/a | n/a | NC | +| P9_10 | n/a | n/a | SYS_RSTN | +| P9_11 | core_gpio[0] @ 0x41200000 | 142 | GPIO | +| P9_12 | core_gpio[1] @ 0x41200000 | 143 | GPIO | +| P9_13 | core_gpio[2] @ 0x41200000 | 144 | GPIO | +| P9_14 | core_gpio[3] @ 0x41200000 | 145 | GPIO | +| P9_15 | core_gpio[4] @ 0x41200000 | 146 | GPIO | +| P9_16 | core_gpio[5] @ 0x41200000 | 147 | GPIO | +| P9_17 | core_gpio[6] @ 0x41200000 | 148 | GPIO | +| P9_18 | core_gpio[7] @ 0x41200000 | 149 | GPIO | +| P9_19 | MSS I2C0 | 58 | I2C0 SCL | +| P9_20 | MSS I2C0 | 58 | I2C0 SDA | +| P9_21 | core_gpio[8] @ 0x41200000 | 150 | GPIO | +| P9_22 | core_gpio[9] @ 0x41200000 | 151 | GPIO | +| P9_23 | core_gpio[10] @ 0x41200000 | 152 | GPIO | +| P9_24 | core_gpio[11] @ 0x41200000 | 153 | GPIO | +| P9_25 | core_gpio[12] @ 0x41200000 | 154 | GPIO | +| P9_26 | core_gpio[13] @ 0x41200000 | 155 | GPIO | +| P9_27 | core_gpio[14] @ 0x41200000 | 156 | GPIO | +| P9_28 | core_gpio[15] @ 0x41200000 | 157 | GPIO | +| P9_29 | core_gpio[16] @ 0x41200000 | 158 | GPIO | +| P9_30 | core_gpio[17] @ 0x41200000 | 159 | GPIO | +| P9_31 | core_gpio[18] @ 0x41200000 | 160 | GPIO | +| P9_32 | n/a | n/a | VDD ADC | +| P9_33 | n/a | n/a | ADC input 4 | +| P9_34 | n/a | n/a | AGND | +| P9_35 | n/a | n/a | ADC input 6 | +| P9_36 | n/a | n/a | ADC input 5 | +| P9_37 | n/a | n/a | ADC input 2 | +| P9_38 | n/a | n/a | ADC input 3 | +| P9_39 | n/a | n/a | ADC input 0 | +| P9_40 | n/a | n/a | ADC input 1 | +| P9_41 | core_gpio[19] @ 0x41200000 | 161 | GPIO | +| P9_42 | core_gpio[20] @ 0x41200000 | 162 | GPIO | +| P9_43 | n/a | n/a | GND | +| P9_44 | n/a | n/a | GND | +| P9_45 | n/a | n/a | GND | +| P9_46 | n/a | n/a | GND | diff --git a/sources/FPGA-design/script_support/components/CAPE/NONE_NO_USER_LEDS/ADD_CAPE.tcl b/sources/FPGA-design/script_support/components/CAPE/NONE_NO_USER_LEDS/ADD_CAPE.tcl new file mode 100644 index 0000000000000000000000000000000000000000..4e63d8f89276ba979324434931018b89a37ddf6d --- /dev/null +++ b/sources/FPGA-design/script_support/components/CAPE/NONE_NO_USER_LEDS/ADD_CAPE.tcl @@ -0,0 +1,33 @@ +puts "======== Add cape option: NONE ========" + +set sd_name ${top_level_name} + +#------------------------------------------------------------------------------- +# Cape pins +#------------------------------------------------------------------------------- +sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_11} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_13} -port_direction {OUT} + + +#------------------------------------------------------------------------------- +# Instantiate. +#------------------------------------------------------------------------------- + +#------------------------------------------------------------------------------- +# Connections. +#------------------------------------------------------------------------------- + +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MMUART_4_TXD" "P9_13"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MMUART_4_RXD" "P9_11"} + +#------------------------------------------------------------------------------- + +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:CAPE_APB_MTARGET} + +#------------------------------------------------------------------------------- + +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:GPIO_2_F2M} -value {GND} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:GPIO_2_OE_M2F} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:FIC_1_AXI4_INITIATOR} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:FIC_1_AXI4_TARGET} + diff --git a/sources/FPGA-design/script_support/components/CAPE/NONE_NO_USER_LEDS/Readme.md b/sources/FPGA-design/script_support/components/CAPE/NONE_NO_USER_LEDS/Readme.md new file mode 100644 index 0000000000000000000000000000000000000000..d1c9427346271a49b6dd50d9793c5ef432e686b0 --- /dev/null +++ b/sources/FPGA-design/script_support/components/CAPE/NONE_NO_USER_LEDS/Readme.md @@ -0,0 +1,105 @@ +# Minimal Cape, No USer LEDs + +This cape configuration is intended for use where some other part of the gateware will use the LEDs. + +## P8 Header + +| Signal | Control | Description | +|--------|----------------------------|-------------| +| P8_1 | n/a | GND | +| P8_2 | n/a | GND | +| P8_3 | n/a | NC | +| P8_4 | n/a | NC | +| P8_5 | n/a | NC | +| P8_6 | n/a | NC | +| P8_7 | n/a | NC | +| P8_8 | n/a | NC | +| P8_9 | n/a | NC | +| P8_10 | n/a | NC | +| P8_11 | n/a | NC | +| P8_12 | n/a | NC | +| P8_13 | n/a | NC | +| P8_14 | n/a | NC | +| P8_15 | n/a | NC | +| P8_16 | n/a | NC | +| P8_17 | n/a | NC | +| P8_18 | n/a | NC | +| P8_19 | n/a | NC | +| P8_20 | n/a | NC | +| P8_21 | n/a | NC | +| P8_22 | n/a | NC | +| P8_23 | n/a | NC | +| P8_24 | n/a | NC | +| P8_25 | n/a | NC | +| P8_26 | n/a | NC | +| P8_27 | n/a | NC | +| P8_28 | n/a | NC | +| P8_29 | n/a | NC | +| P8_30 | n/a | NC | +| P8_31 | n/a | NC | +| P8_32 | n/a | NC | +| P8_33 | n/a | NC | +| P8_34 | n/a | NC | +| P8_35 | n/a | NC | +| P8_36 | n/a | NC | +| P8_37 | n/a | NC | +| P8_38 | n/a | NC | +| P8_39 | n/a | NC | +| P8_40 | n/a | NC | +| P8_41 | n/a | NC | +| P8_42 | n/a | NC | +| P8_43 | n/a | NC | +| P8_44 | n/a | NC | +| P8_45 | n/a | NC | +| P8_46 | n/a | NC | + +## P9 Header + +| Signal | Control | Description | +|--------|----------------------------|-------------| +| P9_1 | n/a | GND | +| P9_2 | n/a | GND | +| P9_3 | n/a | VCC 3.3V | +| P9_4 | n/a | VCC 3.3V | +| P9_5 | n/a | VDD 5V | +| P9_6 | n/a | VDD 5V | +| P9_7 | n/a | SYS 5V | +| P9_8 | n/a | SYS 5V | +| P9_9 | n/a | NC | +| P9_10 | n/a | SYS_RSTN | +| P9_11 | n/a | NC | +| P9_12 | n/a | NC | +| P9_13 | n/a | NC | +| P9_14 | n/a | NC | +| P9_15 | n/a | NC | +| P9_16 | n/a | NC | +| P9_17 | n/a | NC | +| P9_18 | n/a | NC | +| P9_19 | MSS I2C0 | I2C0 SCL | +| P9_20 | MSS I2C0 | I2C0 SDA | +| P9_21 | n/a | NC | +| P9_22 | n/a | NC | +| P9_23 | n/a | NC | +| P9_24 | n/a | NC | +| P9_25 | n/a | NC | +| P9_26 | n/a | NC | +| P9_27 | n/a | NC | +| P9_28 | n/a | NC | +| P9_29 | n/a | NC | +| P9_30 | n/a | NC | +| P9_31 | n/a | NC | +| P9_32 | n/a | VDD ADC | +| P9_33 | n/a | ADC input 4 | +| P9_34 | n/a | AGND | +| P9_35 | n/a | ADC input 6 | +| P9_36 | n/a | ADC input 5 | +| P9_37 | n/a | ADC input 2 | +| P9_38 | n/a | ADC input 3 | +| P9_39 | n/a | ADC input 0 | +| P9_40 | n/a | ADC input 1 | +| P9_41 | n/a | NC | +| P9_42 | n/a | NC | +| P9_43 | n/a | GND | +| P9_44 | n/a | GND | +| P9_45 | n/a | GND | +| P9_46 | n/a | GND | diff --git a/sources/FPGA-design/script_support/components/CAPE/NONE_NO_USER_LEDS/constraints/cape.pdc b/sources/FPGA-design/script_support/components/CAPE/NONE_NO_USER_LEDS/constraints/cape.pdc new file mode 100644 index 0000000000000000000000000000000000000000..c18d848afd8f4ff03d72ac39975062cc00c322b7 --- /dev/null +++ b/sources/FPGA-design/script_support/components/CAPE/NONE_NO_USER_LEDS/constraints/cape.pdc @@ -0,0 +1,98 @@ +set_io -port_name P9_11 \ + -pin_name B5 \ + -io_std LVCMOS33 \ + -fixed true \ + -DIRECTION INPUT + +set_io -port_name P9_13 \ + -pin_name D19 \ + -io_std LVCMOS33 \ + -fixed true \ + -DIRECTION OUTPUT + +#set_io -port_name P8_3_USER_LED_0 \ +# -pin_name V22 \ +# -fixed true \ +# -OUT_DRIVE 12 \ +# -RES_PULL None \ +# -DIRECTION OUTPUT +# +#set_io -port_name P8_4_USER_LED_1 \ +# -pin_name W22 \ +# -fixed true \ +# -OUT_DRIVE 12 \ +# -RES_PULL None \ +# -DIRECTION OUTPUT +# +#set_io -port_name P8_5_USER_LED_2 \ +# -pin_name V19 \ +# -fixed true \ +# -OUT_DRIVE 12 \ +# -RES_PULL None \ +# -DIRECTION OUTPUT +# +#set_io -port_name P8_6_USER_LED_3 \ +# -pin_name V20 \ +# -fixed true \ +# -OUT_DRIVE 12 \ +# -RES_PULL None \ +# -DIRECTION OUTPUT +# +#set_io -port_name P8_7_USER_LED_4 \ +# -pin_name V15 \ +# -fixed true \ +# -OUT_DRIVE 12 \ +# -RES_PULL None \ +# -DIRECTION OUTPUT +# +#set_io -port_name P8_8_USER_LED_5 \ +# -pin_name V14 \ +# -fixed true \ +# -OUT_DRIVE 12 \ +# -RES_PULL None \ +# -DIRECTION OUTPUT +# +#set_io -port_name P8_9_USER_LED_6 \ +# -pin_name V21 \ +# -fixed true \ +# -OUT_DRIVE 12 \ +# -RES_PULL None \ +# -DIRECTION OUTPUT +# +#set_io -port_name P8_10_USER_LED_7 \ +# -pin_name W21 \ +# -fixed true \ +# -OUT_DRIVE 12 \ +# -RES_PULL None \ +# -DIRECTION OUTPUT +# +#set_io -port_name P8_11_USER_LED_8 \ +# -pin_name Y21 \ +# -fixed true \ +# -OUT_DRIVE 12 \ +# -RES_PULL None \ +# -DIRECTION OUTPUT +# +#set_io -port_name P8_12_USER_LED_9 \ +# -pin_name Y20 \ +# -fixed true \ +# -OUT_DRIVE 12 \ +# -RES_PULL None \ +# -DIRECTION OUTPUT +# +#set_io -port_name P8_13_USER_LED_10 \ +# -pin_name B10 \ +# -fixed true \ +# -io_std LVCMOS33 \ +# -OUT_DRIVE 12 \ +# -RES_PULL None \ +# -DIRECTION OUTPUT +# +#set_io -port_name P8_14_USER_LED_11 \ +# -pin_name B9 \ +# -io_std LVCMOS33 \ +# -fixed true \ +# -OUT_DRIVE 12 \ +# -RES_PULL None \ +# -DIRECTION OUTPUT + diff --git a/sources/FPGA-design/script_support/components/CAPE/NONE_NO_USER_LEDS/device-tree-overlay/cape-gpios.dtso b/sources/FPGA-design/script_support/components/CAPE/NONE_NO_USER_LEDS/device-tree-overlay/cape-gpios.dtso new file mode 100644 index 0000000000000000000000000000000000000000..fa044b50dc8d08211cf5e069786c2382d11df0d1 --- /dev/null +++ b/sources/FPGA-design/script_support/components/CAPE/NONE_NO_USER_LEDS/device-tree-overlay/cape-gpios.dtso @@ -0,0 +1,52 @@ +// SPDX-License-Identifier: (GPL-2.0 OR MIT) +/* Copyright (c) 2020-2021 Microchip Technology Inc */ + +/dts-v1/; +/plugin/; + +&{/chosen} { + overlays { + MINIMAL-NO-LEDS-CAPE-GATEWARE = "GATEWARE_GIT_VERSION"; + }; +}; + +&gpio2 { + interrupts = <53>, <53>, <53>, <53>, + <53>, <53>, <53>, <53>, + <53>, <53>, <53>, <53>, + <53>, <53>, <53>, <53>, + <53>, <53>, <53>, <53>, + <53>, <53>, <53>, <53>, + <53>, <53>, <53>, <53>, + <53>, <53>, <53>, <53>; + gpio-line-names = "", "", "", + "", "", "", + "", "", "", + "", "", "", + "", "", "", "", "", + "", "", "", "", "", + "", "", "", "", "", + "", + "M2_W_DISABLE1", "M2_W_DISABLE2", + "VIO_ENABLE", "SD_DET"; + status = "okay"; + + vio_enable { + gpio-hog; + gpios = <30 30>; + output_high; + line-name = "VIO_ENABLE"; + }; + + sd_det { + gpio-hog; + gpios = <31 31>; + input; + line-name = "SD_DET"; + }; +}; + +&mmuart4 { + status = "okay"; + symlink = "bone/uart/4"; +}; diff --git a/sources/FPGA-design/script_support/components/CAPE/ROBOTICS/ADD_CAPE.tcl b/sources/FPGA-design/script_support/components/CAPE/ROBOTICS/ADD_CAPE.tcl index 26349e7b52eccc52b79b66d3280a4429b388f952..3b79b78a958bf8c4ffb088346f733330fce43acc 100644 --- a/sources/FPGA-design/script_support/components/CAPE/ROBOTICS/ADD_CAPE.tcl +++ b/sources/FPGA-design/script_support/components/CAPE/ROBOTICS/ADD_CAPE.tcl @@ -89,9 +89,9 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE:APB_SLAVE" "BVF_RISCV_SUBS sd_delete_ports -sd_name ${sd_name} -port_names {P9_13} sd_mark_pins_unused -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MMUART_4_TXD} -sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M} -pin_slices {"[26:3]"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_INT_F2M[26:3]" "CAPE:INT"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M} -pin_slices {"[58:27]"} -sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M[58:27]} -value {GND} - +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_C} +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_A} +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_B} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_A" "CAPE:INT_A"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_B" "CAPE:INT_B"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_C" "CAPE:INT_C"} diff --git a/sources/FPGA-design/script_support/components/CAPE/ROBOTICS/CAPE.tcl b/sources/FPGA-design/script_support/components/CAPE/ROBOTICS/CAPE.tcl index 003f7f36b5a97b0f555ec348b375634e5b27a6d0..4fca43420e2f097a841d54237ce61c2c835d15eb 100644 --- a/sources/FPGA-design/script_support/components/CAPE/ROBOTICS/CAPE.tcl +++ b/sources/FPGA-design/script_support/components/CAPE/ROBOTICS/CAPE.tcl @@ -1,4 +1,4 @@ -# Creating SmartDesign CAPE +# Creating SmartDesign "CAPE" set sd_name {CAPE} create_smartdesign -sd_name ${sd_name} @@ -79,7 +79,9 @@ sd_create_bus_port -sd_name ${sd_name} -port_name {GPIO_OUT} -port_direction {IN sd_create_bus_port -sd_name ${sd_name} -port_name {APB_SLAVE_SLAVE_PRDATA} -port_direction {OUT} -port_range {[31:0]} sd_create_bus_port -sd_name ${sd_name} -port_name {GPIO_IN} -port_direction {OUT} -port_range {[27:0]} -sd_create_bus_port -sd_name ${sd_name} -port_name {INT} -port_direction {OUT} -port_range {[23:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {INT_A} -port_direction {OUT} -port_range {[7:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {INT_B} -port_direction {OUT} -port_range {[7:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {INT_C} -port_direction {OUT} -port_range {[7:0]} # Create top level Bus interface Ports @@ -93,8 +95,6 @@ sd_create_bif_port -sd_name ${sd_name} -port_name {APB_SLAVE} -port_bif_vlnv {AM "PREADY:APB_SLAVE_SLAVE_PREADY" \ "PSLVERR:APB_SLAVE_SLAVE_PSLVERR" } -sd_create_pin_slices -sd_name ${sd_name} -pin_name {INT} -pin_slices {[23:8]} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {INT} -pin_slices {[7:0]} # Add APB_BUS_CONVERTER_0 instance sd_instantiate_component -sd_name ${sd_name} -component_name {APB_BUS_CONVERTER} -instance_name {APB_BUS_CONVERTER_0} @@ -117,6 +117,8 @@ sd_instantiate_component -sd_name ${sd_name} -component_name {CoreAPB3_CAPE} -in # Add P8_GPIO_UPPER_0 instance sd_instantiate_component -sd_name ${sd_name} -component_name {P8_GPIO_UPPER} -instance_name {P8_GPIO_UPPER_0} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {P8_GPIO_UPPER_0:INT} -pin_slices {[15:8]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {P8_GPIO_UPPER_0:INT} -pin_slices {[7:0]} @@ -201,8 +203,9 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_PIN42" "apb_rotary_enc_0:enc sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_IN" "GPIO_IN" } sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_OE" "GPIO_OE" } sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_DEFAULT_GPIOS:GPIO_OUT" "GPIO_OUT" } -sd_connect_pins -sd_name ${sd_name} -pin_names {"INT[23:8]" "P8_GPIO_UPPER_0:INT" } -sd_connect_pins -sd_name ${sd_name} -pin_names {"INT[7:0]" "P9_GPIO_0:INT" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"INT_A" "P8_GPIO_UPPER_0:INT[7:0]" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"INT_B" "P8_GPIO_UPPER_0:INT[15:8]" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"INT_C" "P9_GPIO_0:INT" } # Add bus interface net connections sd_connect_pins -sd_name ${sd_name} -pin_names {"APB_BUS_CONVERTER_0:APB_MASTER" "CoreAPB3_CAPE_0:APB3mmaster" } @@ -215,7 +218,7 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreAPB3_CAPE_0:APBmslave5" "PW # Re-enable auto promotion of pins of type 'pad' auto_promote_pad_pins -promote_all 1 -# Save the smartDesign +# Save the SmartDesign save_smartdesign -sd_name ${sd_name} -# Generate SmartDesign CAPE +# Generate SmartDesign "CAPE" generate_component -component_name ${sd_name} diff --git a/sources/FPGA-design/script_support/components/CAPE/ROBOTICS/Readme.md b/sources/FPGA-design/script_support/components/CAPE/ROBOTICS/Readme.md index bb65558986774ade2099b9c1e4fd1278ab4a7f1a..fcd3c1d84936cc05448871d296d21e51f47f5ce6 100644 --- a/sources/FPGA-design/script_support/components/CAPE/ROBOTICS/Readme.md +++ b/sources/FPGA-design/script_support/components/CAPE/ROBOTICS/Readme.md @@ -2,102 +2,102 @@ ## P8 Header -| Signal | Control | Description | -|--------|----------------------------|-------------| -| P8_1 | n/a | GND | -| P8_2 | n/a | GND | -| P8_3 | MSS GPIO_2[0] | User LED 0 | -| P8_4 | MSS GPIO_2[1] | User LED 1 | -| P8_5 | MSS GPIO_2[2] | User LED 2 | -| P8_6 | MSS GPIO_2[3] | User LED 3 | -| P8_7 | MSS GPIO_2[4] | User LED 4 | -| P8_8 | MSS GPIO_2[5] | User LED 5 | -| P8_9 | MSS GPIO_2[6] | User LED 6 | -| P8_10 | MSS GPIO_2[7] | User LED 7 | -| P8_11 | MSS GPIO_2[8] | User LED 8 | -| P8_12 | MSS GPIO_2[9] | User LED 9 | -| P8_13 | core_pwm[1] @ 0x41500000 | PWM_2:1 | -| P8_14 | MSS GPIO_2[11] | User LED 11 | -| P8_15 | MSS GPIO_2[12] | GPIO | -| P8_16 | MSS GPIO_2[13] | GPIO | -| P8_17 | MSS GPIO_2[14] | GPIO | -| P8_18 | MSS GPIO_2[15] | GPIO | -| P8_19 | core_pwm[0] @ 0x41500000 | PWM_2:0 | -| P8_20 | MSS GPIO_2[17] | GPIO | -| P8_21 | MSS GPIO_2[18] | GPIO | -| P8_22 | MSS GPIO_2[19] | GPIO | -| P8_23 | MSS GPIO_2[20] | GPIO | -| P8_24 | MSS GPIO_2[21] | GPIO | -| P8_25 | MSS GPIO_2[22] | GPIO | -| P8_26 | MSS GPIO_2[23] | GPIO | -| P8_27 | MSS GPIO_2[24] | GPIO | -| P8_28 | MSS GPIO_2[25] | GPIO | -| P8_29 | MSS GPIO_2[26] | GPIO | -| P8_30 | MSS GPIO_2[27] | GPIO | -| P8_31 | core_gpio[0] @ 0x41100000 | GPIO | -| P8_32 | core_gpio[1] @ 0x41100000 | GPIO | -| P8_33 | core_gpio[2] @ 0x41100000 | GPIO | -| P8_34 | core_gpio[3] @ 0x41100000 | GPIO | -| P8_35 | core_gpio[4] @ 0x41100000 | GPIO | -| P8_36 | core_gpio[5] @ 0x41100000 | GPIO | -| P8_37 | core_gpio[6] @ 0x41100000 | GPIO | -| P8_38 | core_gpio[7] @ 0x41100000 | GPIO | -| P8_39 | core_gpio[8] @ 0x41100000 | GPIO | -| P8_40 | core_gpio[9] @ 0x41100000 | GPIO | -| P8_41 | core_gpio[10] @ 0x41100000 | GPIO | -| P8_42 | core_gpio[11] @ 0x41100000 | GPIO | -| P8_43 | core_gpio[12] @ 0x41100000 | GPIO | -| P8_44 | core_gpio[13] @ 0x41100000 | GPIO | -| P8_45 | core_gpio[14] @ 0x41100000 | GPIO | -| P8_46 | core_gpio[15] @ 0x41100000 | GPIO | +| Signal | Control | Irq # | Description | +|--------|----------------------------|-------|-------------| +| P8_1 | n/a | n/a | GND | +| P8_2 | n/a | n/a | GND | +| P8_3 | MSS GPIO_2[0] | 53 | User LED 0 | +| P8_4 | MSS GPIO_2[1] | 53 | User LED 1 | +| P8_5 | MSS GPIO_2[2] | 53 | User LED 2 | +| P8_6 | MSS GPIO_2[3] | 53 | User LED 3 | +| P8_7 | MSS GPIO_2[4] | 53 | User LED 4 | +| P8_8 | MSS GPIO_2[5] | 53 | User LED 5 | +| P8_9 | MSS GPIO_2[6] | 53 | User LED 6 | +| P8_10 | MSS GPIO_2[7] | 53 | User LED 7 | +| P8_11 | MSS GPIO_2[8] | 53 | User LED 8 | +| P8_12 | MSS GPIO_2[9] | 53 | User LED 9 | +| P8_13 | core_pwm[1] @ 0x41500000 | n/a | PWM_2:1 | +| P8_14 | MSS GPIO_2[11] | 53 | User LED 11 | +| P8_15 | MSS GPIO_2[12] | 53 | GPIO | +| P8_16 | MSS GPIO_2[13] | 53 | GPIO | +| P8_17 | MSS GPIO_2[14] | 53 | GPIO | +| P8_18 | MSS GPIO_2[15] | 53 | GPIO | +| P8_19 | core_pwm[0] @ 0x41500000 | n/a | PWM_2:0 | +| P8_20 | MSS GPIO_2[17] | 53 | GPIO | +| P8_21 | MSS GPIO_2[18] | 53 | GPIO | +| P8_22 | MSS GPIO_2[19] | 53 | GPIO | +| P8_23 | MSS GPIO_2[20] | 53 | GPIO | +| P8_24 | MSS GPIO_2[21] | 53 | GPIO | +| P8_25 | MSS GPIO_2[22] | 53 | GPIO | +| P8_26 | MSS GPIO_2[23] | 53 | GPIO | +| P8_27 | MSS GPIO_2[24] | 53 | GPIO | +| P8_28 | MSS GPIO_2[25] | 53 | GPIO | +| P8_29 | MSS GPIO_2[26] | 53 | GPIO | +| P8_30 | MSS GPIO_2[27] | 53 | GPIO | +| P8_31 | core_gpio[0] @ 0x41100000 | 126 | GPIO | +| P8_32 | core_gpio[1] @ 0x41100000 | 127 | GPIO | +| P8_33 | core_gpio[2] @ 0x41100000 | 128 | GPIO | +| P8_34 | core_gpio[3] @ 0x41100000 | 129 | GPIO | +| P8_35 | core_gpio[4] @ 0x41100000 | 130 | GPIO | +| P8_36 | core_gpio[5] @ 0x41100000 | 131 | GPIO | +| P8_37 | core_gpio[6] @ 0x41100000 | 132 | GPIO | +| P8_38 | core_gpio[7] @ 0x41100000 | 133 | GPIO | +| P8_39 | core_gpio[8] @ 0x41100000 | 134 | GPIO | +| P8_40 | core_gpio[9] @ 0x41100000 | 135 | GPIO | +| P8_41 | core_gpio[10] @ 0x41100000 | 136 | GPIO | +| P8_42 | core_gpio[11] @ 0x41100000 | 137 | GPIO | +| P8_43 | core_gpio[12] @ 0x41100000 | 138 | GPIO | +| P8_44 | core_gpio[13] @ 0x41100000 | 139 | GPIO | +| P8_45 | core_gpio[14] @ 0x41100000 | 140 | GPIO | +| P8_46 | core_gpio[15] @ 0x41100000 | 141 | GPIO | ## P9 Header -| Signal | Control | Description | -|--------|----------------------------|-------------| -| P9_1 | n/a | GND | -| P9_2 | n/a | GND | -| P9_3 | n/a | VCC 3.3V | -| P9_4 | n/a | VCC 3.3V | -| P9_5 | n/a | VDD 5V | -| P9_6 | n/a | VDD 5V | -| P9_7 | n/a | SYS 5V | -| P9_8 | n/a | SYS 5V | -| P9_9 | n/a | NC | -| P9_10 | n/a | SYS_RSTN | -| P9_11 | | | -| P9_12 | core_gpio[0] @ 0x41200000 | GPIO | -| P9_13 | core_gpio[7] @ 0x41200000 | GPIO | -| P9_14 | core_pwm[0] @ 0x41400000 | PWM_1:0 | -| P9_15 | core_gpio[1] @ 0x41200000 | GPIO | -| P9_16 | core_pwm[1] @ 0x41400000 | PWM_1:1 | -| P9_17 | | | -| P9_18 | | | -| P9_19 | MSS I2C0 | I2C0 SCL | -| P9_20 | MSS I2C0 | I2C0 SDA | -| P9_21 | | | -| P9_22 | | | -| P9_23 | core_gpio[2] @ 0x41200000 | GPIO | -| P9_24 | | | -| P9_25 | core_gpio[3] @ 0x41200000 | GPIO | -| P9_26 | | | -| P9_27 | | | -| P9_28 | | | -| P9_29 | | | -| P9_30 | core_gpio[5] @ 0x41200000 | GPIO | -| P9_31 | | | -| P9_32 | n/a | VDD ADC | -| P9_33 | n/a | ADC input 4 | -| P9_34 | n/a | AGND | -| P9_35 | n/a | ADC input 6 | -| P9_36 | n/a | ADC input 5 | -| P9_37 | n/a | ADC input 2 | -| P9_38 | n/a | ADC input 3 | -| P9_39 | n/a | ADC input 0 | -| P9_40 | n/a | ADC input 1 | -| P9_41 | core_gpio[19] @ 0x41200000 | GPIO | -| P9_42 | | | -| P9_43 | n/a | GND | -| P9_44 | n/a | GND | -| P9_45 | n/a | GND | -| P9_46 | n/a | GND | +| Signal | Control | Irq # | Description | +|--------|----------------------------|-------|-------------| +| P9_1 | n/a | n/a | GND | +| P9_2 | n/a | n/a | GND | +| P9_3 | n/a | n/a | VCC 3.3V | +| P9_4 | n/a | n/a | VCC 3.3V | +| P9_5 | n/a | n/a | VDD 5V | +| P9_6 | n/a | n/a | VDD 5V | +| P9_7 | n/a | n/a | SYS 5V | +| P9_8 | n/a | n/a | SYS 5V | +| P9_9 | n/a | n/a | NC | +| P9_10 | n/a | n/a | SYS_RSTN | +| P9_11 | | | | +| P9_12 | core_gpio[0] @ 0x41200000 | 142 | GPIO | +| P9_13 | core_gpio[7] @ 0x41200000 | 149 | GPIO | +| P9_14 | core_pwm[0] @ 0x41400000 | n/a | PWM_1:0 | +| P9_15 | core_gpio[1] @ 0x41200000 | 143 | GPIO | +| P9_16 | core_pwm[1] @ 0x41400000 | n/a | PWM_1:1 | +| P9_17 | | | | +| P9_18 | | | | +| P9_19 | MSS I2C0 | 58 | I2C0 SCL | +| P9_20 | MSS I2C0 | 58 | I2C0 SDA | +| P9_21 | | | | +| P9_22 | | | | +| P9_23 | core_gpio[2] @ 0x41200000 | 144 | GPIO | +| P9_24 | | | | +| P9_25 | core_gpio[3] @ 0x41200000 | 145 | GPIO | +| P9_26 | | | | +| P9_27 | | | | +| P9_28 | | | | +| P9_29 | | | | +| P9_30 | core_gpio[5] @ 0x41200000 | 147 | GPIO | +| P9_31 | | | | +| P9_32 | n/a | n/a | VDD ADC | +| P9_33 | n/a | n/a | ADC input 4 | +| P9_34 | n/a | n/a | AGND | +| P9_35 | n/a | n/a | ADC input 6 | +| P9_36 | n/a | n/a | ADC input 5 | +| P9_37 | n/a | n/a | ADC input 2 | +| P9_38 | n/a | n/a | ADC input 3 | +| P9_39 | n/a | n/a | ADC input 0 | +| P9_40 | n/a | n/a | ADC input 1 | +| P9_41 | core_gpio[6] @ 0x41200000 | 148 | GPIO | +| P9_42 | | | | +| P9_43 | n/a | n/a | GND | +| P9_44 | n/a | n/a | GND | +| P9_45 | n/a | n/a | GND | +| P9_46 | n/a | n/a | GND | diff --git a/sources/FPGA-design/script_support/components/CAPE/VERILOG_TEMPLATE/ADD_CAPE.tcl b/sources/FPGA-design/script_support/components/CAPE/VERILOG_TEMPLATE/ADD_CAPE.tcl index c47747dda858bc2bb01d14a9d972e769f65ec660..d6ca7b5ac44794ec25f464c99125ba335e9d83fe 100644 --- a/sources/FPGA-design/script_support/components/CAPE/VERILOG_TEMPLATE/ADD_CAPE.tcl +++ b/sources/FPGA-design/script_support/components/CAPE/VERILOG_TEMPLATE/ADD_CAPE.tcl @@ -122,8 +122,9 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE:APB_TARGET" "BVF_RISCV_SUB sd_mark_pins_unused -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MMUART_4_TXD} sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MMUART_4_RXD} -value {GND} -sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M} -pin_slices {"[26:3]"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_INT_F2M[26:3]" "CAPE:INT"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M} -pin_slices {"[58:27]"} -sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M[58:27]} -value {GND} +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_A} +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_B} +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_C} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_A" "CAPE:INT_A"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_B" "CAPE:INT_B"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_C" "CAPE:INT_C"} diff --git a/sources/FPGA-design/script_support/components/CAPE/VERILOG_TEMPLATE/HDL/CAPE.v b/sources/FPGA-design/script_support/components/CAPE/VERILOG_TEMPLATE/HDL/CAPE.v index ebf07ca15103e72e12e9e50035f0ae49cf52b1ca..eeffe7560a8db259abf365ce418fe80afe81b637 100644 --- a/sources/FPGA-design/script_support/components/CAPE/VERILOG_TEMPLATE/HDL/CAPE.v +++ b/sources/FPGA-design/script_support/components/CAPE/VERILOG_TEMPLATE/HDL/CAPE.v @@ -20,7 +20,9 @@ module CAPE( // Outputs APB_SLAVE_SLAVE_PRDATA, GPIO_IN, - INT, + INT_A, + INT_B, + INT_C, // Inouts P8_3, P8_4, @@ -106,7 +108,9 @@ input PRESETN; //-------------------------------------------------------------------- output [31:0] APB_SLAVE_SLAVE_PRDATA; output [27:0] GPIO_IN; -output [23:0] INT; +output [7:0] INT_A; +output [7:0] INT_B; +output [7:0] INT_C; //-------------------------------------------------------------------- // Inout //-------------------------------------------------------------------- @@ -263,7 +267,6 @@ wire [46:3] GPIO_IN_net_2; //-------------------------------------------------------------------- // TiedOff Nets //-------------------------------------------------------------------- -wire [23:0] INT_const_net_0; wire [46:31] GPIO_OE_const_net_0; wire [46:31] GPIO_OUT_const_net_0; wire [18:11] GPIO_OE_const_net_1; @@ -281,7 +284,6 @@ wire [7:0] APB_SLAVE_SLAVE_PADDR_0_7to0; //-------------------------------------------------------------------- // Constant assignments //-------------------------------------------------------------------- -assign INT_const_net_0 = 24'h000000; assign GPIO_OE_const_net_0 = 16'h0000; assign GPIO_OUT_const_net_0 = 16'h0000; assign GPIO_OE_const_net_1 = 8'h00; @@ -293,7 +295,9 @@ assign GPIO_OUT_const_net_3 = 2'h0; //-------------------------------------------------------------------- // TieOff assignments //-------------------------------------------------------------------- -assign INT[23:0] = 24'h000000; +assign INT_A[7:0] = 8'h00; +assign INT_B[7:0] = 8'h00; +assign INT_C[7:0] = 8'h00; //-------------------------------------------------------------------- // Top level output port assignments //-------------------------------------------------------------------- diff --git a/sources/FPGA-design/script_support/components/CAPE/VERILOG_TUTORIAL/ADD_CAPE.tcl b/sources/FPGA-design/script_support/components/CAPE/VERILOG_TUTORIAL/ADD_CAPE.tcl index 4a3fdecae12c14f29c6a34517383ffce9eb69d95..dcafa338953ca18d8b2a1e0ff1dd23c754efe940 100644 --- a/sources/FPGA-design/script_support/components/CAPE/VERILOG_TUTORIAL/ADD_CAPE.tcl +++ b/sources/FPGA-design/script_support/components/CAPE/VERILOG_TUTORIAL/ADD_CAPE.tcl @@ -123,8 +123,9 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE:APB_TARGET" "BVF_RISCV_SUB sd_mark_pins_unused -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MMUART_4_TXD} sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MMUART_4_RXD} -value {GND} -sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M} -pin_slices {"[26:3]"} -sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_INT_F2M[26:3]" "CAPE:INT"} -sd_create_pin_slices -sd_name ${sd_name} -pin_name {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M} -pin_slices {"[58:27]"} -sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M[58:27]} -value {GND} +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_A} +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_B} +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_C} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_A" "CAPE:INT_A"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_B" "CAPE:INT_B"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_INT_F2M_C" "CAPE:INT_C"} diff --git a/sources/FPGA-design/script_support/components/CAPE/VERILOG_TUTORIAL/HDL/CAPE.v b/sources/FPGA-design/script_support/components/CAPE/VERILOG_TUTORIAL/HDL/CAPE.v index 33ffb165063c55e960aa1c6c43cb9fe47b53a319..3e0f99205c2b45a0b28c09b64275898f23b9b6a6 100644 --- a/sources/FPGA-design/script_support/components/CAPE/VERILOG_TUTORIAL/HDL/CAPE.v +++ b/sources/FPGA-design/script_support/components/CAPE/VERILOG_TUTORIAL/HDL/CAPE.v @@ -20,7 +20,9 @@ module CAPE( // Outputs APB_SLAVE_SLAVE_PRDATA, GPIO_IN, - INT, + INT_A, + INT_B, + INT_C, // Inouts P8_3, P8_4, @@ -106,7 +108,9 @@ input PRESETN; //-------------------------------------------------------------------- output [31:0] APB_SLAVE_SLAVE_PRDATA; output [27:0] GPIO_IN; -output [23:0] INT; +output [7:0] INT_A; +output [7:0] INT_B; +output [7:0] INT_C; //-------------------------------------------------------------------- // Inout //-------------------------------------------------------------------- @@ -264,7 +268,6 @@ wire [46:3] GPIO_IN_net_2; //-------------------------------------------------------------------- // TiedOff Nets //-------------------------------------------------------------------- -wire [23:0] INT_const_net_0; wire [46:31] GPIO_OE_const_net_0; wire [46:31] GPIO_OUT_const_net_0; wire [18:11] GPIO_OE_const_net_1; @@ -282,7 +285,6 @@ wire [7:0] APB_SLAVE_SLAVE_PADDR_0_7to0; //-------------------------------------------------------------------- // Constant assignments //-------------------------------------------------------------------- -assign INT_const_net_0 = 24'h000000; assign GPIO_OE_const_net_0 = 16'h0000; assign GPIO_OUT_const_net_0 = 16'h0000; assign GPIO_OE_const_net_1 = 8'h00; @@ -294,7 +296,9 @@ assign GPIO_OUT_const_net_3 = 2'h0; //-------------------------------------------------------------------- // TieOff assignments //-------------------------------------------------------------------- -assign INT[23:0] = 24'h000000; +assign INT_A[7:0] = 8'h00; +assign INT_B[7:0] = 8'h00; +assign INT_C[7:0] = 8'h00; //-------------------------------------------------------------------- // Top level output port assignments //-------------------------------------------------------------------- diff --git a/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/ADD_HIGH_SPEED_CONNECTOR.tcl b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/ADD_HIGH_SPEED_CONNECTOR.tcl new file mode 100644 index 0000000000000000000000000000000000000000..8aaede0d795e00bd0c9404900d9a153d2af204eb --- /dev/null +++ b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/ADD_HIGH_SPEED_CONNECTOR.tcl @@ -0,0 +1,119 @@ + +puts "======== Add High Speed Connector option: LOOPBACK_3_LANES_OPAL_KELLY ========" + +#BOARD_VALIDATION_OPAL_KELLY_3_LANES + +# Import source files +import_files -hdl_source {script_support/HDL/XCVR_LOOPBACK/pattern_chk.v} +import_files -hdl_source {script_support/HDL/XCVR_LOOPBACK/pattern_gen.v} +import_files -hdl_source {script_support/HDL/XCVR_LOOPBACK/startup.v} + +build_design_hierarchy +create_hdl_core -file $project_dir/hdl/startup.v -module {STARTUP} -library {work} -package {} +create_hdl_core -file $project_dir/hdl/pattern_chk.v -module {PATTERN_CHK} -library {work} -package {} +create_hdl_core -file $project_dir/hdl/pattern_gen.v -module {PATTERN_GEN} -library {work} -package {} + + +source script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_CLK_DIV_C0.tcl +source script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_TX_PLL_0.tcl +source script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_CCC_C0.tcl +source script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_XCVR_0.tcl +source script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_XCVR_REF_CLK_0.tcl +source script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/Reset_sync_rx.tcl +source script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/Reset_sync_tx.tcl +source script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/Reset_Block.tcl +source script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/XCVR_LOOPBACK.tcl + + + +source script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/PF_CCC_C1.tcl +source script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/PF_XCVR_REF_CLK_C0.tcl +source script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/PF_TX_PLL_XCVR1.tcl +source script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/HSIO_CoreGPIO_C0.tcl +source script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/HIGH_SPEED_INTERFACE.tcl + + + + +set sd_name ${top_level_name} + +sd_instantiate_component -sd_name ${sd_name} -component_name {HIGH_SPEED_INTERFACE} -instance_name {HIGH_SPEED_INTERFACE_0} + +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_RESET_N_M2F" "HIGH_SPEED_INTERFACE_0:EXT_RST_N"} + +sd_connect_pins -sd_name ${sd_name} -pin_names {"CLOCKS_AND_RESETS:DEVICE_INIT_DONE" "HIGH_SPEED_INTERFACE_0:DEVICE_INIT_DONE"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"CLOCKS_AND_RESETS:XCVR_INIT_DONE" "HIGH_SPEED_INTERFACE_0:XCVR_INIT_DONE"} + +sd_connect_pins -sd_name ${sd_name} -pin_names {"CLOCKS_AND_RESETS:RCOSC_160MHZ_GL" "HIGH_SPEED_INTERFACE_0:RCOSC_160MHZ_GL"} + +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_3_USER_LED_0} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_4_USER_LED_1} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_5_USER_LED_2} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_6_USER_LED_3} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_7_USER_LED_4} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_8_USER_LED_5} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_9_USER_LED_6} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_10_USER_LED_7} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_11_USER_LED_8} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_12_USER_LED_9} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_13_USER_LED_10} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_14_USER_LED_11} -port_direction {OUT} + + + + + + +sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR1_RX_VALID" "P8_3_USER_LED_0"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR1_LOCK" "P8_4_USER_LED_1"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR1_ERROR" "P8_5_USER_LED_2"} + +sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR2_RX_VALID" "P8_6_USER_LED_3"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR2_LOCK" "P8_7_USER_LED_4"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR2_ERROR" "P8_8_USER_LED_5"} + +sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR3_RX_VALID" "P8_9_USER_LED_6"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR3_LOCK" "P8_10_USER_LED_7"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR3_ERROR" "P8_11_USER_LED_8"} + +sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR_0B_REF_CLK_PLL_LOCK" "P8_12_USER_LED_9"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR_0C_REF_CLK_PLL_LOCK" "P8_13_USER_LED_10"} + +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {P8_14_USER_LED_11} -value {GND} + + +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HIGH_SPEED_INTERFACE_0:TEST_MODE_3_LED} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HIGH_SPEED_INTERFACE_0:TEST_MODE_2_LED} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HIGH_SPEED_INTERFACE_0:TEST_MODE_1_LED} + +sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {HIGH_SPEED_INTERFACE_0:B0_HSIO82P} -port_name {} +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MAC_1_MDI_F2M} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MAC_1_MDI_F2M" "HIGH_SPEED_INTERFACE_0:MAC_1_MDI_F2M"} +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MAC_1_MDO_M2F} +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MAC_1_MDO_OE_M2F} +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MAC_1_MDC_M2F} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MAC_1_MDC_M2F" "HIGH_SPEED_INTERFACE_0:MAC_1_MDC_M2F"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MAC_1_MDO_OE_M2F" "HIGH_SPEED_INTERFACE_0:MAC_1_MDO_OE_M2F"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MAC_1_MDO_M2F" "HIGH_SPEED_INTERFACE_0:MAC_1_MDO_M2F"} + +sd_connect_pins -sd_name ${sd_name} -pin_names {"CLOCKS_AND_RESETS:FIC_3_PCLK" "HIGH_SPEED_INTERFACE_0:PCLK"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"CLOCKS_AND_RESETS:FIC_3_FABRIC_RESET_N" "HIGH_SPEED_INTERFACE_0:PRESETN"} +sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:HSI_APB_MTARGET} +sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:HSI_APB_MTARGET" "HIGH_SPEED_INTERFACE_0:APB_TARGET"} +sd_connect_pins -sd_name ${sd_name} -pin_names {"CLOCKS_AND_RESETS:FIC_0_FABRIC_RESET_N" "HIGH_SPEED_INTERFACE_0:SYS_RESET_N"} +sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {HIGH_SPEED_INTERFACE_0:B0_HSIO83N} -port_name {} +sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {HIGH_SPEED_INTERFACE_0:B0_HSIO70P} -port_name {} +sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {HIGH_SPEED_INTERFACE_0:B0_HSIO71P} -port_name {} +sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {HIGH_SPEED_INTERFACE_0:B0_HSIO73P_C2P_CLKP} -port_name {} +sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {HIGH_SPEED_INTERFACE_0:B0_HSIO81N} -port_name {} +sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {HIGH_SPEED_INTERFACE_0:B0_HSIO83P} -port_name {} +sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {HIGH_SPEED_INTERFACE_0:B0_HSIO70N} -port_name {} +sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {HIGH_SPEED_INTERFACE_0:B0_HSIO71N} -port_name {} +sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {HIGH_SPEED_INTERFACE_0:B0_HSIO73N_C2P_CLKN} -port_name {} +sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {HIGH_SPEED_INTERFACE_0:B0_HSIO81P} -port_name {} + +# Override software control of VIO. +sd_delete_nets -sd_name ${sd_name} -net_names {VIO_ENABLE} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:VIO_ENABLE} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {VIO_ENABLE} -value {GND} + diff --git a/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/HIGH_SPEED_INTERFACE.tcl b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/HIGH_SPEED_INTERFACE.tcl new file mode 100644 index 0000000000000000000000000000000000000000..1e4c53ea9ef180c2695bed7e44d7313c1a1a4835 --- /dev/null +++ b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/HIGH_SPEED_INTERFACE.tcl @@ -0,0 +1,292 @@ +# Creating SmartDesign HIGH_SPEED_INTERFACE +set sd_name {HIGH_SPEED_INTERFACE} +create_smartdesign -sd_name ${sd_name} + +# Disable auto promotion of pins of type 'pad' +auto_promote_pad_pins -promote_all 0 + +# Create top level Scalar Ports +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_TARGET_PENABLE} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_TARGET_PSEL} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_TARGET_PWRITE} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO70P} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO71P} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO73P_C2P_CLKP} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO81N} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO83P} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {DEVICE_INIT_DONE} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {EXT_RST_N} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {MAC_1_MDC_M2F} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {MAC_1_MDO_M2F} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {MAC_1_MDO_OE_M2F} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {PCLK} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {PRESETN} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {RCOSC_160MHZ_GL} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {SYS_RESET_N} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_0B_REFCLK_N} -port_direction {IN} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_0B_REFCLK_P} -port_direction {IN} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_0C_REFCLK_N} -port_direction {IN} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_0C_REFCLK_P} -port_direction {IN} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_INIT_DONE} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_RX1_N} -port_direction {IN} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_RX1_P} -port_direction {IN} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_RX2_N} -port_direction {IN} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_RX2_P} -port_direction {IN} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_RX3_N} -port_direction {IN} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_RX3_P} -port_direction {IN} -port_is_pad {1} + +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_TARGET_PREADY} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_TARGET_PSLVERR} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO70N} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO71N} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO73N_C2P_CLKN} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO81P} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO82P} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO83N} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {MAC_1_MDI_F2M} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {TEST_MODE_0_LED} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {TEST_MODE_1_LED} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {TEST_MODE_2_LED} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {TEST_MODE_3_LED} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR1_ERROR} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR1_LOCK} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR1_RX_VALID} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR2_ERROR} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR2_LOCK} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR2_RX_VALID} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR3_ERROR} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR3_LOCK} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR3_RX_VALID} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_0B_REF_CLK_PLL_LOCK} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_0C_REF_CLK_PLL_LOCK} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_TX1_N} -port_direction {OUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_TX1_P} -port_direction {OUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_TX2_N} -port_direction {OUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_TX2_P} -port_direction {OUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_TX3_N} -port_direction {OUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_TX3_P} -port_direction {OUT} -port_is_pad {1} + +sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO82N} -port_direction {INOUT} -port_is_pad {1} + +# Create top level Bus Ports +sd_create_bus_port -sd_name ${sd_name} -port_name {APB_TARGET_PADDR} -port_direction {IN} -port_range {[7:0]} +sd_create_bus_port -sd_name ${sd_name} -port_name {APB_TARGET_PWDATA} -port_direction {IN} -port_range {[31:0]} + +sd_create_bus_port -sd_name ${sd_name} -port_name {APB_TARGET_PRDATA} -port_direction {OUT} -port_range {[31:0]} + + +# Create top level Bus interface Ports +sd_create_bif_port -sd_name ${sd_name} -port_name {APB_TARGET} -port_bif_vlnv {AMBA:AMBA2:APB:r0p0} -port_bif_role {slave} -port_bif_mapping {\ +"PADDR:APB_TARGET_PADDR" \ +"PSELx:APB_TARGET_PSEL" \ +"PENABLE:APB_TARGET_PENABLE" \ +"PWRITE:APB_TARGET_PWRITE" \ +"PRDATA:APB_TARGET_PRDATA" \ +"PWDATA:APB_TARGET_PWDATA" \ +"PREADY:APB_TARGET_PREADY" \ +"PSLVERR:APB_TARGET_PSLVERR" } + +# Add AND2_0 instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {AND2} -instance_name {AND2_0} + + + +# Add BIBUF_0 instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {BIBUF_0} + + + +# Add HSIO_CoreGPIO_C0_0 instance +sd_instantiate_component -sd_name ${sd_name} -component_name {HSIO_CoreGPIO_C0} -instance_name {HSIO_CoreGPIO_C0_0} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[0:0]} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_IN[0:0]} -value {GND} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[10:10]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[11:11]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[12:12]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[13:13]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[14:14]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[15:15]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[16:16]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[17:17]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[18:18]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[19:19]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[1:1]} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_IN[1:1]} -value {GND} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[2:2]} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_IN[2:2]} -value {GND} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[3:3]} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_IN[3:3]} -value {GND} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[4:4]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[5:5]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[6:6]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[7:7]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[8:8]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[9:9]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[0:0]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[10:10]} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[10:10]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[11:11]} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[11:11]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[12:12]} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[12:12]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[13:13]} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[13:13]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[14:14]} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[14:14]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[15:15]} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[15:15]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[16:16]} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[16:16]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[17:17]} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[17:17]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[18:18]} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[18:18]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[19:19]} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[19:19]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[1:1]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[2:2]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[3:3]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[4:4]} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[4:4]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[5:5]} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[5:5]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[6:6]} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[6:6]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[7:7]} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[7:7]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[8:8]} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[8:8]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[9:9]} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[9:9]} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:INT} + + + +# Add PF_CCC_C0_0 instance +sd_instantiate_component -sd_name ${sd_name} -component_name {PF_CCC_C0} -instance_name {PF_CCC_C0_0} + + + +# Add PF_CCC_C1_0 instance +sd_instantiate_component -sd_name ${sd_name} -component_name {PF_CCC_C1} -instance_name {PF_CCC_C1_0} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {PF_CCC_C1_0:PLL_POWERDOWN_N_0} -value {VCC} + + + +# Add PF_CLK_DIV_C0_0 instance +sd_instantiate_component -sd_name ${sd_name} -component_name {PF_CLK_DIV_C0} -instance_name {PF_CLK_DIV_C0_0} + + + +# Add PF_TX_PLL_0_0 instance +sd_instantiate_component -sd_name ${sd_name} -component_name {PF_TX_PLL_0} -instance_name {PF_TX_PLL_0_0} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {PF_TX_PLL_0_0:CLK_125} + + + +# Add PF_XCVR_REF_CLK_0_0 instance +sd_instantiate_component -sd_name ${sd_name} -component_name {PF_XCVR_REF_CLK_0} -instance_name {PF_XCVR_REF_CLK_0_0} + + + +# Add PF_XCVR_REF_CLK_C0_0 instance +sd_instantiate_component -sd_name ${sd_name} -component_name {PF_XCVR_REF_CLK_C0} -instance_name {PF_XCVR_REF_CLK_C0_0} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {PF_XCVR_REF_CLK_C0_0:REF_CLK} + + + +# Add XCVR_LOOPBACK_3 instance +sd_instantiate_component -sd_name ${sd_name} -component_name {XCVR_LOOPBACK} -instance_name {XCVR_LOOPBACK_3} + + + +# Add XCVR_LOOPBACK_1 instance +sd_instantiate_component -sd_name ${sd_name} -component_name {XCVR_LOOPBACK} -instance_name {XCVR_LOOPBACK_1} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {XCVR_LOOPBACK_1:TEST_MODE_0_LED} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {XCVR_LOOPBACK_1:TEST_MODE_1_LED} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {XCVR_LOOPBACK_1:TEST_MODE_2_LED} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {XCVR_LOOPBACK_1:TEST_MODE_3_LED} + + + +# Add XCVR_LOOPBACK_2 instance +sd_instantiate_component -sd_name ${sd_name} -component_name {XCVR_LOOPBACK} -instance_name {XCVR_LOOPBACK_2} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {XCVR_LOOPBACK_2:TEST_MODE_0_LED} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {XCVR_LOOPBACK_2:TEST_MODE_1_LED} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {XCVR_LOOPBACK_2:TEST_MODE_2_LED} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {XCVR_LOOPBACK_2:TEST_MODE_3_LED} + + + +# Add scalar net connections +sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:A" "HSIO_CoreGPIO_C0_0:GPIO_IN[17:17]" "PF_CCC_C0_0:PLL_LOCK_0" "XCVR_0B_REF_CLK_PLL_LOCK" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:B" "PF_TX_PLL_0_0:PLL_LOCK" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:Y" "XCVR_LOOPBACK_3:XCVR_REF_CLK_LOCK" "XCVR_LOOPBACK_2:XCVR_REF_CLK_LOCK" "XCVR_LOOPBACK_1:XCVR_REF_CLK_LOCK" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[18:18]" "PF_CCC_C1_0:PLL_LOCK_0" "XCVR_0C_REF_CLK_PLL_LOCK" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO70N" "HSIO_CoreGPIO_C0_0:GPIO_OUT[0:0]" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO70P" "HSIO_CoreGPIO_C0_0:GPIO_IN[4:4]" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO71N" "HSIO_CoreGPIO_C0_0:GPIO_OUT[1:1]" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO71P" "HSIO_CoreGPIO_C0_0:GPIO_IN[5:5]" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO73N_C2P_CLKN" "HSIO_CoreGPIO_C0_0:GPIO_OUT[3:3]" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO73P_C2P_CLKP" "HSIO_CoreGPIO_C0_0:GPIO_IN[7:7]" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO81N" "HSIO_CoreGPIO_C0_0:GPIO_IN[19:19]" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO81P" "SYS_RESET_N" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO82N" "BIBUF_0:PAD" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO82P" "MAC_1_MDC_M2F" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO83N" "HSIO_CoreGPIO_C0_0:GPIO_OUT[2:2]" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO83P" "HSIO_CoreGPIO_C0_0:GPIO_IN[6:6]" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"BIBUF_0:D" "MAC_1_MDO_M2F" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"BIBUF_0:E" "MAC_1_MDO_OE_M2F" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"BIBUF_0:Y" "MAC_1_MDI_F2M" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"DEVICE_INIT_DONE" "XCVR_LOOPBACK_3:DEVICE_INIT_DONE" "XCVR_LOOPBACK_1:DEVICE_INIT_DONE" "XCVR_LOOPBACK_2:DEVICE_INIT_DONE" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"EXT_RST_N" "XCVR_LOOPBACK_3:EXT_RST_N" "XCVR_LOOPBACK_1:EXT_RST_N" "XCVR_LOOPBACK_2:EXT_RST_N" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[10:10]" "XCVR1_ERROR" "XCVR_LOOPBACK_1:error_o" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[11:11]" "XCVR2_RX_VALID" "XCVR_LOOPBACK_2:rx_val_o" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[12:12]" "XCVR2_LOCK" "XCVR_LOOPBACK_2:lock_o" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[13:13]" "XCVR2_ERROR" "XCVR_LOOPBACK_2:error_o" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[14:14]" "XCVR3_RX_VALID" "XCVR_LOOPBACK_3:rx_val_o" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[15:15]" "XCVR3_LOCK" "XCVR_LOOPBACK_3:lock_o" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[16:16]" "XCVR3_ERROR" "XCVR_LOOPBACK_3:error_o" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[8:8]" "XCVR1_RX_VALID" "XCVR_LOOPBACK_1:rx_val_o" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[9:9]" "XCVR1_LOCK" "XCVR_LOOPBACK_1:lock_o" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:PCLK" "PCLK" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:PRESETN" "PRESETN" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_CCC_C0_0:OUT0_FABCLK_0" "PF_TX_PLL_0_0:FAB_REF_CLK" "XCVR_LOOPBACK_3:XCVR_REF_CLK" "XCVR_LOOPBACK_2:XCVR_REF_CLK" "XCVR_LOOPBACK_1:XCVR_REF_CLK" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_CCC_C0_0:REF_CLK_0" "PF_XCVR_REF_CLK_0_0:REF_CLK" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_CCC_C1_0:REF_CLK_0" "PF_XCVR_REF_CLK_C0_0:FAB_REF_CLK" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_CLK_DIV_C0_0:CLK_IN" "RCOSC_160MHZ_GL" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_CLK_DIV_C0_0:CLK_OUT" "XCVR_LOOPBACK_3:RCOSC_160MHZ_GL" "XCVR_LOOPBACK_1:RCOSC_160MHZ_GL" "XCVR_LOOPBACK_2:RCOSC_160MHZ_GL" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_REF_CLK_0_0:REF_CLK_PAD_N" "XCVR_0B_REFCLK_N" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_REF_CLK_0_0:REF_CLK_PAD_P" "XCVR_0B_REFCLK_P" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_REF_CLK_C0_0:REF_CLK_PAD_N" "XCVR_0C_REFCLK_N" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_REF_CLK_C0_0:REF_CLK_PAD_P" "XCVR_0C_REFCLK_P" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"TEST_MODE_0_LED" "XCVR_LOOPBACK_3:TEST_MODE_0_LED" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"TEST_MODE_1_LED" "XCVR_LOOPBACK_3:TEST_MODE_1_LED" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"TEST_MODE_2_LED" "XCVR_LOOPBACK_3:TEST_MODE_2_LED" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"TEST_MODE_3_LED" "XCVR_LOOPBACK_3:TEST_MODE_3_LED" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_INIT_DONE" "XCVR_LOOPBACK_3:XCVR_INIT_DONE" "XCVR_LOOPBACK_1:XCVR_INIT_DONE" "XCVR_LOOPBACK_2:XCVR_INIT_DONE" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_3:LANE0_RXD_N" "XCVR_RX3_N" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_3:LANE0_RXD_P" "XCVR_RX3_P" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_3:LANE0_TXD_N" "XCVR_TX3_N" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_3:LANE0_TXD_P" "XCVR_TX3_P" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_1:LANE0_RXD_N" "XCVR_RX1_N" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_1:LANE0_RXD_P" "XCVR_RX1_P" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_1:LANE0_TXD_N" "XCVR_TX1_N" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_1:LANE0_TXD_P" "XCVR_TX1_P" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_2:LANE0_RXD_N" "XCVR_RX2_N" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_2:LANE0_RXD_P" "XCVR_RX2_P" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_2:LANE0_TXD_N" "XCVR_TX2_N" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_2:LANE0_TXD_P" "XCVR_TX2_P" } + + +# Add bus interface net connections +sd_connect_pins -sd_name ${sd_name} -pin_names {"APB_TARGET" "HSIO_CoreGPIO_C0_0:APB_bif" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_TX_PLL_0_0:CLKS_TO_XCVR" "XCVR_LOOPBACK_3:CLKS_FROM_TXPLL_0" "XCVR_LOOPBACK_2:CLKS_FROM_TXPLL_0" "XCVR_LOOPBACK_1:CLKS_FROM_TXPLL_0"} +#sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_TX_PLL_XCVR1_0:CLKS_TO_XCVR" "XCVR_LOOPBACK_1:CLKS_FROM_TXPLL_0" } + +# Re-enable auto promotion of pins of type 'pad' +auto_promote_pad_pins -promote_all 1 +# Save the smartDesign +save_smartdesign -sd_name ${sd_name} +# Generate SmartDesign HIGH_SPEED_INTERFACE +generate_component -component_name ${sd_name} diff --git a/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/HSIO_CoreGPIO_C0.tcl b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/HSIO_CoreGPIO_C0.tcl new file mode 100644 index 0000000000000000000000000000000000000000..8b5fec733627d0faec5d0d43cde1e421c570d031 --- /dev/null +++ b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/HSIO_CoreGPIO_C0.tcl @@ -0,0 +1,138 @@ +# Exporting Component Description of HSIO_CoreGPIO_C0 to TCL +# Family: PolarFireSoC +# Part Number: MPFS025T-FCVG484E +# Create and Configure the core component HSIO_CoreGPIO_C0 +create_and_configure_core -core_vlnv {Actel:DirectCore:CoreGPIO:3.2.102} -component_name {HSIO_CoreGPIO_C0} -params {\ +"APB_WIDTH:32" \ +"FIXED_CONFIG_0:true" \ +"FIXED_CONFIG_1:true" \ +"FIXED_CONFIG_2:true" \ +"FIXED_CONFIG_3:true" \ +"FIXED_CONFIG_4:true" \ +"FIXED_CONFIG_5:true" \ +"FIXED_CONFIG_6:true" \ +"FIXED_CONFIG_7:true" \ +"FIXED_CONFIG_8:true" \ +"FIXED_CONFIG_9:true" \ +"FIXED_CONFIG_10:true" \ +"FIXED_CONFIG_11:true" \ +"FIXED_CONFIG_12:true" \ +"FIXED_CONFIG_13:true" \ +"FIXED_CONFIG_14:true" \ +"FIXED_CONFIG_15:true" \ +"FIXED_CONFIG_16:true" \ +"FIXED_CONFIG_17:true" \ +"FIXED_CONFIG_18:true" \ +"FIXED_CONFIG_19:true" \ +"FIXED_CONFIG_20:false" \ +"FIXED_CONFIG_21:false" \ +"FIXED_CONFIG_22:false" \ +"FIXED_CONFIG_23:false" \ +"FIXED_CONFIG_24:false" \ +"FIXED_CONFIG_25:false" \ +"FIXED_CONFIG_26:false" \ +"FIXED_CONFIG_27:false" \ +"FIXED_CONFIG_28:false" \ +"FIXED_CONFIG_29:false" \ +"FIXED_CONFIG_30:false" \ +"FIXED_CONFIG_31:false" \ +"INT_BUS:0" \ +"IO_INT_TYPE_0:7" \ +"IO_INT_TYPE_1:7" \ +"IO_INT_TYPE_2:7" \ +"IO_INT_TYPE_3:7" \ +"IO_INT_TYPE_4:7" \ +"IO_INT_TYPE_5:7" \ +"IO_INT_TYPE_6:7" \ +"IO_INT_TYPE_7:7" \ +"IO_INT_TYPE_8:7" \ +"IO_INT_TYPE_9:7" \ +"IO_INT_TYPE_10:7" \ +"IO_INT_TYPE_11:7" \ +"IO_INT_TYPE_12:7" \ +"IO_INT_TYPE_13:7" \ +"IO_INT_TYPE_14:7" \ +"IO_INT_TYPE_15:7" \ +"IO_INT_TYPE_16:7" \ +"IO_INT_TYPE_17:7" \ +"IO_INT_TYPE_18:7" \ +"IO_INT_TYPE_19:7" \ +"IO_INT_TYPE_20:7" \ +"IO_INT_TYPE_21:7" \ +"IO_INT_TYPE_22:7" \ +"IO_INT_TYPE_23:7" \ +"IO_INT_TYPE_24:7" \ +"IO_INT_TYPE_25:7" \ +"IO_INT_TYPE_26:7" \ +"IO_INT_TYPE_27:7" \ +"IO_INT_TYPE_28:7" \ +"IO_INT_TYPE_29:7" \ +"IO_INT_TYPE_30:7" \ +"IO_INT_TYPE_31:7" \ +"IO_NUM:20" \ +"IO_TYPE_0:1" \ +"IO_TYPE_1:1" \ +"IO_TYPE_2:1" \ +"IO_TYPE_3:1" \ +"IO_TYPE_4:0" \ +"IO_TYPE_5:0" \ +"IO_TYPE_6:0" \ +"IO_TYPE_7:0" \ +"IO_TYPE_8:0" \ +"IO_TYPE_9:0" \ +"IO_TYPE_10:0" \ +"IO_TYPE_11:0" \ +"IO_TYPE_12:0" \ +"IO_TYPE_13:0" \ +"IO_TYPE_14:0" \ +"IO_TYPE_15:0" \ +"IO_TYPE_16:0" \ +"IO_TYPE_17:0" \ +"IO_TYPE_18:0" \ +"IO_TYPE_19:0" \ +"IO_TYPE_20:0" \ +"IO_TYPE_21:0" \ +"IO_TYPE_22:0" \ +"IO_TYPE_23:0" \ +"IO_TYPE_24:0" \ +"IO_TYPE_25:0" \ +"IO_TYPE_26:0" \ +"IO_TYPE_27:0" \ +"IO_TYPE_28:0" \ +"IO_TYPE_29:0" \ +"IO_TYPE_30:0" \ +"IO_TYPE_31:0" \ +"IO_VAL_0:0" \ +"IO_VAL_1:0" \ +"IO_VAL_2:0" \ +"IO_VAL_3:0" \ +"IO_VAL_4:0" \ +"IO_VAL_5:0" \ +"IO_VAL_6:0" \ +"IO_VAL_7:0" \ +"IO_VAL_8:0" \ +"IO_VAL_9:0" \ +"IO_VAL_10:0" \ +"IO_VAL_11:0" \ +"IO_VAL_12:0" \ +"IO_VAL_13:0" \ +"IO_VAL_14:0" \ +"IO_VAL_15:0" \ +"IO_VAL_16:0" \ +"IO_VAL_17:0" \ +"IO_VAL_18:0" \ +"IO_VAL_19:0" \ +"IO_VAL_20:0" \ +"IO_VAL_21:0" \ +"IO_VAL_22:0" \ +"IO_VAL_23:0" \ +"IO_VAL_24:0" \ +"IO_VAL_25:0" \ +"IO_VAL_26:0" \ +"IO_VAL_27:0" \ +"IO_VAL_28:0" \ +"IO_VAL_29:0" \ +"IO_VAL_30:0" \ +"IO_VAL_31:0" \ +"OE_TYPE:0" } +# Exporting Component Description of HSIO_CoreGPIO_C0 to TCL done diff --git a/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/PF_CCC_C1.tcl b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/PF_CCC_C1.tcl new file mode 100644 index 0000000000000000000000000000000000000000..2e1d947307a619e6cbecb43b2afbc50f7aaa2abb --- /dev/null +++ b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/PF_CCC_C1.tcl @@ -0,0 +1,249 @@ +# Exporting Component Description of PF_CCC_C1 to TCL +# Family: PolarFireSoC +# Part Number: MPFS025T-FCVG484E +# Create and Configure the core component PF_CCC_C1 +create_and_configure_core -core_vlnv {Actel:SgCore:PF_CCC:*} -component_name {PF_CCC_C1} -params {\ +"DLL_CLK_0_BANKCLK_EN:false" \ +"DLL_CLK_0_DEDICATED_EN:false" \ +"DLL_CLK_0_FABCLK_EN:false" \ +"DLL_CLK_1_BANKCLK_EN:false" \ +"DLL_CLK_1_DEDICATED_EN:false" \ +"DLL_CLK_1_FABCLK_EN:false" \ +"DLL_CLK_P_EN:false" \ +"DLL_CLK_P_OPTIONS_EN:false" \ +"DLL_CLK_REF_OPTION:DIVIDE_BY_1" \ +"DLL_CLK_REF_OPTIONS_EN:false" \ +"DLL_CLK_S_EN:false" \ +"DLL_CLK_S_OPTION:DIVIDE_BY_1" \ +"DLL_CLK_S_OPTIONS_EN:false" \ +"DLL_DELAY4:0" \ +"DLL_DYNAMIC_CODE_EN:false" \ +"DLL_DYNAMIC_RECONFIG_INTERFACE_EN:false" \ +"DLL_EXPORT_PWRDWN:false" \ +"DLL_FB_CLK:Primary" \ +"DLL_FB_EN:false" \ +"DLL_FINE_PHASE_CODE:0" \ +"DLL_IN:133" \ +"DLL_JITTER:0" \ +"DLL_MODE:PHASE_REF_MODE" \ +"DLL_ONLY_EN:false" \ +"DLL_OUT_0:1" \ +"DLL_OUT_1:1" \ +"DLL_PRIM_PHASE:90" \ +"DLL_PRIM_PHASE_CODE:0" \ +"DLL_SEC_PHASE:90" \ +"DLL_SEC_PHASE_CODE:0" \ +"DLL_SELECTED_IN:Output2" \ +"FF_REQUIRES_LOCK_EN_0:0" \ +"GL0_0_BANKCLK_USED:false" \ +"GL0_0_BYPASS:0" \ +"GL0_0_BYPASS_EN:false" \ +"GL0_0_DEDICATED_USED:false" \ +"GL0_0_DIV:12" \ +"GL0_0_DIVSTART:0" \ +"GL0_0_DYNAMIC_PH:false" \ +"GL0_0_EXPOSE_EN:false" \ +"GL0_0_FABCLK_GATED_USED:false" \ +"GL0_0_FABCLK_USED:true" \ +"GL0_0_FREQ_SEL:false" \ +"GL0_0_IS_USED:true" \ +"GL0_0_OUT_FREQ:25" \ +"GL0_0_PHASE_INDEX:0" \ +"GL0_0_PHASE_SEL:false" \ +"GL0_0_PLL_PHASE:0" \ +"GL0_1_BANKCLK_USED:false" \ +"GL0_1_BYPASS:0" \ +"GL0_1_BYPASS_EN:false" \ +"GL0_1_DEDICATED_USED:false" \ +"GL0_1_DIV:1" \ +"GL0_1_DIVSTART:0" \ +"GL0_1_DYNAMIC_PH:false" \ +"GL0_1_EXPOSE_EN:false" \ +"GL0_1_FABCLK_USED:false" \ +"GL0_1_FREQ_SEL:false" \ +"GL0_1_IS_USED:true" \ +"GL0_1_OUT_FREQ:100" \ +"GL0_1_PHASE_INDEX:0" \ +"GL0_1_PHASE_SEL:false" \ +"GL0_1_PLL_PHASE:0" \ +"GL1_0_BANKCLK_USED:false" \ +"GL1_0_BYPASS:0" \ +"GL1_0_BYPASS_EN:false" \ +"GL1_0_DEDICATED_USED:false" \ +"GL1_0_DIV:1" \ +"GL1_0_DIVSTART:0" \ +"GL1_0_DYNAMIC_PH:false" \ +"GL1_0_EXPOSE_EN:false" \ +"GL1_0_FABCLK_GATED_USED:false" \ +"GL1_0_FABCLK_USED:true" \ +"GL1_0_FREQ_SEL:false" \ +"GL1_0_IS_USED:false" \ +"GL1_0_OUT_FREQ:100" \ +"GL1_0_PHASE_INDEX:0" \ +"GL1_0_PHASE_SEL:false" \ +"GL1_0_PLL_PHASE:0" \ +"GL1_1_BANKCLK_USED:false" \ +"GL1_1_BYPASS:0" \ +"GL1_1_BYPASS_EN:false" \ +"GL1_1_DEDICATED_USED:false" \ +"GL1_1_DIV:1" \ +"GL1_1_DIVSTART:0" \ +"GL1_1_DYNAMIC_PH:false" \ +"GL1_1_EXPOSE_EN:false" \ +"GL1_1_FABCLK_USED:false" \ +"GL1_1_FREQ_SEL:false" \ +"GL1_1_IS_USED:false" \ +"GL1_1_OUT_FREQ:0" \ +"GL1_1_PHASE_INDEX:0" \ +"GL1_1_PHASE_SEL:false" \ +"GL1_1_PLL_PHASE:0" \ +"GL2_0_BANKCLK_USED:false" \ +"GL2_0_BYPASS:0" \ +"GL2_0_BYPASS_EN:false" \ +"GL2_0_DEDICATED_USED:false" \ +"GL2_0_DIV:1" \ +"GL2_0_DIVSTART:0" \ +"GL2_0_DYNAMIC_PH:false" \ +"GL2_0_EXPOSE_EN:false" \ +"GL2_0_FABCLK_GATED_USED:false" \ +"GL2_0_FABCLK_USED:true" \ +"GL2_0_FREQ_SEL:false" \ +"GL2_0_IS_USED:false" \ +"GL2_0_OUT_FREQ:100" \ +"GL2_0_PHASE_INDEX:0" \ +"GL2_0_PHASE_SEL:false" \ +"GL2_0_PLL_PHASE:0" \ +"GL2_1_BANKCLK_USED:false" \ +"GL2_1_BYPASS:0" \ +"GL2_1_BYPASS_EN:false" \ +"GL2_1_DEDICATED_USED:false" \ +"GL2_1_DIV:1" \ +"GL2_1_DIVSTART:0" \ +"GL2_1_DYNAMIC_PH:false" \ +"GL2_1_EXPOSE_EN:false" \ +"GL2_1_FABCLK_USED:false" \ +"GL2_1_FREQ_SEL:false" \ +"GL2_1_IS_USED:false" \ +"GL2_1_OUT_FREQ:0" \ +"GL2_1_PHASE_INDEX:0" \ +"GL2_1_PHASE_SEL:false" \ +"GL2_1_PLL_PHASE:0" \ +"GL3_0_BANKCLK_USED:false" \ +"GL3_0_BYPASS:0" \ +"GL3_0_BYPASS_EN:false" \ +"GL3_0_DEDICATED_USED:false" \ +"GL3_0_DIV:1" \ +"GL3_0_DIVSTART:0" \ +"GL3_0_DYNAMIC_PH:false" \ +"GL3_0_EXPOSE_EN:false" \ +"GL3_0_FABCLK_GATED_USED:false" \ +"GL3_0_FABCLK_USED:true" \ +"GL3_0_FREQ_SEL:false" \ +"GL3_0_IS_USED:false" \ +"GL3_0_OUT_FREQ:100" \ +"GL3_0_PHASE_INDEX:0" \ +"GL3_0_PHASE_SEL:false" \ +"GL3_0_PLL_PHASE:0" \ +"GL3_1_BANKCLK_USED:false" \ +"GL3_1_BYPASS:0" \ +"GL3_1_BYPASS_EN:false" \ +"GL3_1_DEDICATED_USED:false" \ +"GL3_1_DIV:1" \ +"GL3_1_DIVSTART:0" \ +"GL3_1_DYNAMIC_PH:false" \ +"GL3_1_EXPOSE_EN:false" \ +"GL3_1_FABCLK_USED:false" \ +"GL3_1_FREQ_SEL:false" \ +"GL3_1_IS_USED:false" \ +"GL3_1_OUT_FREQ:0" \ +"GL3_1_PHASE_INDEX:0" \ +"GL3_1_PHASE_SEL:false" \ +"GL3_1_PLL_PHASE:0" \ +"PLL_ALLOW_CCC_EXT_FB:false" \ +"PLL_BANDWIDTH_0:2" \ +"PLL_BANDWIDTH_1:1" \ +"PLL_BYPASS_GO_B_0:false" \ +"PLL_BYPASS_GO_B_1:false" \ +"PLL_BYPASS_POST_0:0" \ +"PLL_BYPASS_POST_0_0:false" \ +"PLL_BYPASS_POST_0_1:false" \ +"PLL_BYPASS_POST_0_2:false" \ +"PLL_BYPASS_POST_0_3:false" \ +"PLL_BYPASS_POST_1:0" \ +"PLL_BYPASS_POST_1_0:false" \ +"PLL_BYPASS_POST_1_1:false" \ +"PLL_BYPASS_POST_1_2:false" \ +"PLL_BYPASS_POST_1_3:false" \ +"PLL_BYPASS_PRE_0:0" \ +"PLL_BYPASS_PRE_0_0:false" \ +"PLL_BYPASS_PRE_0_1:false" \ +"PLL_BYPASS_PRE_0_2:false" \ +"PLL_BYPASS_PRE_0_3:false" \ +"PLL_BYPASS_PRE_1:0" \ +"PLL_BYPASS_PRE_1_0:false" \ +"PLL_BYPASS_PRE_1_1:false" \ +"PLL_BYPASS_PRE_1_2:false" \ +"PLL_BYPASS_PRE_1_3:false" \ +"PLL_BYPASS_SEL_0:0" \ +"PLL_BYPASS_SEL_0_0:false" \ +"PLL_BYPASS_SEL_0_1:false" \ +"PLL_BYPASS_SEL_0_2:false" \ +"PLL_BYPASS_SEL_0_3:false" \ +"PLL_BYPASS_SEL_1:0" \ +"PLL_BYPASS_SEL_1_0:false" \ +"PLL_BYPASS_SEL_1_1:false" \ +"PLL_BYPASS_SEL_1_2:false" \ +"PLL_BYPASS_SEL_1_3:false" \ +"PLL_DELAY_LINE_REF_FB_0:false" \ +"PLL_DELAY_LINE_REF_FB_1:false" \ +"PLL_DELAY_LINE_USED_0:false" \ +"PLL_DELAY_LINE_USED_1:false" \ +"PLL_DELAY_STEPS_0:1" \ +"PLL_DELAY_STEPS_1:1" \ +"PLL_DLL_CASCADED_EN:false" \ +"PLL_DYNAMIC_CONTROL_EN_0:true" \ +"PLL_DYNAMIC_CONTROL_EN_1:false" \ +"PLL_DYNAMIC_RECONFIG_INTERFACE_EN_0:false" \ +"PLL_DYNAMIC_RECONFIG_INTERFACE_EN_1:false" \ +"PLL_EXPORT_PWRDWN:true" \ +"PLL_EXT_MAX_ADDR_0:128" \ +"PLL_EXT_MAX_ADDR_1:128" \ +"PLL_EXT_WAVE_SEL_0:0" \ +"PLL_EXT_WAVE_SEL_1:0" \ +"PLL_FB_CLK_0:GL0_0" \ +"PLL_FB_CLK_1:GL0_1" \ +"PLL_FEEDBACK_MODE_0:Post-VCO" \ +"PLL_FEEDBACK_MODE_1:Post-VCO" \ +"PLL_IN_FREQ_0:125" \ +"PLL_IN_FREQ_1:100" \ +"PLL_INT_MODE_EN_0:false" \ +"PLL_INT_MODE_EN_1:false" \ +"PLL_LOCK_COUNT_0:8" \ +"PLL_LOCK_COUNT_1:8" \ +"PLL_LP_REQUIRES_LOCK_EN_0:false" \ +"PLL_LP_REQUIRES_LOCK_EN_1:false" \ +"PLL_PLL_CASCADED_EN:false" \ +"PLL_PLL_CASCADED_SELECTED_CLK:Output2" \ +"PLL_POSTDIVIDERADDSOFTLOGIC_0:true" \ +"PLL_REF_CLK_SEL_0:false" \ +"PLL_REF_CLK_SEL_1:false" \ +"PLL_REFDIV_0:1" \ +"PLL_REFDIV_1:1" \ +"PLL_RESET_ON_LOCK_0:true" \ +"PLL_SPREAD_MODE_0:false" \ +"PLL_SPREAD_MODE_1:false" \ +"PLL_SSM_DEPTH_0:5" \ +"PLL_SSM_DEPTH_1:5" \ +"PLL_SSM_DIVVAL_0:1" \ +"PLL_SSM_DIVVAL_1:1" \ +"PLL_SSM_FREQ_0:32" \ +"PLL_SSM_FREQ_1:32" \ +"PLL_SSM_RAND_PATTERN_0:2" \ +"PLL_SSM_RAND_PATTERN_1:2" \ +"PLL_SSMD_EN_0:false" \ +"PLL_SSMD_EN_1:false" \ +"PLL_SYNC_CORNER_PLL:false" \ +"PLL_SYNC_EN:false" \ +"PLL_VCO_MODE_0:MIN_JITTER" \ +"PLL_VCO_MODE_1:MIN_JITTER" } +# Exporting Component Description of PF_CCC_C1 to TCL done diff --git a/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/PF_TX_PLL_XCVR1.tcl b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/PF_TX_PLL_XCVR1.tcl new file mode 100644 index 0000000000000000000000000000000000000000..d8d115d770ff5dce3b9ccf55751b06c2614cee87 --- /dev/null +++ b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/PF_TX_PLL_XCVR1.tcl @@ -0,0 +1,35 @@ +# Exporting Component Description of PF_TX_PLL_XCVR1 to TCL +# Family: PolarFireSoC +# Part Number: MPFS025T-FCVG484E +# Create and Configure the core component PF_TX_PLL_XCVR1 +create_and_configure_core -core_vlnv {Actel:SgCore:PF_TX_PLL:*} -component_name {PF_TX_PLL_XCVR1} -params {\ +"CORE:PF_TX_PLL" \ +"INIT:0x0" \ +"TxPLL_AUX_LOW_SEL:true" \ +"TxPLL_AUX_OUT:125" \ +"TxPLL_BANDWIDTH:Low" \ +"TxPLL_CLK_125_EN:true" \ +"TxPLL_DYNAMIC_RECONFIG_INTERFACE_EN:false" \ +"TxPLL_EXT_WAVE_SEL:0" \ +"TxPLL_FAB_LOCK_EN:false" \ +"TxPLL_FAB_REF:200" \ +"TxPLL_INTEGER_MODE:false" \ +"TxPLL_JITTER_MODE_AT_POWERUP:true" \ +"TxPLL_JITTER_MODE_CUT_OFF_FREQ:5000" \ +"TxPLL_JITTER_MODE_OPTIMIZE_FOR:0" \ +"TxPLL_JITTER_MODE_REFCLK_FREQ:125" \ +"TxPLL_JITTER_MODE_REFCLK_SEL:DEDICATED" \ +"TxPLL_JITTER_MODE_SEL:10G SyncE 32Bit" \ +"TxPLL_JITTER_MODE_WANDER:15" \ +"TxPLL_MODE:NORMAL" \ +"TxPLL_OUT:2500.000" \ +"TxPLL_REF:156.25" \ +"TxPLL_RN_FILTER:false" \ +"TxPLL_SOURCE:FABRIC" \ +"TxPLL_SSM_DEPTH:0" \ +"TxPLL_SSM_DIVVAL:1" \ +"TxPLL_SSM_DOWN_SPREAD:false" \ +"TxPLL_SSM_FREQ:64" \ +"TxPLL_SSM_RAND_PATTERN:0" \ +"VCOFREQUENCY:1600" } +# Exporting Component Description of PF_TX_PLL_XCVR1 to TCL done diff --git a/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/PF_XCVR_REF_CLK_C0.tcl b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/PF_XCVR_REF_CLK_C0.tcl new file mode 100644 index 0000000000000000000000000000000000000000..55f816c6b1239c3e90a999a4c2dd90033ae9c06e --- /dev/null +++ b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/PF_XCVR_REF_CLK_C0.tcl @@ -0,0 +1,12 @@ +# Exporting Component Description of PF_XCVR_REF_CLK_C0 to TCL +# Family: PolarFireSoC +# Part Number: MPFS025T-FCVG484E +# Create and Configure the core component PF_XCVR_REF_CLK_C0 +create_and_configure_core -core_vlnv {Actel:SgCore:PF_XCVR_REF_CLK:*} -component_name {PF_XCVR_REF_CLK_C0} -params {\ +"ENABLE_FAB_CLK_0:true" \ +"ENABLE_FAB_CLK_1:false" \ +"ENABLE_REF_CLK_0:true" \ +"ENABLE_REF_CLK_1:false" \ +"REF_CLK_MODE_0:DIFFERENTIAL" \ +"REF_CLK_MODE_1:LVCMOS" } +# Exporting Component Description of PF_XCVR_REF_CLK_C0 to TCL done diff --git a/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/Readme.md b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/Readme.md new file mode 100644 index 0000000000000000000000000000000000000000..668bb41938e6ecb046949c8b1f61a8dc920d3148 --- /dev/null +++ b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/Readme.md @@ -0,0 +1,9 @@ +# SYZYGY Loopback - 3 Lanes + +Loopback the 3 SYZYGY tranceivers lanes at 5Gbps + +This is intended to be used with the Opal Kelly SZG-TST-TXR4 loopback board to sanity check the connections between the SYZYGY connector and PolarFire SoC. + +This can only be built using the following gateware build options combination: + +"M2_OPTION:NONE CAPE_OPTION:NONE_NO_USER_LEDS SYZYGY_OPTION:LOOPBACK_3_LANES_OPAL_KELLY" diff --git a/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_CCC_01.tcl b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_CCC_01.tcl new file mode 100644 index 0000000000000000000000000000000000000000..c6ba95cb116fd7a439d5b988c52a6916bb459928 --- /dev/null +++ b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_CCC_01.tcl @@ -0,0 +1,248 @@ +# Exporting Component Description of PF_CCC_01 to TCL +# Family: PolarFire +# Part Number: MPF300TS-1FCG1152I +# Create and Configure the core component PF_CCC_01 +create_and_configure_core -core_vlnv Actel:SgCore:PF_CCC:* -component_name {PF_CCC_01} -params {\ +"DLL_CLK_0_BANKCLK_EN:false" \ +"DLL_CLK_0_DEDICATED_EN:false" \ +"DLL_CLK_0_FABCLK_EN:false" \ +"DLL_CLK_1_BANKCLK_EN:false" \ +"DLL_CLK_1_DEDICATED_EN:false" \ +"DLL_CLK_1_FABCLK_EN:false" \ +"DLL_CLK_P_EN:false" \ +"DLL_CLK_P_OPTIONS_EN:false" \ +"DLL_CLK_REF_OPTION:DIVIDE_BY_1" \ +"DLL_CLK_REF_OPTIONS_EN:false" \ +"DLL_CLK_S_EN:false" \ +"DLL_CLK_S_OPTION:DIVIDE_BY_1" \ +"DLL_CLK_S_OPTIONS_EN:false" \ +"DLL_DELAY4:0" \ +"DLL_DYNAMIC_CODE_EN:false" \ +"DLL_DYNAMIC_RECONFIG_INTERFACE_EN:false" \ +"DLL_EXPORT_PWRDWN:false" \ +"DLL_FB_CLK:Primary" \ +"DLL_FB_EN:false" \ +"DLL_FINE_PHASE_CODE:0" \ +"DLL_IN:1" \ +"DLL_JITTER:0" \ +"DLL_MODE:PHASE_REF_MODE" \ +"DLL_ONLY_EN:false" \ +"DLL_OUT_0:1" \ +"DLL_OUT_1:1" \ +"DLL_PRIM_PHASE:90" \ +"DLL_PRIM_PHASE_CODE:0" \ +"DLL_SEC_PHASE:90" \ +"DLL_SEC_PHASE_CODE:0" \ +"DLL_SELECTED_IN:Output2" \ +"FF_REQUIRES_LOCK_EN_0:0" \ +"GL0_0_BANKCLK_USED:false" \ +"GL0_0_BYPASS:0" \ +"GL0_0_BYPASS_EN:false" \ +"GL0_0_DEDICATED_USED:false" \ +"GL0_0_DIV:10" \ +"GL0_0_DIVSTART:0" \ +"GL0_0_DYNAMIC_PH:false" \ +"GL0_0_EXPOSE_EN:false" \ +"GL0_0_FABCLK_GATED_USED:false" \ +"GL0_0_FABCLK_USED:true" \ +"GL0_0_FREQ_SEL:false" \ +"GL0_0_IS_USED:true" \ +"GL0_0_OUT_FREQ:125" \ +"GL0_0_PHASE_INDEX:0" \ +"GL0_0_PHASE_SEL:false" \ +"GL0_0_PLL_PHASE:0" \ +"GL0_1_BANKCLK_USED:false" \ +"GL0_1_BYPASS:0" \ +"GL0_1_BYPASS_EN:false" \ +"GL0_1_DEDICATED_USED:false" \ +"GL0_1_DIV:1" \ +"GL0_1_DIVSTART:0" \ +"GL0_1_DYNAMIC_PH:false" \ +"GL0_1_EXPOSE_EN:false" \ +"GL0_1_FABCLK_USED:false" \ +"GL0_1_FREQ_SEL:false" \ +"GL0_1_IS_USED:true" \ +"GL0_1_OUT_FREQ:100" \ +"GL0_1_PHASE_INDEX:0" \ +"GL0_1_PHASE_SEL:false" \ +"GL0_1_PLL_PHASE:0" \ +"GL1_0_BANKCLK_USED:false" \ +"GL1_0_BYPASS:0" \ +"GL1_0_BYPASS_EN:false" \ +"GL1_0_DEDICATED_USED:false" \ +"GL1_0_DIV:1" \ +"GL1_0_DIVSTART:0" \ +"GL1_0_DYNAMIC_PH:false" \ +"GL1_0_EXPOSE_EN:false" \ +"GL1_0_FABCLK_GATED_USED:false" \ +"GL1_0_FABCLK_USED:true" \ +"GL1_0_FREQ_SEL:false" \ +"GL1_0_IS_USED:false" \ +"GL1_0_OUT_FREQ:100" \ +"GL1_0_PHASE_INDEX:0" \ +"GL1_0_PHASE_SEL:false" \ +"GL1_0_PLL_PHASE:0" \ +"GL1_1_BANKCLK_USED:false" \ +"GL1_1_BYPASS:0" \ +"GL1_1_BYPASS_EN:false" \ +"GL1_1_DEDICATED_USED:false" \ +"GL1_1_DIV:1" \ +"GL1_1_DIVSTART:0" \ +"GL1_1_DYNAMIC_PH:false" \ +"GL1_1_EXPOSE_EN:false" \ +"GL1_1_FABCLK_USED:false" \ +"GL1_1_FREQ_SEL:false" \ +"GL1_1_IS_USED:false" \ +"GL1_1_OUT_FREQ:0" \ +"GL1_1_PHASE_INDEX:0" \ +"GL1_1_PHASE_SEL:false" \ +"GL1_1_PLL_PHASE:0" \ +"GL2_0_BANKCLK_USED:false" \ +"GL2_0_BYPASS:0" \ +"GL2_0_BYPASS_EN:false" \ +"GL2_0_DEDICATED_USED:false" \ +"GL2_0_DIV:1" \ +"GL2_0_DIVSTART:0" \ +"GL2_0_DYNAMIC_PH:false" \ +"GL2_0_EXPOSE_EN:false" \ +"GL2_0_FABCLK_GATED_USED:false" \ +"GL2_0_FABCLK_USED:true" \ +"GL2_0_FREQ_SEL:false" \ +"GL2_0_IS_USED:false" \ +"GL2_0_OUT_FREQ:100" \ +"GL2_0_PHASE_INDEX:0" \ +"GL2_0_PHASE_SEL:false" \ +"GL2_0_PLL_PHASE:0" \ +"GL2_1_BANKCLK_USED:false" \ +"GL2_1_BYPASS:0" \ +"GL2_1_BYPASS_EN:false" \ +"GL2_1_DEDICATED_USED:false" \ +"GL2_1_DIV:1" \ +"GL2_1_DIVSTART:0" \ +"GL2_1_DYNAMIC_PH:false" \ +"GL2_1_EXPOSE_EN:false" \ +"GL2_1_FABCLK_USED:false" \ +"GL2_1_FREQ_SEL:false" \ +"GL2_1_IS_USED:false" \ +"GL2_1_OUT_FREQ:0" \ +"GL2_1_PHASE_INDEX:0" \ +"GL2_1_PHASE_SEL:false" \ +"GL2_1_PLL_PHASE:0" \ +"GL3_0_BANKCLK_USED:false" \ +"GL3_0_BYPASS:0" \ +"GL3_0_BYPASS_EN:false" \ +"GL3_0_DEDICATED_USED:false" \ +"GL3_0_DIV:1" \ +"GL3_0_DIVSTART:0" \ +"GL3_0_DYNAMIC_PH:false" \ +"GL3_0_EXPOSE_EN:false" \ +"GL3_0_FABCLK_GATED_USED:false" \ +"GL3_0_FABCLK_USED:true" \ +"GL3_0_FREQ_SEL:false" \ +"GL3_0_IS_USED:false" \ +"GL3_0_OUT_FREQ:100" \ +"GL3_0_PHASE_INDEX:0" \ +"GL3_0_PHASE_SEL:false" \ +"GL3_0_PLL_PHASE:0" \ +"GL3_1_BANKCLK_USED:false" \ +"GL3_1_BYPASS:0" \ +"GL3_1_BYPASS_EN:false" \ +"GL3_1_DEDICATED_USED:false" \ +"GL3_1_DIV:1" \ +"GL3_1_DIVSTART:0" \ +"GL3_1_DYNAMIC_PH:false" \ +"GL3_1_EXPOSE_EN:false" \ +"GL3_1_FABCLK_USED:false" \ +"GL3_1_FREQ_SEL:false" \ +"GL3_1_IS_USED:false" \ +"GL3_1_OUT_FREQ:0" \ +"GL3_1_PHASE_INDEX:0" \ +"GL3_1_PHASE_SEL:false" \ +"GL3_1_PLL_PHASE:0" \ +"PLL_ALLOW_CCC_EXT_FB:false" \ +"PLL_BANDWIDTH_0:0" \ +"PLL_BANDWIDTH_1:1" \ +"PLL_BYPASS_GO_B_0:false" \ +"PLL_BYPASS_GO_B_1:false" \ +"PLL_BYPASS_POST_0:0" \ +"PLL_BYPASS_POST_0_0:false" \ +"PLL_BYPASS_POST_0_1:false" \ +"PLL_BYPASS_POST_0_2:false" \ +"PLL_BYPASS_POST_0_3:false" \ +"PLL_BYPASS_POST_1:0" \ +"PLL_BYPASS_POST_1_0:false" \ +"PLL_BYPASS_POST_1_1:false" \ +"PLL_BYPASS_POST_1_2:false" \ +"PLL_BYPASS_POST_1_3:false" \ +"PLL_BYPASS_PRE_0:0" \ +"PLL_BYPASS_PRE_0_0:false" \ +"PLL_BYPASS_PRE_0_1:false" \ +"PLL_BYPASS_PRE_0_2:false" \ +"PLL_BYPASS_PRE_0_3:false" \ +"PLL_BYPASS_PRE_1:0" \ +"PLL_BYPASS_PRE_1_0:false" \ +"PLL_BYPASS_PRE_1_1:false" \ +"PLL_BYPASS_PRE_1_2:false" \ +"PLL_BYPASS_PRE_1_3:false" \ +"PLL_BYPASS_SEL_0:0" \ +"PLL_BYPASS_SEL_0_0:false" \ +"PLL_BYPASS_SEL_0_1:false" \ +"PLL_BYPASS_SEL_0_2:false" \ +"PLL_BYPASS_SEL_0_3:false" \ +"PLL_BYPASS_SEL_1:0" \ +"PLL_BYPASS_SEL_1_0:false" \ +"PLL_BYPASS_SEL_1_1:false" \ +"PLL_BYPASS_SEL_1_2:false" \ +"PLL_BYPASS_SEL_1_3:false" \ +"PLL_DELAY_LINE_REF_FB_0:false" \ +"PLL_DELAY_LINE_REF_FB_1:false" \ +"PLL_DELAY_LINE_USED_0:false" \ +"PLL_DELAY_LINE_USED_1:false" \ +"PLL_DELAY_STEPS_0:1" \ +"PLL_DELAY_STEPS_1:1" \ +"PLL_DLL_CASCADED_EN:false" \ +"PLL_DYNAMIC_CONTROL_EN_0:true" \ +"PLL_DYNAMIC_CONTROL_EN_1:false" \ +"PLL_DYNAMIC_RECONFIG_INTERFACE_EN_0:false" \ +"PLL_DYNAMIC_RECONFIG_INTERFACE_EN_1:false" \ +"PLL_EXPORT_PWRDWN:false" \ +"PLL_EXT_MAX_ADDR_0:128" \ +"PLL_EXT_MAX_ADDR_1:128" \ +"PLL_EXT_WAVE_SEL_0:0" \ +"PLL_EXT_WAVE_SEL_1:0" \ +"PLL_FB_CLK_0:GL0_0" \ +"PLL_FB_CLK_1:GL0_1" \ +"PLL_FEEDBACK_MODE_0:Post-VCO" \ +"PLL_FEEDBACK_MODE_1:Post-VCO" \ +"PLL_IN_FREQ_0:160" \ +"PLL_IN_FREQ_1:100" \ +"PLL_INT_MODE_EN_0:false" \ +"PLL_INT_MODE_EN_1:false" \ +"PLL_LOCK_COUNT_0:0" \ +"PLL_LOCK_COUNT_1:0" \ +"PLL_LP_REQUIRES_LOCK_EN_0:false" \ +"PLL_LP_REQUIRES_LOCK_EN_1:false" \ +"PLL_PLL_CASCADED_EN:false" \ +"PLL_PLL_CASCADED_SELECTED_CLK:Output2" \ +"PLL_POSTDIVIDERADDSOFTLOGIC_0:true" \ +"PLL_REF_CLK_SEL_0:false" \ +"PLL_REF_CLK_SEL_1:false" \ +"PLL_REFDIV_0:4" \ +"PLL_REFDIV_1:1" \ +"PLL_SPREAD_MODE_0:false" \ +"PLL_SPREAD_MODE_1:false" \ +"PLL_SSM_DEPTH_0:5" \ +"PLL_SSM_DEPTH_1:5" \ +"PLL_SSM_DIVVAL_0:1" \ +"PLL_SSM_DIVVAL_1:1" \ +"PLL_SSM_FREQ_0:32" \ +"PLL_SSM_FREQ_1:32" \ +"PLL_SSM_RAND_PATTERN_0:2" \ +"PLL_SSM_RAND_PATTERN_1:2" \ +"PLL_SSMD_EN_0:false" \ +"PLL_SSMD_EN_1:false" \ +"PLL_SYNC_CORNER_PLL:false" \ +"PLL_SYNC_EN:false" \ +"PLL_VCO_MODE_0:MIN_JITTER" \ +"PLL_VCO_MODE_1:MIN_JITTER" } +# Exporting Component Description of PF_CCC_01 to TCL done diff --git a/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_CCC_C0.tcl b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_CCC_C0.tcl new file mode 100644 index 0000000000000000000000000000000000000000..3abd00e9794cfde9097737931e4296ace3c0242e --- /dev/null +++ b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_CCC_C0.tcl @@ -0,0 +1,249 @@ +# Exporting Component Description of PF_CCC_C0 to TCL +# Family: PolarFireSoC +# Part Number: MPFS025T-1FCVG484I +# Create and Configure the core component PF_CCC_C0 +create_and_configure_core -core_vlnv {Actel:SgCore:PF_CCC:*} -component_name {PF_CCC_C0} -params {\ +"DLL_CLK_0_BANKCLK_EN:false" \ +"DLL_CLK_0_DEDICATED_EN:false" \ +"DLL_CLK_0_FABCLK_EN:false" \ +"DLL_CLK_1_BANKCLK_EN:false" \ +"DLL_CLK_1_DEDICATED_EN:false" \ +"DLL_CLK_1_FABCLK_EN:false" \ +"DLL_CLK_P_EN:false" \ +"DLL_CLK_P_OPTIONS_EN:false" \ +"DLL_CLK_REF_OPTION:DIVIDE_BY_1" \ +"DLL_CLK_REF_OPTIONS_EN:false" \ +"DLL_CLK_S_EN:false" \ +"DLL_CLK_S_OPTION:DIVIDE_BY_1" \ +"DLL_CLK_S_OPTIONS_EN:false" \ +"DLL_DELAY4:0" \ +"DLL_DYNAMIC_CODE_EN:false" \ +"DLL_DYNAMIC_RECONFIG_INTERFACE_EN:false" \ +"DLL_EXPORT_PWRDWN:false" \ +"DLL_FB_CLK:Primary" \ +"DLL_FB_EN:false" \ +"DLL_FINE_PHASE_CODE:0" \ +"DLL_IN:133" \ +"DLL_JITTER:0" \ +"DLL_MODE:PHASE_REF_MODE" \ +"DLL_ONLY_EN:false" \ +"DLL_OUT_0:1" \ +"DLL_OUT_1:1" \ +"DLL_PRIM_PHASE:90" \ +"DLL_PRIM_PHASE_CODE:0" \ +"DLL_SEC_PHASE:90" \ +"DLL_SEC_PHASE_CODE:0" \ +"DLL_SELECTED_IN:Output2" \ +"FF_REQUIRES_LOCK_EN_0:0" \ +"GL0_0_BANKCLK_USED:false" \ +"GL0_0_BYPASS:0" \ +"GL0_0_BYPASS_EN:false" \ +"GL0_0_DEDICATED_USED:false" \ +"GL0_0_DIV:8" \ +"GL0_0_DIVSTART:0" \ +"GL0_0_DYNAMIC_PH:false" \ +"GL0_0_EXPOSE_EN:false" \ +"GL0_0_FABCLK_GATED_USED:false" \ +"GL0_0_FABCLK_USED:true" \ +"GL0_0_FREQ_SEL:false" \ +"GL0_0_IS_USED:true" \ +"GL0_0_OUT_FREQ:156.25" \ +"GL0_0_PHASE_INDEX:0" \ +"GL0_0_PHASE_SEL:false" \ +"GL0_0_PLL_PHASE:0" \ +"GL0_1_BANKCLK_USED:false" \ +"GL0_1_BYPASS:0" \ +"GL0_1_BYPASS_EN:false" \ +"GL0_1_DEDICATED_USED:false" \ +"GL0_1_DIV:1" \ +"GL0_1_DIVSTART:0" \ +"GL0_1_DYNAMIC_PH:false" \ +"GL0_1_EXPOSE_EN:false" \ +"GL0_1_FABCLK_USED:false" \ +"GL0_1_FREQ_SEL:false" \ +"GL0_1_IS_USED:true" \ +"GL0_1_OUT_FREQ:100" \ +"GL0_1_PHASE_INDEX:0" \ +"GL0_1_PHASE_SEL:false" \ +"GL0_1_PLL_PHASE:0" \ +"GL1_0_BANKCLK_USED:false" \ +"GL1_0_BYPASS:0" \ +"GL1_0_BYPASS_EN:false" \ +"GL1_0_DEDICATED_USED:false" \ +"GL1_0_DIV:1" \ +"GL1_0_DIVSTART:0" \ +"GL1_0_DYNAMIC_PH:false" \ +"GL1_0_EXPOSE_EN:false" \ +"GL1_0_FABCLK_GATED_USED:false" \ +"GL1_0_FABCLK_USED:true" \ +"GL1_0_FREQ_SEL:false" \ +"GL1_0_IS_USED:false" \ +"GL1_0_OUT_FREQ:100" \ +"GL1_0_PHASE_INDEX:0" \ +"GL1_0_PHASE_SEL:false" \ +"GL1_0_PLL_PHASE:0" \ +"GL1_1_BANKCLK_USED:false" \ +"GL1_1_BYPASS:0" \ +"GL1_1_BYPASS_EN:false" \ +"GL1_1_DEDICATED_USED:false" \ +"GL1_1_DIV:1" \ +"GL1_1_DIVSTART:0" \ +"GL1_1_DYNAMIC_PH:false" \ +"GL1_1_EXPOSE_EN:false" \ +"GL1_1_FABCLK_USED:false" \ +"GL1_1_FREQ_SEL:false" \ +"GL1_1_IS_USED:false" \ +"GL1_1_OUT_FREQ:0" \ +"GL1_1_PHASE_INDEX:0" \ +"GL1_1_PHASE_SEL:false" \ +"GL1_1_PLL_PHASE:0" \ +"GL2_0_BANKCLK_USED:false" \ +"GL2_0_BYPASS:0" \ +"GL2_0_BYPASS_EN:false" \ +"GL2_0_DEDICATED_USED:false" \ +"GL2_0_DIV:1" \ +"GL2_0_DIVSTART:0" \ +"GL2_0_DYNAMIC_PH:false" \ +"GL2_0_EXPOSE_EN:false" \ +"GL2_0_FABCLK_GATED_USED:false" \ +"GL2_0_FABCLK_USED:true" \ +"GL2_0_FREQ_SEL:false" \ +"GL2_0_IS_USED:false" \ +"GL2_0_OUT_FREQ:100" \ +"GL2_0_PHASE_INDEX:0" \ +"GL2_0_PHASE_SEL:false" \ +"GL2_0_PLL_PHASE:0" \ +"GL2_1_BANKCLK_USED:false" \ +"GL2_1_BYPASS:0" \ +"GL2_1_BYPASS_EN:false" \ +"GL2_1_DEDICATED_USED:false" \ +"GL2_1_DIV:1" \ +"GL2_1_DIVSTART:0" \ +"GL2_1_DYNAMIC_PH:false" \ +"GL2_1_EXPOSE_EN:false" \ +"GL2_1_FABCLK_USED:false" \ +"GL2_1_FREQ_SEL:false" \ +"GL2_1_IS_USED:false" \ +"GL2_1_OUT_FREQ:0" \ +"GL2_1_PHASE_INDEX:0" \ +"GL2_1_PHASE_SEL:false" \ +"GL2_1_PLL_PHASE:0" \ +"GL3_0_BANKCLK_USED:false" \ +"GL3_0_BYPASS:0" \ +"GL3_0_BYPASS_EN:false" \ +"GL3_0_DEDICATED_USED:false" \ +"GL3_0_DIV:1" \ +"GL3_0_DIVSTART:0" \ +"GL3_0_DYNAMIC_PH:false" \ +"GL3_0_EXPOSE_EN:false" \ +"GL3_0_FABCLK_GATED_USED:false" \ +"GL3_0_FABCLK_USED:true" \ +"GL3_0_FREQ_SEL:false" \ +"GL3_0_IS_USED:false" \ +"GL3_0_OUT_FREQ:100" \ +"GL3_0_PHASE_INDEX:0" \ +"GL3_0_PHASE_SEL:false" \ +"GL3_0_PLL_PHASE:0" \ +"GL3_1_BANKCLK_USED:false" \ +"GL3_1_BYPASS:0" \ +"GL3_1_BYPASS_EN:false" \ +"GL3_1_DEDICATED_USED:false" \ +"GL3_1_DIV:1" \ +"GL3_1_DIVSTART:0" \ +"GL3_1_DYNAMIC_PH:false" \ +"GL3_1_EXPOSE_EN:false" \ +"GL3_1_FABCLK_USED:false" \ +"GL3_1_FREQ_SEL:false" \ +"GL3_1_IS_USED:false" \ +"GL3_1_OUT_FREQ:0" \ +"GL3_1_PHASE_INDEX:0" \ +"GL3_1_PHASE_SEL:false" \ +"GL3_1_PLL_PHASE:0" \ +"PLL_ALLOW_CCC_EXT_FB:false" \ +"PLL_BANDWIDTH_0:2" \ +"PLL_BANDWIDTH_1:1" \ +"PLL_BYPASS_GO_B_0:false" \ +"PLL_BYPASS_GO_B_1:false" \ +"PLL_BYPASS_POST_0:0" \ +"PLL_BYPASS_POST_0_0:false" \ +"PLL_BYPASS_POST_0_1:false" \ +"PLL_BYPASS_POST_0_2:false" \ +"PLL_BYPASS_POST_0_3:false" \ +"PLL_BYPASS_POST_1:0" \ +"PLL_BYPASS_POST_1_0:false" \ +"PLL_BYPASS_POST_1_1:false" \ +"PLL_BYPASS_POST_1_2:false" \ +"PLL_BYPASS_POST_1_3:false" \ +"PLL_BYPASS_PRE_0:0" \ +"PLL_BYPASS_PRE_0_0:false" \ +"PLL_BYPASS_PRE_0_1:false" \ +"PLL_BYPASS_PRE_0_2:false" \ +"PLL_BYPASS_PRE_0_3:false" \ +"PLL_BYPASS_PRE_1:0" \ +"PLL_BYPASS_PRE_1_0:false" \ +"PLL_BYPASS_PRE_1_1:false" \ +"PLL_BYPASS_PRE_1_2:false" \ +"PLL_BYPASS_PRE_1_3:false" \ +"PLL_BYPASS_SEL_0:0" \ +"PLL_BYPASS_SEL_0_0:false" \ +"PLL_BYPASS_SEL_0_1:false" \ +"PLL_BYPASS_SEL_0_2:false" \ +"PLL_BYPASS_SEL_0_3:false" \ +"PLL_BYPASS_SEL_1:0" \ +"PLL_BYPASS_SEL_1_0:false" \ +"PLL_BYPASS_SEL_1_1:false" \ +"PLL_BYPASS_SEL_1_2:false" \ +"PLL_BYPASS_SEL_1_3:false" \ +"PLL_DELAY_LINE_REF_FB_0:false" \ +"PLL_DELAY_LINE_REF_FB_1:false" \ +"PLL_DELAY_LINE_USED_0:false" \ +"PLL_DELAY_LINE_USED_1:false" \ +"PLL_DELAY_STEPS_0:1" \ +"PLL_DELAY_STEPS_1:1" \ +"PLL_DLL_CASCADED_EN:false" \ +"PLL_DYNAMIC_CONTROL_EN_0:true" \ +"PLL_DYNAMIC_CONTROL_EN_1:false" \ +"PLL_DYNAMIC_RECONFIG_INTERFACE_EN_0:false" \ +"PLL_DYNAMIC_RECONFIG_INTERFACE_EN_1:false" \ +"PLL_EXPORT_PWRDWN:false" \ +"PLL_EXT_MAX_ADDR_0:128" \ +"PLL_EXT_MAX_ADDR_1:128" \ +"PLL_EXT_WAVE_SEL_0:0" \ +"PLL_EXT_WAVE_SEL_1:0" \ +"PLL_FB_CLK_0:GL0_0" \ +"PLL_FB_CLK_1:GL0_1" \ +"PLL_FEEDBACK_MODE_0:Post-VCO" \ +"PLL_FEEDBACK_MODE_1:Post-VCO" \ +"PLL_IN_FREQ_0:100" \ +"PLL_IN_FREQ_1:100" \ +"PLL_INT_MODE_EN_0:false" \ +"PLL_INT_MODE_EN_1:false" \ +"PLL_LOCK_COUNT_0:8" \ +"PLL_LOCK_COUNT_1:8" \ +"PLL_LP_REQUIRES_LOCK_EN_0:false" \ +"PLL_LP_REQUIRES_LOCK_EN_1:false" \ +"PLL_PLL_CASCADED_EN:false" \ +"PLL_PLL_CASCADED_SELECTED_CLK:Output2" \ +"PLL_POSTDIVIDERADDSOFTLOGIC_0:true" \ +"PLL_REF_CLK_SEL_0:false" \ +"PLL_REF_CLK_SEL_1:false" \ +"PLL_REFDIV_0:1" \ +"PLL_REFDIV_1:1" \ +"PLL_RESET_ON_LOCK_0:true" \ +"PLL_SPREAD_MODE_0:false" \ +"PLL_SPREAD_MODE_1:false" \ +"PLL_SSM_DEPTH_0:5" \ +"PLL_SSM_DEPTH_1:5" \ +"PLL_SSM_DIVVAL_0:1" \ +"PLL_SSM_DIVVAL_1:1" \ +"PLL_SSM_FREQ_0:32" \ +"PLL_SSM_FREQ_1:32" \ +"PLL_SSM_RAND_PATTERN_0:2" \ +"PLL_SSM_RAND_PATTERN_1:2" \ +"PLL_SSMD_EN_0:false" \ +"PLL_SSMD_EN_1:false" \ +"PLL_SYNC_CORNER_PLL:false" \ +"PLL_SYNC_EN:false" \ +"PLL_VCO_MODE_0:MIN_JITTER" \ +"PLL_VCO_MODE_1:MIN_JITTER" } +# Exporting Component Description of PF_CCC_C0 to TCL done diff --git a/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_CLK_DIV_C0.tcl b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_CLK_DIV_C0.tcl new file mode 100644 index 0000000000000000000000000000000000000000..c6a23b9f703efb211edfa25d6940f2b99ac7e395 --- /dev/null +++ b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_CLK_DIV_C0.tcl @@ -0,0 +1,9 @@ +# Exporting Component Description of PF_CLK_DIV_C0 to TCL +# Family: PolarFire +# Part Number: MPF300TS-1FCG1152I +# Create and Configure the core component PF_CLK_DIV_C0 +create_and_configure_core -core_vlnv Actel:SgCore:PF_CLK_DIV:* -component_name {PF_CLK_DIV_C0} -params {\ +"DIVIDER:4" \ +"ENABLE_BIT_SLIP:false" \ +"ENABLE_SRESET:false" } +# Exporting Component Description of PF_CLK_DIV_C0 to TCL done diff --git a/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_OSC_0.tcl b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_OSC_0.tcl new file mode 100644 index 0000000000000000000000000000000000000000..88eb2d4072a45ccdda19a665e4fcebd20be9ef48 --- /dev/null +++ b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_OSC_0.tcl @@ -0,0 +1,12 @@ +# Exporting Component Description of PF_OSC_0 to TCL +# Family: PolarFire +# Part Number: MPF300TS-1FCG1152I +# Create and Configure the core component PF_OSC_0 +create_and_configure_core -core_vlnv Actel:SgCore:PF_OSC:1.0.102 -component_name {PF_OSC_0} -params {\ +"RCOSC_2MHZ_CLK_DIV_EN:false" \ +"RCOSC_2MHZ_GL_EN:false" \ +"RCOSC_2MHZ_NGMUX_EN:false" \ +"RCOSC_160MHZ_CLK_DIV_EN:false" \ +"RCOSC_160MHZ_GL_EN:true" \ +"RCOSC_160MHZ_NGMUX_EN:false" } +# Exporting Component Description of PF_OSC_0 to TCL done diff --git a/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_TX_PLL_0.tcl b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_TX_PLL_0.tcl new file mode 100644 index 0000000000000000000000000000000000000000..71025d8d90ecd943216aafe39490b91ce194c088 --- /dev/null +++ b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_TX_PLL_0.tcl @@ -0,0 +1,35 @@ +# Exporting Component Description of PF_TX_PLL_0 to TCL +# Family: PolarFireSoC +# Part Number: MPFS025T-1FCVG484I +# Create and Configure the core component PF_TX_PLL_0 +create_and_configure_core -core_vlnv {Actel:SgCore:PF_TX_PLL:*} -component_name {PF_TX_PLL_0} -params {\ +"CORE:PF_TX_PLL" \ +"INIT:0x0" \ +"TxPLL_AUX_LOW_SEL:true" \ +"TxPLL_AUX_OUT:125" \ +"TxPLL_BANDWIDTH:Low" \ +"TxPLL_CLK_125_EN:true" \ +"TxPLL_DYNAMIC_RECONFIG_INTERFACE_EN:false" \ +"TxPLL_EXT_WAVE_SEL:0" \ +"TxPLL_FAB_LOCK_EN:false" \ +"TxPLL_FAB_REF:200" \ +"TxPLL_INTEGER_MODE:false" \ +"TxPLL_JITTER_MODE_AT_POWERUP:true" \ +"TxPLL_JITTER_MODE_CUT_OFF_FREQ:5000" \ +"TxPLL_JITTER_MODE_OPTIMIZE_FOR:0" \ +"TxPLL_JITTER_MODE_REFCLK_FREQ:125" \ +"TxPLL_JITTER_MODE_REFCLK_SEL:DEDICATED" \ +"TxPLL_JITTER_MODE_SEL:10G SyncE 32Bit" \ +"TxPLL_JITTER_MODE_WANDER:15" \ +"TxPLL_MODE:NORMAL" \ +"TxPLL_OUT:2500.000" \ +"TxPLL_REF:156.25" \ +"TxPLL_RN_FILTER:false" \ +"TxPLL_SOURCE:FABRIC" \ +"TxPLL_SSM_DEPTH:0" \ +"TxPLL_SSM_DIVVAL:1" \ +"TxPLL_SSM_DOWN_SPREAD:false" \ +"TxPLL_SSM_FREQ:64" \ +"TxPLL_SSM_RAND_PATTERN:0" \ +"VCOFREQUENCY:1600" } +# Exporting Component Description of PF_TX_PLL_0 to TCL done diff --git a/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_XCVR_0.tcl b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_XCVR_0.tcl new file mode 100644 index 0000000000000000000000000000000000000000..1d1081ec160cd8363161ebfe5f701fbe0100bdb1 --- /dev/null +++ b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_XCVR_0.tcl @@ -0,0 +1,55 @@ +# Exporting Component Description of PF_XCVR_0 to TCL +# Family: PolarFireSoC +# Part Number: MPFS025T-1FCVG484I +# Create and Configure the core component PF_XCVR_0 +create_and_configure_core -core_vlnv {Actel:SystemBuilder:PF_XCVR_ERM:*} -component_name {PF_XCVR_0} -params {\ +"EXPOSE_ALL_DEBUG_PORTS:false" \ +"EXPOSE_FWF_EN_PORTS:false" \ +"SHOW_UNIVERSAL_SOLN_PORTS:true" \ +"UI_CDR_LOCK_MODE:Lock to data" \ +"UI_CDR_REFERENCE_CLK_FREQ:156.25" \ +"UI_CDR_REFERENCE_CLK_SOURCE:Fabric" \ +"UI_CDR_REFERENCE_CLK_TOLERANCE:1" \ +"UI_ENABLE_32BIT_DATA_WIDTH:false" \ +"UI_ENABLE_64B66B:true" \ +"UI_ENABLE_64B67B:false" \ +"UI_ENABLE_64B6XB_MODE:false" \ +"UI_ENABLE_8B10B_MODE:true" \ +"UI_ENABLE_BER:false" \ +"UI_ENABLE_DISPARITY:false" \ +"UI_ENABLE_FIBRE_CHANNEL_DISPARITY:false" \ +"UI_ENABLE_PHASE_COMP_MODE:false" \ +"UI_ENABLE_PIPE_MODE:false" \ +"UI_ENABLE_PMA_MODE:false" \ +"UI_ENABLE_SCRAMBLING:false" \ +"UI_ENABLE_SWITCH_BETWEEN_CDR_REFCLKS:false" \ +"UI_ENABLE_SWITCH_BETWEEN_TXPLLS:false" \ +"UI_EXPOSE_APBLINK_PORTS:false" \ +"UI_EXPOSE_CDR_BITSLIP_PORT:false" \ +"UI_EXPOSE_DYNAMIC_RECONFIGURATION_PORTS:false" \ +"UI_EXPOSE_JA_CLOCK_PORT:false" \ +"UI_EXPOSE_RX_READY_VAL_CDR_PORT:false" \ +"UI_EXPOSE_TX_BYPASS_DATA:false" \ +"UI_EXPOSE_TX_ELEC_IDLE:false" \ +"UI_INTERFACE_RXCLOCK:Regional" \ +"UI_INTERFACE_TXCLOCK:Regional" \ +"UI_IS_CONFIGURED:true" \ +"UI_NUMBER_OF_LANES:1" \ +"UI_PCS_ARST_N:RX Only" \ +"UI_PIPE_PROTOCOL_USED:PCIe" \ +"UI_PMA_ARST_N:TX and RX PMA" \ +"UI_PROTOCOL_PRESET_USED:None" \ +"UI_RX_DATA_RATE:5000" \ +"UI_RX_PCS_FAB_IF_WIDTH:32" \ +"UI_SATA_IDLE_BURST_TIMING:MAC" \ +"UI_TX_CLK_DIV_FACTOR:1" \ +"UI_TX_DATA_RATE:5000" \ +"UI_TX_PCS_FAB_IF_WIDTH:32" \ +"UI_TX_RX_MODE:Duplex" \ +"UI_USE_INTERFACE_CLK_AS_PLL_REFCLK:false" \ +"UI_XCVR_RX_CALIBRATION:None (CDR)" \ +"UI_XCVR_RX_DATA_EYE_CALIBRATION:false" \ +"UI_XCVR_RX_DFE_COEFF_CALIBRATION:false" \ +"UI_XCVR_RX_ENHANCED_MANAGEMENT:true" \ +"XT_ES_DEVICE:false" } +# Exporting Component Description of PF_XCVR_0 to TCL done diff --git a/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_XCVR_REF_CLK_0.tcl b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_XCVR_REF_CLK_0.tcl new file mode 100644 index 0000000000000000000000000000000000000000..94d64dcd93d485c9bbf6390c658c51370dde6bad --- /dev/null +++ b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/PF_XCVR_REF_CLK_0.tcl @@ -0,0 +1,12 @@ +# Exporting Component Description of PF_XCVR_REF_CLK_0 to TCL +# Family: PolarFire +# Part Number: MPF300TS-1FCG1152I +# Create and Configure the core component PF_XCVR_REF_CLK_0 +create_and_configure_core -core_vlnv Actel:SgCore:PF_XCVR_REF_CLK:* -component_name {PF_XCVR_REF_CLK_0} -params {\ +"ENABLE_FAB_CLK_0:false" \ +"ENABLE_FAB_CLK_1:false" \ +"ENABLE_REF_CLK_0:true" \ +"ENABLE_REF_CLK_1:false" \ +"REF_CLK_MODE_0:DIFFERENTIAL" \ +"REF_CLK_MODE_1:LVCMOS" } +# Exporting Component Description of PF_XCVR_REF_CLK_0 to TCL done diff --git a/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/Reset_Block.tcl b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/Reset_Block.tcl new file mode 100644 index 0000000000000000000000000000000000000000..56de848720c5d43c065759644c92e70c6782d462 --- /dev/null +++ b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/Reset_Block.tcl @@ -0,0 +1,66 @@ +puts "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv" +puts "vvvvvvvvvvvvvvvvvvvvvv Create Transceivers Reset Block vvvvvvvvvvvvvvvvvvvvvvv" +puts "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv" + +# Creating SmartDesign Reset_Block +set sd_name {Reset_Block} +create_smartdesign -sd_name ${sd_name} + +# Disable auto promotion of pins of type 'pad' +auto_promote_pad_pins -promote_all 0 + +# Create top level Scalar Ports +sd_create_scalar_port -sd_name ${sd_name} -port_name {BANK_x_VDDI_STATUS} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {BANK_y_VDDI_STATUS} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {EXT_RST_N} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {INIT_DONE} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {RX_clk} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {RX_ready} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {TX_clk_stable} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {TX_clk} -port_direction {IN} + +sd_create_scalar_port -sd_name ${sd_name} -port_name {Pattern_chk_rst_n} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {Pattern_gen_rst_n} -port_direction {OUT} + + + +# Add Reset_sync_rx_0 instance +sd_instantiate_component -sd_name ${sd_name} -component_name {Reset_sync_rx} -instance_name {Reset_sync_rx_0} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {Reset_sync_rx_0:SS_BUSY} -value {GND} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {Reset_sync_rx_0:FF_US_RESTORE} -value {GND} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {Reset_sync_rx_0:FPGA_POR_N} -value {VCC} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {Reset_sync_rx_0:PLL_POWERDOWN_B} + + + +# Add Reset_sync_tx_0 instance +sd_instantiate_component -sd_name ${sd_name} -component_name {Reset_sync_tx} -instance_name {Reset_sync_tx_0} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {Reset_sync_tx_0:SS_BUSY} -value {GND} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {Reset_sync_tx_0:FF_US_RESTORE} -value {GND} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {Reset_sync_tx_0:FPGA_POR_N} -value {VCC} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {Reset_sync_tx_0:PLL_POWERDOWN_B} + + + +# Add scalar net connections +sd_connect_pins -sd_name ${sd_name} -pin_names {"BANK_x_VDDI_STATUS" "Reset_sync_rx_0:BANK_x_VDDI_STATUS" "Reset_sync_tx_0:BANK_x_VDDI_STATUS" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"BANK_y_VDDI_STATUS" "Reset_sync_rx_0:BANK_y_VDDI_STATUS" "Reset_sync_tx_0:BANK_y_VDDI_STATUS" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"EXT_RST_N" "Reset_sync_rx_0:EXT_RST_N" "Reset_sync_tx_0:EXT_RST_N" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"INIT_DONE" "Reset_sync_rx_0:INIT_DONE" "Reset_sync_tx_0:INIT_DONE" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"Pattern_chk_rst_n" "Reset_sync_rx_0:FABRIC_RESET_N" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"Pattern_gen_rst_n" "Reset_sync_tx_0:FABRIC_RESET_N" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"RX_clk" "Reset_sync_rx_0:CLK" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"RX_ready" "Reset_sync_rx_0:PLL_LOCK" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"Reset_sync_tx_0:CLK" "TX_clk" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"Reset_sync_tx_0:PLL_LOCK" "TX_clk_stable" } + + + +# Re-enable auto promotion of pins of type 'pad' +auto_promote_pad_pins -promote_all 1 +# Save the smartDesign +save_smartdesign -sd_name ${sd_name} +# Generate SmartDesign Reset_Block +generate_component -component_name ${sd_name} + +puts "^^^^^^^^^^^^^^^^^ Create Transceivers Reset Block Complete ^^^^^^^^^^^^^^^^^^^" diff --git a/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/Reset_sync_rx.tcl b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/Reset_sync_rx.tcl new file mode 100644 index 0000000000000000000000000000000000000000..b2fad00b4abf0284cf96a6d818a9063461164458 --- /dev/null +++ b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/Reset_sync_rx.tcl @@ -0,0 +1,6 @@ +# Exporting Component Description of Reset_sync_rx to TCL +# Family: PolarFire +# Part Number: MPF300TS-1FCG1152I +# Create and Configure the core component Reset_sync_rx +create_and_configure_core -core_vlnv Actel:DirectCore:CORERESET_PF:2.3.100 -component_name {Reset_sync_rx} -params { } +# Exporting Component Description of Reset_sync_rx to TCL done diff --git a/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/Reset_sync_tx.tcl b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/Reset_sync_tx.tcl new file mode 100644 index 0000000000000000000000000000000000000000..18005a52b4bca08c839151364cbee8fd0e5992c0 --- /dev/null +++ b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/Reset_sync_tx.tcl @@ -0,0 +1,6 @@ +# Exporting Component Description of Reset_sync_tx to TCL +# Family: PolarFire +# Part Number: MPF300TS-1FCG1152I +# Create and Configure the core component Reset_sync_tx +create_and_configure_core -core_vlnv Actel:DirectCore:CORERESET_PF:2.3.100 -component_name {Reset_sync_tx} -params { } +# Exporting Component Description of Reset_sync_tx to TCL done diff --git a/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/XCVR_LOOPBACK.tcl b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/XCVR_LOOPBACK.tcl new file mode 100644 index 0000000000000000000000000000000000000000..31bb785f784c55164af87ad1e9e07f4bae8a1e01 --- /dev/null +++ b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/XCVR_LOOPBACK/XCVR_LOOPBACK.tcl @@ -0,0 +1,151 @@ +# Creating SmartDesign XCVR_LOOPBACK +set sd_name {XCVR_LOOPBACK} +create_smartdesign -sd_name ${sd_name} + +# Disable auto promotion of pins of type 'pad' +auto_promote_pad_pins -promote_all 0 + +# Create top level Scalar Ports +sd_create_scalar_port -sd_name ${sd_name} -port_name {CLKS_FROM_TXPLL_0_TX_BIT_CLK_0} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {CLKS_FROM_TXPLL_0_TX_PLL_LOCK_0} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {CLKS_FROM_TXPLL_0_TX_PLL_REF_CLK_0} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {DEVICE_INIT_DONE} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {EXT_RST_N} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {LANE0_RXD_N} -port_direction {IN} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {LANE0_RXD_P} -port_direction {IN} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {RCOSC_160MHZ_GL} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_INIT_DONE} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_REF_CLK_LOCK} -port_direction {IN} +sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_REF_CLK} -port_direction {IN} + +sd_create_scalar_port -sd_name ${sd_name} -port_name {LANE0_TXD_N} -port_direction {OUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {LANE0_TXD_P} -port_direction {OUT} -port_is_pad {1} +sd_create_scalar_port -sd_name ${sd_name} -port_name {TEST_MODE_0_LED} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {TEST_MODE_1_LED} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {TEST_MODE_2_LED} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {TEST_MODE_3_LED} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {error_o} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {lock_o} -port_direction {OUT} +sd_create_scalar_port -sd_name ${sd_name} -port_name {rx_val_o} -port_direction {OUT} + + + +# Create top level Bus interface Ports +sd_create_bif_port -sd_name ${sd_name} -port_name {CLKS_FROM_TXPLL_0} -port_bif_vlnv {Actel:busdef.clock:PF_TXPLL_XCVR_CLK:1.0} -port_bif_role {slave} -port_bif_mapping {\ +"LOCK:CLKS_FROM_TXPLL_0_TX_PLL_LOCK_0" \ +"BIT_CLK:CLKS_FROM_TXPLL_0_TX_BIT_CLK_0" \ +"REF_CLK_TO_LANE:CLKS_FROM_TXPLL_0_TX_PLL_REF_CLK_0" } + +# Add AND2_0 instance +sd_instantiate_macro -sd_name ${sd_name} -macro_name {AND2} -instance_name {AND2_0} + + + +# Add pattern_chk_0 instance +sd_instantiate_hdl_core -sd_name ${sd_name} -hdl_core_name {PATTERN_CHK} -instance_name {pattern_chk_0} +# Exporting Parameters of instance pattern_chk_0 +sd_configure_core_instance -sd_name ${sd_name} -instance_name {pattern_chk_0} -params {\ +"g_DATA_WID:32" \ +"STATE_0:0" \ +"STATE_1:1" \ +"STATE_2:2" \ +"STATE_3:3" \ +"STATE_4:4" \ +"STATE_5:5" }\ +-validate_rules 0 +sd_save_core_instance_config -sd_name ${sd_name} -instance_name {pattern_chk_0} +sd_update_instance -sd_name ${sd_name} -instance_name {pattern_chk_0} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {pattern_chk_0:s_count} -pin_slices {[0:0]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {pattern_chk_0:s_count} -pin_slices {[1:1]} +sd_create_pin_slices -sd_name ${sd_name} -pin_name {pattern_chk_0:s_count} -pin_slices {[2:2]} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {pattern_chk_0:RESET_EN} -value {VCC} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {pattern_chk_0:generate_err} -value {GND} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {pattern_chk_0:LANE_ARST_N} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {pattern_chk_0:start_i} -value {VCC} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {pattern_chk_0:clear_i} -value {GND} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {pattern_chk_0:error_count_o} + + + +# Add pattern_gen_0 instance +sd_instantiate_hdl_core -sd_name ${sd_name} -hdl_core_name {PATTERN_GEN} -instance_name {pattern_gen_0} +# Exporting Parameters of instance pattern_gen_0 +sd_configure_core_instance -sd_name ${sd_name} -instance_name {pattern_gen_0} -params {\ +"g_DATA_WID:32" \ +"STATE_0:0" \ +"STATE_1:1" \ +"STATE_2:2" \ +"STATE_3:3" \ +"STATE_4:4" \ +"STATE_5:5" }\ +-validate_rules 0 +sd_save_core_instance_config -sd_name ${sd_name} -instance_name {pattern_gen_0} +sd_update_instance -sd_name ${sd_name} -instance_name {pattern_gen_0} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {pattern_gen_0:generate_err_i} -value {GND} + + + +# Add PF_XCVR_0_0 instance +sd_instantiate_component -sd_name ${sd_name} -component_name {PF_XCVR_0} -instance_name {PF_XCVR_0_0} +sd_mark_pins_unused -sd_name ${sd_name} -pin_names {PF_XCVR_0_0:LANE0_RX_IDLE} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {PF_XCVR_0_0:LANE0_LOS} -value {GND} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {PF_XCVR_0_0:LANE0_TX_DISPFNC} -value {GND} + + + +# Add Reset_Block_0 instance +sd_instantiate_component -sd_name ${sd_name} -component_name {Reset_Block} -instance_name {Reset_Block_0} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {Reset_Block_0:BANK_x_VDDI_STATUS} -value {VCC} +sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {Reset_Block_0:BANK_y_VDDI_STATUS} -value {VCC} + + + +# Add startup_0 instance +sd_instantiate_hdl_core -sd_name ${sd_name} -hdl_core_name {STARTUP} -instance_name {startup_0} + + + +# Add scalar net connections +sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:A" "PF_XCVR_0_0:LANE0_TX_CLK_STABLE" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:B" "XCVR_REF_CLK_LOCK" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:Y" "Reset_Block_0:TX_clk_stable" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"DEVICE_INIT_DONE" "Reset_Block_0:INIT_DONE" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"EXT_RST_N" "Reset_Block_0:EXT_RST_N" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"LANE0_RXD_N" "PF_XCVR_0_0:LANE0_RXD_N" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"LANE0_RXD_P" "PF_XCVR_0_0:LANE0_RXD_P" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"LANE0_TXD_N" "PF_XCVR_0_0:LANE0_TXD_N" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"LANE0_TXD_P" "PF_XCVR_0_0:LANE0_TXD_P" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:CTRL_ARST_N" "PF_XCVR_0_0:LANE0_PCS_ARST_N" "PF_XCVR_0_0:LANE0_PMA_ARST_N" "XCVR_INIT_DONE" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:CTRL_CLK" "RCOSC_160MHZ_GL" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:LANE0_CDR_REF_CLK_FAB" "XCVR_REF_CLK" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:LANE0_RX_CLK_R" "Reset_Block_0:RX_clk" "pattern_chk_0:clk_i" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:LANE0_RX_READY" "Reset_Block_0:RX_ready" "pattern_chk_0:RX_READY" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:LANE0_RX_VAL" "pattern_chk_0:rx_val_i" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:LANE0_TX_CLK_R" "Reset_Block_0:TX_clk" "pattern_gen_0:clk_i" "startup_0:tx_clk_i" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"Reset_Block_0:Pattern_chk_rst_n" "TEST_MODE_3_LED" "pattern_chk_0:ARST_N" "pattern_chk_0:reset_n_i" "startup_0:pattern_chk_n_i" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"Reset_Block_0:Pattern_gen_rst_n" "startup_0:pattern_gen_n_i" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"TEST_MODE_0_LED" "pattern_chk_0:s_count[0:0]" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"TEST_MODE_1_LED" "pattern_chk_0:s_count[1:1]" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"TEST_MODE_2_LED" "pattern_chk_0:s_count[2:2]" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"error_o" "pattern_chk_0:error_o" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"lock_o" "pattern_chk_0:lock_o" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"pattern_chk_0:rx_val_o" "rx_val_o" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"pattern_gen_0:reset_n_i" "startup_0:start_gen_o" } + +# Add bus net connections +sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:LANE0_8B10B_RX_K" "pattern_chk_0:Rx_K_Char_i" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:LANE0_8B10B_TX_K" "pattern_gen_0:Tx_K_Char_o" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:LANE0_RX_CODE_VIOLATION" "pattern_chk_0:LCV_ERR" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:LANE0_RX_DATA" "pattern_chk_0:data_in_i" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:LANE0_RX_DISPARITY_ERROR" "pattern_chk_0:DISP_ERR" } +sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:LANE0_TX_DATA" "pattern_gen_0:data_out_o" } + +# Add bus interface net connections +sd_connect_pins -sd_name ${sd_name} -pin_names {"CLKS_FROM_TXPLL_0" "PF_XCVR_0_0:CLKS_FROM_TXPLL_0" } + +# Re-enable auto promotion of pins of type 'pad' +auto_promote_pad_pins -promote_all 1 +# Save the smartDesign +save_smartdesign -sd_name ${sd_name} +# Generate SmartDesign XCVR_LOOPBACK +generate_component -component_name ${sd_name} diff --git a/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/constraints/SYZYGY.pdc b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/constraints/SYZYGY.pdc new file mode 100644 index 0000000000000000000000000000000000000000..a7fedb76b3acff473a6b83e689dca098468d5c2d --- /dev/null +++ b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/constraints/SYZYGY.pdc @@ -0,0 +1,211 @@ +set_io -port_name P8_3_USER_LED_0 \ + -pin_name V22 \ + -fixed true \ + -DIRECTION OUTPUT + +set_io -port_name P8_4_USER_LED_1 \ + -pin_name W22 \ + -fixed true \ + -DIRECTION OUTPUT + +set_io -port_name P8_5_USER_LED_2 \ + -pin_name V19 \ + -fixed true \ + -DIRECTION OUTPUT + +set_io -port_name P8_6_USER_LED_3 \ + -pin_name V20 \ + -fixed true \ + -DIRECTION OUTPUT + +set_io -port_name P8_7_USER_LED_4 \ + -pin_name V15 \ + -fixed true \ + -DIRECTION OUTPUT + +set_io -port_name P8_8_USER_LED_5 \ + -pin_name V14 \ + -fixed true \ + -DIRECTION OUTPUT + +set_io -port_name P8_9_USER_LED_6 \ + -pin_name V21 \ + -fixed true \ + -DIRECTION OUTPUT + +set_io -port_name P8_10_USER_LED_7 \ + -pin_name W21 \ + -fixed true \ + -DIRECTION OUTPUT + +set_io -port_name P8_11_USER_LED_8 \ + -pin_name Y21 \ + -fixed true \ + -DIRECTION OUTPUT + +set_io -port_name P8_12_USER_LED_9 \ + -pin_name Y20 \ + -fixed true \ + -DIRECTION OUTPUT + +set_io -port_name P8_13_USER_LED_10 \ + -pin_name B10 \ + -fixed true \ + -io_std LVCMOS33 \ + -DIRECTION OUTPUT + +set_io -port_name P8_14_USER_LED_11 \ + -pin_name B9 \ + -io_std LVCMOS33 \ + -fixed true \ + -DIRECTION OUTPUT + + +set_io -port_name XCVR_TX1_N \ + -pin_name H21 \ + -DIRECTION OUTPUT + +set_io -port_name XCVR_TX1_P \ + -pin_name H22 \ + -DIRECTION OUTPUT + +set_io -port_name XCVR_TX2_N \ + -pin_name P21 \ + -DIRECTION OUTPUT + +set_io -port_name XCVR_TX2_P \ + -pin_name P22 \ + -DIRECTION OUTPUT + +set_io -port_name XCVR_TX3_N \ + -pin_name T21 \ + -DIRECTION OUTPUT + +set_io -port_name XCVR_TX3_P \ + -pin_name T22 \ + -DIRECTION OUTPUT + + +set_io -port_name XCVR_RX1_N \ + -pin_name K21 \ + -DIRECTION INPUT + +set_io -port_name XCVR_RX1_P \ + -pin_name K22 \ + -DIRECTION INPUT + +set_io -port_name XCVR_RX2_N \ + -pin_name M21 \ + -DIRECTION INPUT + +set_io -port_name XCVR_RX2_P \ + -pin_name M22 \ + -DIRECTION INPUT + +set_io -port_name XCVR_RX3_N \ + -pin_name R19 \ + -DIRECTION INPUT + +set_io -port_name XCVR_RX3_P \ + -pin_name R20 \ + -DIRECTION INPUT + + +#set_io -port_name XCVR_0A_REFCLK_P \ +# -pin_name L19 \ +# -DIRECTION INPUT +# +#set_io -port_name XCVR_0A_REFCLK_N \ +# -pin_name L20 \ +# -DIRECTION INPUT + + +set_io -port_name XCVR_0B_REFCLK_P \ + -pin_name N19 \ + -DIRECTION INPUT + +set_io -port_name XCVR_0B_REFCLK_N \ + -pin_name N20 \ + -DIRECTION INPUT + + +set_io -port_name XCVR_0C_REFCLK_P \ + -pin_name J19 \ + -DIRECTION INPUT + +set_io -port_name XCVR_0C_REFCLK_N \ + -pin_name J20 \ + -DIRECTION INPUT + + + +set_io -port_name B0_HSIO70N \ + -pin_name AB20 \ + -fixed true \ + -DIRECTION OUTPUT + + +set_io -port_name B0_HSIO70P \ + -pin_name AB19 \ + -fixed true \ + -DIRECTION INPUT + + +set_io -port_name B0_HSIO71N \ + -pin_name AA20 \ + -fixed true \ + -DIRECTION OUTPUT + + +set_io -port_name B0_HSIO71P \ + -pin_name AB21 \ + -fixed true \ + -DIRECTION INPUT + + +set_io -port_name B0_HSIO73N_C2P_CLKN \ + -pin_name U17 \ + -fixed true \ + -DIRECTION OUTPUT + + +set_io -port_name B0_HSIO73P_C2P_CLKP \ + -pin_name T17 \ + -fixed true \ + -DIRECTION INPUT + + +set_io -port_name B0_HSIO81N \ + -pin_name AA17 \ + -fixed true \ + -DIRECTION OUTPUT + + +set_io -port_name B0_HSIO81P \ + -pin_name AB17 \ + -fixed true \ + -DIRECTION INPUT + + +set_io -port_name B0_HSIO82N \ + -pin_name Y16 \ + -fixed true \ + -DIRECTION INOUT + + +set_io -port_name B0_HSIO82P \ + -pin_name AA16 \ + -fixed true \ + -DIRECTION INPUT + + +set_io -port_name B0_HSIO83N \ + -pin_name W17 \ + -fixed true \ + -DIRECTION OUTPUT + + +set_io -port_name B0_HSIO83P \ + -pin_name W16 \ + -fixed true \ + -DIRECTION INPUT diff --git a/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/constraints/fp/SYZYGY.pdc b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/constraints/fp/SYZYGY.pdc new file mode 100644 index 0000000000000000000000000000000000000000..806a692d2117e9595dfbacc7e6d4770a0afd0f76 --- /dev/null +++ b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/constraints/fp/SYZYGY.pdc @@ -0,0 +1,7 @@ + +set_location -inst_name HIGH_SPEED_INTERFACE_0/PF_XCVR_REF_CLK_C0_0/PF_XCVR_REF_CLK_C0_0/I_IO -fixed true -x 1014 -y 74 +set_location -inst_name HIGH_SPEED_INTERFACE_0/XCVR_LOOPBACK_3/PF_XCVR_0_0/I_XCVR/LANE0 -fixed true -x 1009 -y 74 +set_location -inst_name HIGH_SPEED_INTERFACE_0/PF_TX_PLL_0_0/PF_TX_PLL_0_0/txpll_isnt_0 -fixed true -x 1014 -y 77 +set_location -inst_name HIGH_SPEED_INTERFACE_0/XCVR_LOOPBACK_2/PF_XCVR_0_0/I_XCVR/LANE0 -fixed true -x 1008 -y 74 +set_location -inst_name HIGH_SPEED_INTERFACE_0/PF_XCVR_REF_CLK_0_0/PF_XCVR_REF_CLK_0_0/I_IO -fixed true -x 1015 -y 74 +set_location -inst_name HIGH_SPEED_INTERFACE_0/XCVR_LOOPBACK_1/PF_XCVR_0_0/I_XCVR/LANE0 -fixed true -x 1008 -y 47 diff --git a/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/device-tree-overlay/syzygy-test-gpios.dtso b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/device-tree-overlay/syzygy-test-gpios.dtso new file mode 100644 index 0000000000000000000000000000000000000000..1a57dfe71f03f93557880c7ad32b5d5657ec1342 --- /dev/null +++ b/sources/FPGA-design/script_support/components/SYZYGY/LOOPBACK_3_LANES_OPAL_KELLY/device-tree-overlay/syzygy-test-gpios.dtso @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: (GPL-2.0 OR MIT) +/* Copyright (c) 2020-2021 Microchip Technology Inc */ + +/dts-v1/; +/plugin/; + +&{/chosen} { + overlays { + SYZYGY-3-LANES-LOOPBACK-GATEWARE = "GATEWARE_GIT_VERSION"; + }; +}; + +&{/} { + fabric-bus@40000000 { + hsi_gpios: gpio@44000000 { + compatible = "microchip,core-gpio"; + reg = <0x0 0x44000000 0x0 0x1000>; + clocks = <&fabric_clk3>; + gpio-controller; + #gpio-cells = <2>; + ngpios=<20>; + status = "okay"; + gpio-line-names = "B0_HSIO70N", "B0_HSIO71N", "B0_HSIO83N", "B0_HSIO73N_C2P_CLKN", + "B0_HSIO70P", "B0_HSIO71P", "B0_HSIO83P", "B0_HSIO73N_C2P_CLKP", + "XCVR1_RX_VALID", "XCVR1_LOCK", "XCVR1_ERROR", + "XCVR2_RX_VALID", "XCVR2_LOCK", "XCVR2_ERROR", + "XCVR3_RX_VALID", "XCVR3_LOCK", "XCVR3_ERROR", + "XCVR_0B_REF_CLK_PLL_LOCK", "XCVR_0C_REF_CLK_PLL_LOCK", "B0_HSIO81N"; + }; + }; +}; diff --git a/sources/MSS_Configuration/MSS_Configuration.cfg b/sources/MSS_Configuration/MSS_Configuration.cfg index 5440c34e35a1d005e891923bf25db5185696b5bb..f2d7c78152af09ba20d9733d46b19a726335691c 100644 --- a/sources/MSS_Configuration/MSS_Configuration.cfg +++ b/sources/MSS_Configuration/MSS_Configuration.cfg @@ -644,12 +644,12 @@ LPDDR4_BANK_ADDR_WIDTH 3 LPDDR4_CA_ODT RZQ4 LPDDR4_CLOCK_DDR 800.0 LPDDR4_COL_ADDR_WIDTH 10 -LPDDR4_CONTROLLER_ADD_CMD_DRIVE 48 -LPDDR4_CONTROLLER_CLK_DRIVE 48 -LPDDR4_CONTROLLER_DQS_DRIVE 48 -LPDDR4_CONTROLLER_DQS_ODT 80 -LPDDR4_CONTROLLER_DQ_DRIVE 48 -LPDDR4_CONTROLLER_DQ_ODT 80 +LPDDR4_CONTROLLER_ADD_CMD_DRIVE 40 +LPDDR4_CONTROLLER_CLK_DRIVE 40 +LPDDR4_CONTROLLER_DQS_DRIVE 40 +LPDDR4_CONTROLLER_DQS_ODT 120 +LPDDR4_CONTROLLER_DQ_DRIVE 40 +LPDDR4_CONTROLLER_DQ_ODT 120 LPDDR4_DM_MODE DM LPDDR4_DQDQS_TRAINING_OFFSET 1 LPDDR4_DQ_ODT RZQ2 @@ -680,7 +680,7 @@ LPDDR4_TIMING_RRD 10 LPDDR4_TIMING_RTP 7.5 LPDDR4_TIMING_WR 18 LPDDR4_TIMING_WTR 10 -LPDDR4_VREF_CA 50 +LPDDR4_VREF_CA 35 LPDDR4_VREF_CALIB_ENABLE 1 LPDDR4_VREF_CALIB_RANGE 1 LPDDR4_VREF_CALIB_VALUE 31.2