diff --git a/libraries/technology/ip_arria10/flash/asmi_parallel/compile_ip.tcl b/libraries/technology/ip_arria10/flash/asmi_parallel/compile_ip.tcl new file mode 100644 index 0000000000000000000000000000000000000000..278d7877b6a960fdd1b81fee952c6af70758f668 --- /dev/null +++ b/libraries/technology/ip_arria10/flash/asmi_parallel/compile_ip.tcl @@ -0,0 +1,36 @@ +#------------------------------------------------------------------------------ +# +# Copyright (C) 2014 +# ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/> +# JIVE (Joint Institute for VLBI in Europe) <http://www.jive.nl/> +# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +#------------------------------------------------------------------------------ + +# This file is based on generated file mentor/msim_setup.tcl. +# - the values for modelsim_search_libraries key in the hdllib.cfg follow from altera libraries vmap section in the msim_setup.tcl +# - vmap for the IP specific libraries and compile all IP source files into those libraries similar as in the msim_setup.tcl +# - replace QSYS_SIMDIR by IP_DIR +# - if the testbench is also generated with QSYS then only the IP_TBDIR files are needed, because these also contain the source files. + +set IP_DIR "$env(RADIOHDL)/libraries/technology/ip_arria10/flash/asmi_parallel/generated/sim" + +vlib ./work/ + +vmap ip_arria10_asmi_parallel_altera_asmi_parallel_140 ./work/ + +vlog "$IP_DIR/../altera_asmi_parallel_140/sim/ip_arria10_asmi_parallel_altera_asmi_parallel_140_o6bwnxy.v" -work ip_arria10_asmi_parallel_altera_asmi_parallel_140 +vcom "$IP_DIR/ip_arria10_asmi_parallel.vhd" diff --git a/libraries/technology/ip_arria10/flash/asmi_parallel/generate_ip.sh b/libraries/technology/ip_arria10/flash/asmi_parallel/generate_ip.sh new file mode 100644 index 0000000000000000000000000000000000000000..9207393b155cb2bc8cfe137147fe9ebdacc2bb8d --- /dev/null +++ b/libraries/technology/ip_arria10/flash/asmi_parallel/generate_ip.sh @@ -0,0 +1,44 @@ +#!/bin/bash +# -------------------------------------------------------------------------- # +# +# Copyright (C) 2014 +# ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/> +# JIVE (Joint Institute for VLBI in Europe) <http://www.jive.nl/> +# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +# -------------------------------------------------------------------------- # +# +# Purpose: Generate IP with Qsys +# Description: +# Generate the IP in a separate generated/ subdirectory. +# +# Usage: +# +# ./generate_ip.sh +# + +# Tool settings for selected target "unb2" with arria10 +. ${RADIOHDL}/tools/quartus/set_quartus unb2 + +#qsys-generate --help + +# Only generate the source IP +# - use --synthesis=VHDL to have top level in VHDL similar as with MegaWizard +qsys-generate ip_arria10_asmi_parallel.qsys \ + --synthesis=VHDL \ + --simulation=VHDL \ + --output-directory=generated \ + --allow-mixed-language-simulation diff --git a/libraries/technology/ip_arria10/flash/asmi_parallel/hdllib.cfg b/libraries/technology/ip_arria10/flash/asmi_parallel/hdllib.cfg new file mode 100644 index 0000000000000000000000000000000000000000..4498816f43a49e8591104a3caf25696a158a0d39 --- /dev/null +++ b/libraries/technology/ip_arria10/flash/asmi_parallel/hdllib.cfg @@ -0,0 +1,17 @@ +hdl_lib_name = ip_arria10_asmi_parallel +hdl_library_clause_name = ip_arria10_asmi_parallel_altera_asmi_parallel_140 +hdl_lib_uses = +hdl_lib_technology = ip_arria10 + +build_dir_sim = $HDL_BUILD_DIR +build_dir_synth = $HDL_BUILD_DIR + +modelsim_compile_ip_files = + $RADIOHDL/libraries/technology/ip_arria10/flash/asmi_parallel/compile_ip.tcl + +synth_files = + +test_bench_files = + +quartus_qip_files = + generated/ip_arria10_asmi_parallel.qip diff --git a/libraries/technology/ip_arria10/flash/asmi_parallel/ip_arria10_asmi_parallel.qsys b/libraries/technology/ip_arria10/flash/asmi_parallel/ip_arria10_asmi_parallel.qsys new file mode 100644 index 0000000000000000000000000000000000000000..0a4e09369d7018b04fb07ed1ec0f7577dbc964d3 --- /dev/null +++ b/libraries/technology/ip_arria10/flash/asmi_parallel/ip_arria10_asmi_parallel.qsys @@ -0,0 +1,167 @@ +<?xml version="1.0" encoding="UTF-8"?> +<system name="$${FILENAME}"> + <component + name="$${FILENAME}" + displayName="$${FILENAME}" + version="1.0" + description="" + tags="INTERNAL_COMPONENT=true" + categories="System" /> + <parameter name="bonusData"><![CDATA[bonusData +{ + element $${FILENAME} + { + } + element asmi_parallel_0 + { + datum _sortIndex + { + value = "0"; + type = "int"; + } + } +} +]]></parameter> + <parameter name="clockCrossingAdapter" value="HANDSHAKE" /> + <parameter name="device" value="10AX115U3F45I2LG" /> + <parameter name="deviceFamily" value="Arria 10" /> + <parameter name="deviceSpeedGrade" value="2" /> + <parameter name="fabricMode" value="QSYS" /> + <parameter name="generateLegacySim" value="false" /> + <parameter name="generationId" value="0" /> + <parameter name="globalResetBus" value="false" /> + <parameter name="hdlLanguage" value="VERILOG" /> + <parameter name="hideFromIPCatalog" value="true" /> + <parameter name="maxAdditionalLatency" value="1" /> + <parameter name="projectName" value="" /> + <parameter name="sopcBorderPoints" value="false" /> + <parameter name="systemHash" value="0" /> + <parameter name="testBenchDutName" value="" /> + <parameter name="timeStamp" value="0" /> + <parameter name="useTestBenchNamingPattern" value="false" /> + <instanceScript></instanceScript> + <interface name="clkin" internal="asmi_parallel_0.clkin" type="clock" dir="end"> + <port name="clkin" internal="clkin" /> + </interface> + <interface name="read" internal="asmi_parallel_0.read" type="conduit" dir="end"> + <port name="read" internal="read" /> + </interface> + <interface name="rden" internal="asmi_parallel_0.rden" type="conduit" dir="end"> + <port name="rden" internal="rden" /> + </interface> + <interface name="addr" internal="asmi_parallel_0.addr" type="conduit" dir="end"> + <port name="addr" internal="addr" /> + </interface> + <interface name="reset" internal="asmi_parallel_0.reset" type="reset" dir="end"> + <port name="reset" internal="reset" /> + </interface> + <interface name="sce" internal="asmi_parallel_0.sce" type="conduit" dir="end"> + <port name="sce" internal="sce" /> + </interface> + <interface + name="dataout" + internal="asmi_parallel_0.dataout" + type="conduit" + dir="end"> + <port name="dataout" internal="dataout" /> + </interface> + <interface name="busy" internal="asmi_parallel_0.busy" type="conduit" dir="end"> + <port name="busy" internal="busy" /> + </interface> + <interface + name="data_valid" + internal="asmi_parallel_0.data_valid" + type="conduit" + dir="end"> + <port name="data_valid" internal="data_valid" /> + </interface> + <interface name="wren" internal="asmi_parallel_0.wren" type="conduit" dir="end"> + <port name="wren" internal="wren" /> + </interface> + <interface + name="en4b_addr" + internal="asmi_parallel_0.en4b_addr" + type="conduit" + dir="end"> + <port name="en4b_addr" internal="en4b_addr" /> + </interface> + <interface + name="write" + internal="asmi_parallel_0.write" + type="conduit" + dir="end"> + <port name="write" internal="write" /> + </interface> + <interface + name="datain" + internal="asmi_parallel_0.datain" + type="conduit" + dir="end"> + <port name="datain" internal="datain" /> + </interface> + <interface + name="illegal_write" + internal="asmi_parallel_0.illegal_write" + type="conduit" + dir="end"> + <port name="illegal_write" internal="illegal_write" /> + </interface> + <interface + name="sector_erase" + internal="asmi_parallel_0.sector_erase" + type="conduit" + dir="end"> + <port name="sector_erase" internal="sector_erase" /> + </interface> + <interface + name="illegal_erase" + internal="asmi_parallel_0.illegal_erase" + type="conduit" + dir="end"> + <port name="illegal_erase" internal="illegal_erase" /> + </interface> + <interface name="ex4b_addr" internal="asmi_parallel_0.ex4b_addr" /> + <interface name="die_erase" internal="asmi_parallel_0.die_erase" /> + <interface + name="shift_bytes" + internal="asmi_parallel_0.shift_bytes" + type="conduit" + dir="end"> + <port name="shift_bytes" internal="shift_bytes" /> + </interface> + <module + kind="altera_asmi_parallel" + version="14.0" + enabled="1" + name="asmi_parallel_0" + autoexport="1"> + <parameter name="DEVICE_FAMILY" value="Arria 10" /> + <parameter name="INTENDED_DEVICE_FAMILY" value="Arria 10" /> + <parameter name="CBX_AUTO_BLACKBOX" value="ALL" /> + <parameter name="EPCS_TYPE" value="EPCQL1024" /> + <parameter name="gui_read_sid" value="false" /> + <parameter name="gui_read_rdid" value="false" /> + <parameter name="gui_read_status" value="false" /> + <parameter name="gui_read_address" value="false" /> + <parameter name="gui_fast_read" value="false" /> + <parameter name="DATA_WIDTH" value="QUAD" /> + <parameter name="gui_read_dummyclk" value="false" /> + <parameter name="gui_write" value="true" /> + <parameter name="gui_wren" value="true" /> + <parameter name="gui_single_write" value="false" /> + <parameter name="gui_page_write" value="true" /> + <parameter name="PAGE_SIZE" value="256" /> + <parameter name="gui_use_eab" value="false" /> + <parameter name="gui_bulk_erase" value="false" /> + <parameter name="gui_die_erase" value="false" /> + <parameter name="gui_sector_erase" value="true" /> + <parameter name="gui_sector_protect" value="false" /> + <parameter name="gui_ex4b_addr" value="false" /> + <parameter name="gui_use_asmiblock" value="false" /> + <parameter name="WRITE_DUMMY_CLK" value="0" /> + <parameter name="ENABLE_SIM" value="false" /> + </module> + <interconnectRequirement for="$system" name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" /> + <interconnectRequirement for="$system" name="qsys_mm.maxAdditionalLatency" value="1" /> + <interconnectRequirement for="$system" name="qsys_mm.insertDefaultSlave" value="FALSE" /> +</system> diff --git a/libraries/technology/ip_arria10/flash/remote_update/compile_ip.tcl b/libraries/technology/ip_arria10/flash/remote_update/compile_ip.tcl new file mode 100644 index 0000000000000000000000000000000000000000..6bec6e3959df364ebb19ad2888bf8de6aca23f33 --- /dev/null +++ b/libraries/technology/ip_arria10/flash/remote_update/compile_ip.tcl @@ -0,0 +1,36 @@ +#------------------------------------------------------------------------------ +# +# Copyright (C) 2014 +# ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/> +# JIVE (Joint Institute for VLBI in Europe) <http://www.jive.nl/> +# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +#------------------------------------------------------------------------------ + +# This file is based on generated file mentor/msim_setup.tcl. +# - the values for modelsim_search_libraries key in the hdllib.cfg follow from altera libraries vmap section in the msim_setup.tcl +# - vmap for the IP specific libraries and compile all IP source files into those libraries similar as in the msim_setup.tcl +# - replace QSYS_SIMDIR by IP_DIR +# - if the testbench is also generated with QSYS then only the IP_TBDIR files are needed, because these also contain the source files. + +set IP_DIR "$env(RADIOHDL)/libraries/technology/ip_arria10/flash/remote_update/generated/sim" + +vlib ./work/ + +vmap ip_arria10_remote_update_altera_remote_update_140 ./work/ + +vlog "$IP_DIR/../altera_remote_update_140/sim/ip_arria10_remote_update_altera_remote_update_140_5hyen6i.v" -work ip_arria10_remote_update_altera_remote_update_140 +vcom "$IP_DIR/ip_arria10_remote_update.vhd" diff --git a/libraries/technology/ip_arria10/flash/remote_update/generate_ip.sh b/libraries/technology/ip_arria10/flash/remote_update/generate_ip.sh new file mode 100644 index 0000000000000000000000000000000000000000..3e96e70f4dabe166befab2a1415fe16439cc3bae --- /dev/null +++ b/libraries/technology/ip_arria10/flash/remote_update/generate_ip.sh @@ -0,0 +1,44 @@ +#!/bin/bash +# -------------------------------------------------------------------------- # +# +# Copyright (C) 2014 +# ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/> +# JIVE (Joint Institute for VLBI in Europe) <http://www.jive.nl/> +# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +# -------------------------------------------------------------------------- # +# +# Purpose: Generate IP with Qsys +# Description: +# Generate the IP in a separate generated/ subdirectory. +# +# Usage: +# +# ./generate_ip.sh +# + +# Tool settings for selected target "unb2" with arria10 +. ${RADIOHDL}/tools/quartus/set_quartus unb2 + +#qsys-generate --help + +# Only generate the source IP +# - use --synthesis=VHDL to have top level in VHDL similar as with MegaWizard +qsys-generate ip_arria10_remote_update.qsys \ + --synthesis=VHDL \ + --simulation=VHDL \ + --output-directory=generated \ + --allow-mixed-language-simulation diff --git a/libraries/technology/ip_arria10/flash/remote_update/hdllib.cfg b/libraries/technology/ip_arria10/flash/remote_update/hdllib.cfg new file mode 100644 index 0000000000000000000000000000000000000000..6e89b0066850acfe4f8d5456a9ef58daeb553b73 --- /dev/null +++ b/libraries/technology/ip_arria10/flash/remote_update/hdllib.cfg @@ -0,0 +1,17 @@ +hdl_lib_name = ip_arria10_remote_update +hdl_library_clause_name = ip_arria10_remote_update_altera_remote_update_140 +hdl_lib_uses = +hdl_lib_technology = ip_arria10 + +build_dir_sim = $HDL_BUILD_DIR +build_dir_synth = $HDL_BUILD_DIR + +modelsim_compile_ip_files = + $RADIOHDL/libraries/technology/ip_arria10/flash/remote_update/compile_ip.tcl + +synth_files = + +test_bench_files = + +quartus_qip_files = + generated/ip_arria10_remote_update.qip diff --git a/libraries/technology/ip_arria10/flash/remote_update/ip_arria10_remote_update.qsys b/libraries/technology/ip_arria10/flash/remote_update/ip_arria10_remote_update.qsys new file mode 100644 index 0000000000000000000000000000000000000000..7178ea0b43ff2a0299aced39def4ab2cc7fbc218 --- /dev/null +++ b/libraries/technology/ip_arria10/flash/remote_update/ip_arria10_remote_update.qsys @@ -0,0 +1,118 @@ +<?xml version="1.0" encoding="UTF-8"?> +<system name="$${FILENAME}"> + <component + name="$${FILENAME}" + displayName="$${FILENAME}" + version="1.0" + description="" + tags="INTERNAL_COMPONENT=true" + categories="" /> + <parameter name="bonusData"><![CDATA[bonusData +{ + element $${FILENAME} + { + } + element remote_update_0 + { + datum _sortIndex + { + value = "0"; + type = "int"; + } + } +} +]]></parameter> + <parameter name="clockCrossingAdapter" value="HANDSHAKE" /> + <parameter name="device" value="10AX115U3F45I2LG" /> + <parameter name="deviceFamily" value="Arria 10" /> + <parameter name="deviceSpeedGrade" value="2" /> + <parameter name="fabricMode" value="QSYS" /> + <parameter name="generateLegacySim" value="false" /> + <parameter name="generationId" value="0" /> + <parameter name="globalResetBus" value="false" /> + <parameter name="hdlLanguage" value="VERILOG" /> + <parameter name="hideFromIPCatalog" value="true" /> + <parameter name="maxAdditionalLatency" value="1" /> + <parameter name="projectName" value="" /> + <parameter name="sopcBorderPoints" value="false" /> + <parameter name="systemHash" value="0" /> + <parameter name="testBenchDutName" value="" /> + <parameter name="timeStamp" value="0" /> + <parameter name="useTestBenchNamingPattern" value="false" /> + <instanceScript></instanceScript> + <interface + name="read_param" + internal="remote_update_0.read_param" + type="conduit" + dir="end"> + <port name="read_param" internal="read_param" /> + </interface> + <interface + name="param" + internal="remote_update_0.param" + type="conduit" + dir="end"> + <port name="param" internal="param" /> + </interface> + <interface + name="reconfig" + internal="remote_update_0.reconfig" + type="conduit" + dir="end"> + <port name="reconfig" internal="reconfig" /> + </interface> + <interface + name="reset_timer" + internal="remote_update_0.reset_timer" + type="conduit" + dir="end"> + <port name="reset_timer" internal="reset_timer" /> + </interface> + <interface name="clock" internal="remote_update_0.clock" type="clock" dir="end"> + <port name="clock" internal="clock" /> + </interface> + <interface name="reset" internal="remote_update_0.reset" type="reset" dir="end"> + <port name="reset" internal="reset" /> + </interface> + <interface name="busy" internal="remote_update_0.busy" type="conduit" dir="end"> + <port name="busy" internal="busy" /> + </interface> + <interface + name="data_out" + internal="remote_update_0.data_out" + type="conduit" + dir="end"> + <port name="data_out" internal="data_out" /> + </interface> + <interface + name="write_param" + internal="remote_update_0.write_param" + type="conduit" + dir="end"> + <port name="write_param" internal="write_param" /> + </interface> + <interface + name="data_in" + internal="remote_update_0.data_in" + type="conduit" + dir="end"> + <port name="data_in" internal="data_in" /> + </interface> + <module + kind="altera_remote_update" + version="14.0" + enabled="1" + name="remote_update_0" + autoexport="1"> + <parameter name="DEVICE_FAMILY" value="Arria 10" /> + <parameter name="CBX_AUTO_BLACKBOX" value="ALL" /> + <parameter name="operation_mode" value="REMOTE" /> + <parameter name="GUI_config_device" value="EPCQ512" /> + <parameter name="m_support_write_config_check" value="true" /> + <parameter name="check_app_pof" value="false" /> + <parameter name="AUTO_CLOCK_CLOCK_RATE" value="0" /> + </module> + <interconnectRequirement for="$system" name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" /> + <interconnectRequirement for="$system" name="qsys_mm.maxAdditionalLatency" value="1" /> + <interconnectRequirement for="$system" name="qsys_mm.insertDefaultSlave" value="FALSE" /> +</system>