Alt Em10g32 ED IS
Alt Em10g32 ED IS
Chandra
Kean Harn Lim
Soon Chye Chan
Yung Jia Loh
Table of Contents
1 Document Revision............................................................................................................................10
2 Introduction.......................................................................................................................................11
2.1 Example Design Objective..........................................................................................................11
2.2 Example Design Variants............................................................................................................11
2.3 Device Family Support...............................................................................................................12
2.4 Existing Example Design.............................................................................................................12
2.5 Example Design Quick Start Document......................................................................................12
2.6 Example Design Quick Start Video.............................................................................................12
2.7 Unified Reset Architecture.........................................................................................................13
2.7.1 Ideal Reset Flow.................................................................................................................13
2.7.2 Architecture to realize the ideal flow.................................................................................14
2.7.3 Analysis of the new reset architecture with respect to the customer issues.....................16
2.7.4 Backward compatibility......................................................................................................17
2.7.5 ACDS Plan...........................................................................................................................18
2.7.6 Practical considerations.....................................................................................................19
2.7.7 Points to be double-checked.............................................................................................19
3 User Flow...........................................................................................................................................20
3.1 Delivering the Example Design..................................................................................................20
3.2 Selecting IP/ED Parameters.......................................................................................................21
3.2.1 IP Parameters.....................................................................................................................23
3.2.2 Example Design Parameters..............................................................................................23
3.2.3 IP Parameter Compatibility with Example Design..............................................................29
3.3 Generating Example Design.......................................................................................................30
3.3.1 Generation Method...........................................................................................................30
3.3.2 Generation Output.............................................................................................................30
3.4 Simulating Example Design........................................................................................................31
3.4.1 Simulators Supported........................................................................................................31
3.4.2 Simulation Warning...........................................................................................................31
3.4.3 Simulation Testbench........................................................................................................32
3.5 Compiling Example Design using Quartus..................................................................................32
3.5.1 Compilation Warning.........................................................................................................33
10.7.3 PHY...................................................................................................................................169
10.8 Simulating the example design Testbench...............................................................................170
10.8.1 Simulation Collateral........................................................................................................170
10.8.2 Test Cases........................................................................................................................172
10.9 Testing the ED in hardware......................................................................................................173
10.9.1 Hardware setup...............................................................................................................173
10.9.2 Timing closure..................................................................................................................176
10.9.3 SingalTap signaling...........................................................................................................176
11 Functional Description: 10G Base-R Example Design..................................................................176
11.1 Software and Hardware Requirement.....................................................................................177
11.2 Feature....................................................................................................................................177
11.3 Clocking...................................................................................................................................179
11.4 Reset........................................................................................................................................179
11.5 Parameter Setting....................................................................................................................179
11.5.1 Example Design Parameters............................................................................................180
11.5.2 PHY Pre-Set Parameters...................................................................................................180
11.6 Interface Signaling...................................................................................................................188
11.7 Register Mapping.....................................................................................................................189
11.8 Simulating the Example Design................................................................................................189
11.8.1 Simulation Collateral........................................................................................................189
11.8.2 Simulation Test Cases......................................................................................................190
11.9 Testing the Example Design in Hardware................................................................................190
11.9.1 Hardware Setup...............................................................................................................190
11.9.2 Timing Closure.................................................................................................................191
11.9.3 SignalTap Signaling...........................................................................................................191
12 Example Design Components......................................................................................................196
12.1 Mac IP......................................................................................................................................196
12.2 Phy IP.......................................................................................................................................196
12.3 Xcvr Reset Controller...............................................................................................................196
12.4 PLLs..........................................................................................................................................196
12.5 Pattern Generator & Checker..................................................................................................196
12.6 Avn-MM Address Decoder.......................................................................................................196
12.7 FIFO..........................................................................................................................................196
1 Document Revision
2 Introduction
The purpose of this Functional Specification is to provide a specific description of the technical as well as
user interface features of the Example Design (ED) for Low Latency 10G Ethernet MAC (LL10GE-MAC) IP
core.
This Functional specification describes the architecture of Low Latency Ethernet 10G MAC Example
Design, its components integration, interface signals, register map, clocking and reset scheme, ACDS
packaging, simulation and hardware testing.
The Example Design is developed per different variants setting of 32-bits MAC in ACDS-15.1 coupled
with a pre-parameterized Arria 10 (Night Fury) PHY. For Ethernet PHY-Only Example Design with full
parameterization of PHY, please refer to respective Ethernet PHY IP.
Chapter-3 describes user steps on generating, simulating, compiling and testing the Example Design in
hardware. The user flow described is common and applied to all Example Design variants. This is the
chapter for TechPub reference in developing Example Design Quick Start Guide.
The Chapters from 4 onwards describe functionality of each of the delivered Example Design variants:
top level block diagram, clocking and reset, parameter setting, register mapping as well as variant-
dependent information. This is the chapters for TechPub reference in developing Example Design User
Guide.
The last 5 chapters are for internal engineering consumption only. Not to be included in Example Design
User Guide.
The Example Design integrates the Low Latency 10G Ethernet MAC into a system with a pre-selected
Ethernet PHY. The source code for the Example Design is provided to customer as a reference, along
with a simulation testbench, and the files necessary to run the design as a demonstration on an Arria 10
FPGA Development Kit.
The Example Design is served as a reference to customer on how a system could be possibly built, but
definitely not the only way of building up the Ethernet system. The Example Design variants provided
are not meant to cover all possible parameterization of MAC IP with all possible pairing of PHY.
The Example Design is also not served as a vehicle that responsible for the full functional verification
coverage of the IP. The full functional verification coverage of IP should be covered with a separated
Altera in-house IP simulation environment with proper IP testplan & comprehensive validation coverage.
MAC+PHY integration full testing should be covered at IP simulation validation as well.
The Example Design comes with variants as below with LL10GE-MAC coupling with different PHY by
stages per ACDS releases.
The Example Design supports only Arria 10 and Stratix 10 devices for ACDS-1517.1.
This document provides a crisp and pictorial description of how to get the example design up and
running. The detailed functional description is provided in the IP User guide as usual. However the
purpose of this document is to provide a quick start guide for the Example Design.
This highly desirable collateral is a video (or animation) tutorial that covers all the items described above
in the Quick Start Document section.
LL10GE-MAC Example Design has no plan for the Video Tutorial in ACDS-15.1.
The necessity for the improved reset architecture has arisen due to some customer issues. At the same
time, there is a need for unified reset architecture across the example designs using Ethernet MACs and
Phys.
The reason for separation of Tx and Rx resets is that in multicast networks, it is quite possible that the
video/audio streaming is unidirectional. So, only the Tx path of the transmitting node and the Rx path of
receiving nodes are active, implying that the Rx path of the transmitting node and the Tx path of
receiving node can be under reset. Further, such separate Tx and Rx reset flows are in line with
philosophy of EEE (Energy Efficient Ethernet) that unused paths are kept under reset in order to save
power.
Auto-negotiation happens
Speed/throughput changes
There is a polling/interrupt routine which notes the change
The software routine initiates the MAC reset
Auto-negotiation happens
Speed/throughput changes
A port from the Phy indicates the change
The reset state-machine makes the state-change to the ‘reset-MAC’ state
Some specific details about the design while realizing the above ideal reset flow are mentioned below.
Whenever the link is down due to cable tear or pulling the sfp+ plug out, the ‘link status’ from the Phy is
noted by either a polling routine or interrupt service routine (sw code) and will initiate the reset
assertion flow as detailed in the section 2.7.1. This is typically called a managed flow where the software
and hardware work together to resolve the issues. However, in case of unmanaged flow, we have two
mechanisms to deal with the issue of the link down condition – (a) using a microcontroller transparently
to achieve the same purpose as is the case with a processor (b) using a reset state machine entirely in
the hardware. In case of (b), the status change on link down condition causes a state transition in the
reset machine, which then initiates the reset assertion flow. Usually, FPGAs with Ethernet ports are used
in the managed switching networks. However, in both the cases of managed and unmanaged
networks, the system-level reset flow is handled beyond the scope of the example designs. However,
our reset architecture facilitates both managed and unmanaged reset flows.
Currently, the Phy asserts a reset to the MAC directly due to some conditions such as link speed change
or deassertion of rx_is_lockedtodata. This condition of Phy asserting reset directly might not be friendly
to the system designs and hence we ensure in our example designs that there is no reset from the Phy
to the MAC. Further, we have observed that ‘rx_is_lockedtodata’ from the Phy is not as reliable as
‘block_lock(10G)/led_link(1G)’ or ‘rx_data_ready’ from the same Phy. Hence, we need to request the
customers to use the ports ‘block_lock(10G)/led_link(1G)’ or ‘rx_data_ready’ for their system level reset
architectures.
Our example design, on speed changes (1G <->10G), the example design will change the design so that
the speed transition from the Phy is ‘noted’ and then ‘digital reset’ to the MAC is asserted, without any
direct reset connection from the Phy reset controller to the MAC.
If the existing customers still want to use the reset from the Phy to MAC, they might be advised to turn
to the CSR implementation, where in, an enable bit, on write to 1, enables the reset from the Phy to the
MAC. The default behavior is to avoid the direct reset from the Phy to the MAC for any issue in the Phy.
In fact, the RTL changes from 15.1 in the example design will facilitate the same and the customers can
take base their implementation on our example design RTL changes.
The following diagrams capture the requirements of the ideal reset flow. The first diagram shows the
older reset diagram and the 2nd diagram shows the required reset architecture for ideal/improved reset
flow.
Following requests for enhancing the reset scheme are under consideration.
2.7.3 Analysis of the new reset architecture with respect to the customer issues
E// reports that LinkFault status toggles between OK and LocalFault causing the MAC to send out IDLE or
RemoteFault. It is root-caused to ‘rx_is_lockedtodata’ toggling leading to toggling of the reset from the
Phy to the MAC. The explanation is as follows. The digital reset makes the Phy output LocalFault
sequence but MAC out of reset has its fault status set to 0. But, after reset, the MAC-Rx receives local
fault sequences from the Phy and intimates the MAC-Tx the reception of the local fault sequences. The
MAC-Tx then transmits remote fault sequences to its partner. When a loss of signal happens, the Phy
reset controller sends local faults and at the same time asserts MAC Rx reset too. So, the MAC link fault
status bit will be 0 on every reset due to toggling ‘rx_is_lockedtodata’, which in turn is due to the
occasional loss of signal on the wire. But, the MAC changes the status bit to 1’b1, when it receives the
local faults from the Phy due to the loss of signal. Thus, the status bit toggles between 0 and 1. It is clear
that we need to remove the influence of the Phy on the MAC in terms of the reset.
Following are the highlights that lead to the conclusion that Phy and MAC resets need to be separated.
When MAC out of reset, will have its fault status set to no fault status
Then it observes the data coming from the PCS and changes the fault status to LocalFault
Thus, MAC after reset, will track the PCS data (good or bad)
Phy should not assert the Rx digital reset to the MAC block
In case of any Phy issues, the PCS issues the respective fault signals such as error
termination or fault signalling
MAC can track such PCS signalling and take decisions such as asking MAC TX to send
remote faults or IDLEs
Any speed/throughput changes (1G <->) will be ‘noted’ by the ED and ‘reset’ will be
asserted to the MAC but no direct reset from the Phy to the MAC
So, the resets of MAC and Phy (with the PCS) must be independent
Reception of local fault status messages causes local RS to inhibit frame transmission and
transmit remote fault messages on the XGMII
Reception of remote fault status messages indicates that remote RS has detected a fault at the
far end, causes local RS to inhibit frame transmission and transmit IDLE characters on the XGMII
Reception of 4 link faults leads to setting the respective status bit
Absence of fault messages for 128 columns resets the link fault status bit
Local fault is recognized by the PCS Receive process, when align_status = FAIL or when powered-
up/reset (indicating not fully ready to receive/transmit data)
Status of lane-to-lane code group alignment
Remote fault conditions are NOT detected by PCS, only the RS detects them
Connect rx digital reset coming from a Phy to the existing CSR Rx reset and gating with
‘phy2mac_reset_en’
If required by any customer through private communication, we can ask him to enable
the bit
Assumption: rx digital reset from Phy and CSR rx reset behave and impact the design
exactly in the same way
Will not expose to the customer but still will keep the backward compatibility options to
service any special requests from the customers
16.1: Separation of MAC and Phy resets and their accessibility via ED CSR
17.0: Separation of MAC Tx and Rx and Phy Tx and Rx resets and their accessibility via ED
CSR
To discuss with Soon Chye what are already available and what are missing in terms of
accessibility from the CSR
Issue of coherence – should we access Phy status and MAC status at the same time or in
any order? If so, our CSR architecture/design should facilitate that.
For coherence, we need to bring out the relevant status signals to the same
register so that we can access the register in one go via ED CSR.
At the moment, there is no port from the Phy indicating speed/throughput change (1G <-> 10G). We
have adopted the following mechanisms to deal with it during autonegotiation.
Requesting Phy team to provide speed/throughput change status (1G <-> 10G etc) for future
EDs, so that we can keep hardware controlled reset flow in such cases
Temporary: A CSR routine with a polling timer in the current ED is not a bad idea to mimic the
real scenario.
Temporary: Do we have any any other status port or group of status port such block_lock etc to
indicate the speed/throughput transition?
Local/Remote fault in response from PCS but not out of digital rx reset
MAC has to get LF or RF to take actions but does not generate any LF/RF on its
own
PCS out of reset, or real link faults (sfp plug out) should still send LocalFault, MAC-Rx will
intimate MAC-Tx, Tx will send out Remote faults
Correct behaviour
NO
Need more clarity on differences of the reset scheme in 10G Base-R ED and 1/10G KR
ED.
3 User Flow
The LL10GE-MAC Example Design is delivered alongside of the IP core via ACDS-15.1. For IP cores
released via ACDS-15.1, the Example Design is delivered and generated using IP Parameter Editor in a
fashion shown as follows.
1. From Quartus IP Catalog, select targeted Device Family. For LL10GE-MAC Dynamic Generated
Example Design, it will be made available only when Arria 10 (GX/SX/GT) is selected.
2. From the IPs listed in IP Catalog, the LL10GE-MAC IP is named as Low Latency Ethernet 10G MAC.
3. Double click on the IP to give us IP Parameter Editor for parameter setting of the IP as well as
available Example Design.
4. On top of IP Parameter Editor, a pop-up window requires users to specify the Entity name of the IP
that is going to be created as well as the targeted location of working area per Save in folder path.
5. Ensure the correct Family and select the targeted Device part number. Device is showing a default
value set by Quartus.
6. Complete the info and click OK to get back to IP Parameter Editor for parameters setting.
Note: ACDS-15.1 is not supporting LL10GE-MAC Example Design generation through Qsys IP Catalog.
(FB#318367)
For ACDS-15.1 onwards, the IP Parameter Editor of LL10GE-MAC is organized to allow selections of
options for both IP core and the Example Design and in a way that is fairly interdependent but also
reasonably independent as needed.
The parameter selection for the Example Design and associated IP core and devices is made through the
two separated TABs shown below. IP tab provides all the parameter selections for LL10GE-MAC IP core
whereby Example Design tab provides choices pertaining only to the Example Design.
Note: For ACDS-15.1, a warning is given at Messages box by default stating that the default setting of IP
gives no available Example Design, which is 10G Ethernet without 1588v2. Availability of the Example
Design variant that matches the IP default parameter setting will be revisited post ACDS-15.1. (FB#)
For ACDS-15.1, there’re 5 Example Design variants made available to users. Parameter settings of the 5
variants are as below. Parameters highlighted are controllable by users with the range or value
mentioned.
10M/100M/1G/10G
10GBase-R Register
Ethernet with 1588
1G/10G Ethernet
Ethernet
Mode
1588
IP Parameters
Speed 10M/ 10M/ 1G/10G 1G/10G 10G
100M/ 100M/
1G/10G 1G/10G
Datapath options Tx & Rx Tx & Rx Tx & Rx Tx & Rx Tx & Rx
Enable ECC on memory blocks uncheck uncheck uncheck uncheck uncheck
Enable preamble pass-through mode uncheck uncheck uncheck uncheck uncheck
Enable priority-based flow control (PFC) uncheck uncheck uncheck uncheck uncheck
Number of PFC queues Don’t Don’t Don’t Don’t Don’t
care care care care care
Enable unidirectional feature uncheck uncheck uncheck uncheck uncheck
Enable 10GBASE-R register mode uncheck uncheck uncheck uncheck checked
Enable supplementary address User User User User User
input input input input input
Enable statistics collection checked checked checked checked checked
Statistics counters User User User User User
input input input input input
Enable time stamping uncheck checked uncheck checked uncheck
Enable PTP one-step clock support Don’t checked Don’t checked Don’t
care care care
Timestamp fingerprint width Don’t 4 Don’t 4 Don’t
care care care
Time Of Day Format Don’t Enable Don’t Enable Don’t
care both 96b care both 96b care
& 64b & 64b
Use legacy XGMII interface checked checked checked checked uncheck
Use legacy Avalon Memory-Mapped checked checked checked checked checked
interface
Use legacy Avalon Streaming interface checked checked checked checked uncheck
Example Design Parameters
Specific Number of Channels 1 – 12 1 – 12 1 – 12 1 – 12 1
3.2.1 IP Parameters
Please refer to LL10GE-MAC IP User Guide for detailed description of the IP parameters.
A brief description of all the options under Example Design tab is given in the Details box.
The pull-down list lists all Example Designs available for the selected set of IP parameters. If there is no
available Example Design per the IP parameter setting, “None” will be shown with all of Example Design
setting options being grey-out.
For the available Example Design variants, users are allowed to select the number of channels as below.
10M/100M/1G/10G
10GBase-R Register
Ethernet with 1588
1G/10G Ethernet
Ethernet
Mode
1588
Specific Number of Channels 1 – 12 1 – 12 1 – 12 1 – 12 1
The purpose of this check-box option is to allow user to select the type of fileset he or she wants to
generate for Example Design. The goal is to let the user use an example design through various phases
of the development flow. Both Simulation and Synthesis options are pre-selected by default. User must
select at least one of the options else an error will be blocking users from further generation steps.
These parameters are defined further as below.
3.2.2.3.1 Simulation
When this option is selected, Example Design files necessary for simulating will be populated in user’s
Example Design generation directory.
3.2.2.3.2 Synthesis
When synthesis is enabled, synthesis files are created in user space. These files are fully sufficient to
demonstrate the Quartus compilation as well as static timing analysis development flow.
The purpose of this pull-down list is to allow users to select either Verilog or VHDL as the HDL format of
generated RTL files.
Note that the selection will take effect on Qsys-generated IP block including both LL10GE-MAC and PHY.
The Example Design top level is always in Verilog HDL format.
When Synthesis checkbox is checked, users can choose to perform Altera provided hardware tests on
one of the hardware boards listed from the pull-down menu. Each Development kit comes with a
specific device and pin assignments. For ACDS-15.1, Arria 10 FPGA Signal Integrity Kit is provided as the
option with device 10AX115S4F4513SGE2.
If “None” was selected from the pull-down list, a virtually assigned pin setting will be provided for the
Example Design.
3.2.2.5.1 ACDS 16.0 Enhancement: Custom Device & Custom Development Kit
In ACDS 16.0, this option has been enhanced to support custom devices and custom development kits. A
visual of the layout in Example Design Tab is below and details described in the following paragraphs:
Below shows the different between 15.1 and 16.0 on the “Target Development Kit” parameter selection
under ED tab.
None
No Development Kit
No Development Kit: This selection replaces the “None” in 15.1. When selected this option, the
Example Design generation will produce necessary files for Quartus compile. The Quartus
Settings File (QSF) will have pin assignments set to virtual pins. If user needs to change the
target device, user should change it following instructions provided under Target Device option
(described later). The layout and text description for this option is as below.
Altera Development kit: When selected this option, the Example Design generation will produce
necessary files for Quartus project targeted to the selected Altera Development Kit. The Quartus
Settings File (QSF) will have pin assignments appropriately set. If a user has a different Rev of
this board with a variation of the device selected, user should change it following instructions
provided under Target Device option (described later). The layout and text description for this
option is as below.
Custom Development Kit: This mechanism is provided to enable users to select a development
kit or hardware board that is not listed as an entry in the drop down menu above. This
mechanism lets user generate the Example Design on a different Altera Development kit, their
own board or may be a partner board with Altera device on it. When this option is selected, the
Example Design QSF file is still generated, however it has board specific settings left empty. The
user is instructed to later edit the file to add board specific quartus assignments before
compiling on the section marked with
# =================================================================
# Pin & Location Assignments
# =================================================================
# PLEASE ADD LOCATION ASSIGNMENT FOR YOUR BOARD HERE !!
This mechanism allows changing Target Device on any of the selection under “Target Development Kit”
option.
For Altera Development Kit, only possible device grade variations are allowed. The following device
grade variations are allowed. This means if a user wants to change device on Altera Development kit and
the new device has one or all of the following items different from current device on development kit,
then the change is valid and the new device will be the new Target Device.
The GUI display and instruction text for different “Target Developmenet Kit” selection is as below.
The IP instance in the Example Design (“the DUT”) has parameter values exactly the same as the
selections made from the IP tab in IP Parameter Editor.
For instance of parameter setting under IP tab is not matching any of the Example Design variants
delivered, Available Example Designs: Select Design under Example Design tab will just display a
“None” with the remaining sections of the Example Design tab being grey-out, no further selection by
users is allowed and Generate Example Design button at the top will give an error.
Anyway, clicking the Generate HDL button at the bottom will still generate LL10GE-MAC IP itself per the
IP parameter setting selected in IP tab.
There are two ways of generating available Example Design: 1) Through matching IP parameter settings
from IP tab 2) Selecting available Example Design variant settings through Presets window.
For any IP parameter settings that match the available Example Design, the respective Example Design
variant will be bolded in the Presets window. With the bolded Example Design variant, users can
proceed to Example Design tab for further option selection before generating the Example Design.
A quicker way of obtaining the available Example Design is to directly double-click on the desired
Example Design variant in Presets window. The action will update all the IP parameters to the Example
Design variant setting.
Note: To preserve existing IP parameter setting by users, users should save it before double-clicking on
the Example Design variant from Presets, which will overwrite all the parameters with preset value.
Once a good set of parameter selection is completed, Example Design is generated by clicking the
Generate Example Design button at the top of IP Parameter Editor. A pop-up window will prompt users
for location for dumping the Example Design. Specify desired location and click OK to proceed the
Example Design generation.
Note: Example Design generation will take ~5-15 minutes without any interruption.
The Example Design generated is self-contained. It does not require users to generate IP core or any
other mega-function separately.
<Example Design>
cadence altera_eth_top.sv
<ED Component>
mentor
synopsys
vcs
1. Users would have to obtain ACDS-15.1 resource as well as targeted EDA simulator environment
license.
2. Simulation collateral can be referred under <Example Design>/simulation/ed_sim/models.
3. Go to <Example Design>/simulation/ed_sim/<simulator> to invoke the simulation run script of
targeted EDA simulator.
4. Simulation will run till completion once run script is invoked. Simulation runtime is depends on
Number of Channel selected. Advisable to choose 1-2 channels for early check-out for a shorter
simulation runtime.
5. Simulation result will be under the same simulator subdirectory.
ACDS-15.1 is supporting NCsim, Modelsim-AE, Modelsim-SE and VCS. VCSMX and Riviera will be enabled
post ACDS-15.1.
Simulation warning of Example Design is not totally clean for ACDS-15.1 but all are waive-able.
Simulation testbench is operating in loopback mode. The following figure shows the flow of the packets
in the Example Design.
Component Description
Device Under Test (DUT) The Example Design
Avalon Driver Uses Avalon-ST master bus functional models (BFMs) to form
transmit and receive paths. The driver also uses the master
Avalon-MM BFM to access the Avalon-MM interfaces of the
Example Design components.
Packet Monitor Monitor transmit and receive datapath and display the frames
in the simulator console.
1. With the Example Design generated, load up <Example Design>/altera_eth_top.qpf from Quartus.
2. From Processing menu, click on Start Compilation to start Quartus compilation, which includes
timing analysis.
3. Once completed, below is the report files for users review.
Synthesis report: <Example Design>/output_files/altera_eth_top.map.rpt
Fitting report: <Example Design>/output_files/altera_eth_top.fit.rpt
Timing report: <Example Design>/output_files/altera_eth_top.sta.rpt
To Do (Need to check in acds16.0): The reports generated are with Quartus Prime Standard. Quartus
Prime Pro is missing a map.rpt that needs to be figured out by end of day. ACDS-15.1 is with Quartus
Prime Pro as beta version targeting for certain customer only, not a public released version.
Compilation warning of Example Design is not totally clean for ACDS-15.1 but all are waive-able. This not
includes timing check Critical Warning if there’s any from timing analysis run. Users have to ensure clean
timing check prior to bringing the Example Design to hardware check-out.
Putting Example Design in hardware is to ensure the Example Design is working correctly on Altera FPGA
Development Board under normal room temperature condition.
1. Users must ensure Example Design is passing Quartus compilation and timing check prior to bringing
the Example Design to hardware.
2. Configure Arria 10 FPGA Development Board using <Example
Design>/output_files/altera_eth_top.sof
3. Open Clock Control tool and set new frequency for Y5 and Y6 as below for all the ED variants:
y5:644.53125 MHz
y6:125 MHz
except the 10G Base-R, which uses
Y5: 322.265625MHz
4. Press PB0 push button to reset system after configuration done.
5. Select Tools/System Debugging Tools/System Console from Quartus menu.
6. In System Console command shell, change directory to <Example
Design>/hwtesting/system_console
7. Run command “source main.tcl” to initialize Example Design command list.
8. Perform any of pre-defined hardware tests by running the test command in System Console
command shell.
To Do (Done): Verify the steps with hardware testing to ensure flow validity. Update accordingly per
latest approach.
Below shows the top level setup of Example Design hardware testing using Arria 10 Development Kit.
Arria 10 FPGA
JTAG TAP Eth Packet Gen & altera_eth_channel
Controller Mon (Master) (Channel 0)
...
System Console
Eth Packet altera_eth_channel
Gen & Mon (Channel N-1)
...
Altera System
N = Number of Channels per
Console Software ED variant supported range
Command:
TEST_SMA_LB {channel speed_test burst_size} (for variant with 1588)
TEST_SMA_LOOPBACK {channel speed_test burst_size} (for variant
without 1588)
b. Observe the following output of each test run to confirm it is working. Both PHY internal
serial loopback and SMA loopback test will have the similar output.
i. This output shows that the monitor module receives the correct number of
packet without any bad packet.
ii. This output shows the MAC TX and RX statistic counter report correct number of
frame transmitted and received without packet corruption
b. Observe the following output of SFP+ loopback test to confirm it is working. Avalon-ST
loopback test is mainly use for testing with external tester, e.g. Spirent tester.
i. This output shows that the monitor module receives the correct number of
packet without any bad packet.
ii. This output shows the MAC TX and RX statistic counter report correct number of
frame transmitted and received without packet corruption
The following Example Designs demonstrate Altera Low Latency Ethernet 10G MAC IP systems using
Arria 10 PHY in multi-speed 10M/100M/1G/10G mode.
Altera uses the following software and hardware to test the Example Design and testbench in Linux
platform.
Quartus Prime.
System Console. The user guide can be found at link:
http://www.altera.com/literature/ug/ug_system_console.pdf
Simulators: Modelsim-AE, Modelsim-SE, NCsim or VCS (for complete simulators revision please refer
to link-TBD).
Hardware: Arria 10 FPGA Development Kit (device TBD).
4.2 Feature
To Do (Done): Update diagram with mdio removed. Currently, the above diagrams are not in visio and
hence the engineering team could not modify the above. However, the techpub team can remove the
MDIO from the above diagrams.
4.3 Clocking
The following diagrams show the clocking scheme of the Example Design without and with IEEE 1588v2.
4.4 Reset
At the Example Design level, there are one master_reset_n and <N> channel_reset_n signals. All the
signals are asynchronous and active-low signal. The signals are synced to different clock domain
internally. When the master_reset_n is asserted, the signal will bring down all <N> Ethernet channels
and all modules in the Example Design.
The channel_reset_n[0..N] only reset all the components in the individual channel.
Example Design without IEEE 1588v2: Multi Channel Level Reset Scheme
The following diagram shows the reset scheme at altera_eth_multi_channel level. master_reset_n is
used to reset the whole Example Design, while channel_reset_n is used to reset the individual Ethernet
channel.
Example Design with IEEE 1588v2: Multi Channel Level Reset Scheme
The following diagram shows the reset scheme at altera_eth_multi_channel_1588 level. master_reset_n
is used to reset the whole Example Design, while channel_reset_n is used to reset the individual
Ethernet channel.
The following diagram shows the reset scheme per channel. mm_reset is used to reset the registers in
MAC, PHY, TOD, MDIO and address decoder block, while datapath_reset is used to reset MAC, PHY reset
controller and TOD. However, mm_reset and datapath_reset are tied together at multi-channel level in
the Example Design. Therefore it is not possible to trigger them separately.
The Example Design is using Arria 10 1G/10GbE and 10GBASE-KR PHY with a pre-set PHY parameter
setting that matches the pairing with LL10GE-MAC IP.
To Do (Done): List down all preset PHY parameter values for users reference.
Avalon-ST interface.
avalon_st_tx_ input [NUM_CHANNELS] Assert this signal to indicate that
valid avalon_st_tx_data and other
signals on this interface are valid.
avalon_st_tx_ output [NUM_CHANNELS] When asserted, this signal
ready indicates that the MAC IP core is
ready to accept data.
avalon_st_tx_ input [NUM_CHANNELS] Assert this signal to indicate the
error current transmit packet contains
errors.
avalon_st_tx_data input [NUM_CHANNELS][64] Carries the transmit data from
the client.
avalon_st_tx_ input [NUM_CHANNELS][3] Use this signal to specify the
empty number of bytes that are empty
(not used) during cycles that
contain the end of a packet.
0x0=All bytes are valid.
0x1=The last byte is invalid.
0x2=The last two bytes are
invalid.
0x3=The last three bytes are
invalid.
avalon_st_rx_ output [NUM_CHANNELS] When asserted, this signal marks
startofpacket the beginning of the receive data
on the Avalon-ST interface.
avalon_st_rx_ output [NUM_CHANNELS] When asserted, this signal marks
endofpacket the end of the receive data on the
Avalon-ST interface.
avalon_st_rx_ output [NUM_CHANNELS] When asserted, this signal
valid indicates that
avalon_st_rx_data[]and other
signals on this interface are valid.
avalon_st_rx_ input [NUM_CHANNELS] Assert this signal when the client
ready is ready to accept data.
avalon_st_rx_ output [NUM_CHANNELS][6] When set to 1, the respective bits
error indicate an error type:
• Bit 0—PHY error. For 10 Gbps,
the data on xgmii_rx_data
contains a control error character
(FE). For 10 Mbps,100 Mbps,1
Gbps, gmii_rx_err or mii_rx_err is
asserted.
• Bit 1—CRC error. The computed
CRC value differs from the
received CRC.
• Bit 2—Undersized frame. The
receive frame length is less than
64 bytes.
• Bit 3—Oversized frame. The
• Bit 6: Unused.
The error status is invalid when
an overflow occurs.
avalon_st_rxstatus_ output [NUM_CHANNELS] When asserted, this signal
valid qualifies
avalon_st_txstatus_data[] and
avalon_st_txstatus_error[]. The
MAC IP core asserts this signal in
the same clock cycle
avalon_st_rx_endofpacket is
asserted.
avalon_st_rxstatus_ output [NUM_CHANNELS][40] Contains information about the
data transmit frame.
• Bits 0 to 15: Payload length.
• Bits 16 to 31: Packet length.
• Bit 32: When set to 1, indicates
a stacked VLAN frame.
• Bit 33: When set to 1, indicates
a VLAN frame.
• Bit 34: When set to 1, indicates
a control frame.
• Bit 35: When set to 1, indicates
a pause frame.
• Bit 36: When set to 1, indicates
a broadcast frame.
• Bit 37: When set to 1, indicates
a multicast frame.
• Bit 38: When set to 1, indicates
a unicast frame.
• Bit 39: When set to 1, indicates
a PFC frame.
avalon_st_rxstatus_ output [NUM_CHANNELS][7] When set to 1, the respective bit
error indicates the following error type
in the receive frame.
• Bit 0: Undersized frame.
• Bit 1: Oversized frame.
• Bit 2: Payload length error.
• Bit 3: Unused.
• Bit 4: Underflow.
• Bit 5: Client error.
• Bit 6: Unused.
The error status is invalid when
an overflow occurs.
avalon_st_pause_ input [NUM_CHANNELS][2] Set this signal to the following
data values to trigger the
corresponding actions.
• 0x0: Stops pause frame
generation.
• 0x1: Generates an XON pause
frame.
• 0x2: Generates an XOFF pause
frame. The MAC IP core sets the
pause quanta field in the pause
frame to the value in the
tx_pauseframe_quanta register.
• 0x3: Reserved.
Note: This signal only takes
effect if
tx_pauseframe_enable[2:1] is 00
(default)
The following table shows the address offset for the Example Design and client logic at the Example
Design level.
0x02_0000 Port 0
0x03_0000 Port 1
0x04_0000 Port 2
0x05_0000 Port 3
0x06_0000 Port 4
0x07_0000 Port 5
0x08_0000 Port 6
0x09_0000 Port 7
0x0A_0000 Port 8
0x0B_0000 Port 9
0x0C_0000 Port 10
0x0D_0000 Port 11
0x0E_0000 onwards Client Logic
The following table shows per-port address offset for Example Design and client logic.
Master TOD registers are applicable only to Example Design with IEEE 1588v2.
The base address of the Master TOD registers is 0x01_0000.
4.7.2 1G TOD
1G TOD registers are only applicable for Example Design with IEEE 1588v2.
The base address of the per-port 1G TOD registers is defined as below.
10G TOD registers are only applicable for Example Design with IEEE 1588v2.
The base address of the per-port 10G TOD registers is defined as below.
9 0x0B_7800
10 0x0C_7800
11 0x0D_7800
4.7.4 PHY
PHY registers are applicable for both Example Design with and without IEEE 1588v2.
Note: For detailed description of each PHY register please refer to Arria 10 Transceiver PHY IP User
Guide.
Note: The address offset in following PHY tables are in byte whereby the register map table in Arria 10
Transceiver PHY IP User Guide is in word.
PMA Registers
Byte Offset Bit R/W Name
0x1110 1 RW Reset_tx_digital
2 RW Reset_rx_analog
3 RW Reset_rx_digital
0x1184 RW Phy_serial_loopback
0x1190 RW Pma_rx_set_locktodata
0x1194 RW Pma_rx_set_locktoref
0x1198 RO Pma_rx_is_lockedtodata
0x119C RO Pma_rx_is_lockedtoref
0x12A0 0 RW Tx_invpolarity
1 RW Rx_invpolarity
2 RW Rx_bitreversal_enable
3 RW Rx_bytereversal_enable
4 RW Force_electrical_idle
0x12A4 0 R Rx_syncstatus
1 R Rx_patterndetect
2 R Rx_rlv
3 R Rx_rmfifodatainserted
4 R Rx_rmfifodatadeleted
5 R Rx_disperr
6 R Rx_errdetect
PCS Registers
Byte Offset Bit R/W Name
0x1200 RW Indirect_addr
0x1204 2 RW Rclr_errblk_cnt
3 RW Rclr_ber_count
0x1208 1 RO Hi_ber
2 RO Block_lock
3 RO Tx_full
4 RO Rx_full
7 RO Rx_data_ready
10GBASE-KR Registers
Byte Offset Bit R/W Name
0x12C0 0 RW Reset_seq
1 RW Disable_an_timer
2 RW Disable_lf_timer
6:4 RW Seq_force_mode[2:0]
16 RW FEC_ability
18 RW FEC_request
0x12C4 0 R Seq_link_request
1 R Seq_an_timeout
2 R Seq_lt_timeout
13:8 RW Seq_reconfig_mode[5:0]
16 R KR_FEC_ability
17 R KR_FEC_err_ind_ability
1G/10G MAC registers are applicable for both Example Design with and without IEEE 1588v2.
The base address of the 1G/10G MAC registers is defined as below.
Note: For detailed description of each 1G/10G register please refer to Low Latency Ethernet 10G MAC
User Guide.
Note: The address offset in following 1G/10G tables are in byte whereby the register map table in Low
Latency Ethernet 10G MAC User Guide is in word.
The following table describes files that implement the Example Design testbench. The collateral can be
found under <Example Design>/simulation/ed_sim/models.
File Description
all_modes.mif Memory initialization file (MIF) used for reconfiguration to
change speed.
avalon_bfm_wrapper.sv A wrapper for the Avalon BFMs that the avalon_driver.sv file
uses.
avalon_driver.sv A SystemVerilog HDL driver that uses the BFMs to form the
transmit and receive path, and access the Avalon-MM
interface.
avalon_if_params_pkg.sv A SystemVerilog HDL testbench that contains parameters to
configure the BFMs. Because the configuration is specific to the
DUT, you must not change the contents of this file.
The test cases are included to demonstrate how to change the channel speed to 10G/1G/100M/10M
and MAC & PHY configuration. The test cases are using circular loopback on total number of channels
selected by users through IP Parameter Editor during Example Design generation.
Register value for speed change in 1000BaseX mode in Arria 10 Transceiver PHY IP
Value Description
0x01 Reset back to auto speed detection mode
0x11 Turn off auto speed detection and force the PHY to 1G
0x41 Turn off auto speed detection and force the PHY to 10G
Register value for speed change in SGMII mode in Arria 10 Transceiver PHY IP
Value Description
0x01 Enable SGMII mode and force speed to 10M
0x03 Enable SGMII mode and use SGMII auto negotiation
0x05 Enable SGMII mode and force speed to 100M
0x09 Enable SGMII mode and force speed to 1G
The following hardware boards are supported for the sample Example Design. For each hardware board,
we provide a predefined pin assignment. The Example Design recommendations require that System
console must be used for controlling the hardware platform and providing User Interface.
Arria 10 GX Transceiver Signal Integrity Development Kit is supported for acds 15.1
The predefined pin assignment is inside the generated .qsf file. In order to use the design with
predefined pin assignment for hardware test, user needs to select “ Arria 10 GX Transceiver Signal Integrity
Development Kit” as target development kit in the GUI.
Note: The current devkit display in the GUI is “Arria 10 FPGA Signal Integrity Kit”, which is not correct
and will be fixed in 15.1.1
The following diagram illustrates the board setup for hardware test.
Example Design component’s timing constraints will be automatically loaded during Quartus
compilation. Example Design level timing constraints can be found at <Example
Design>/altera_eth_top.sdc.
User needs to include the loading of ToD and ToDSync sdc file command in the .qsf file, if generating the
ED does not include the following automatically. The following is the example.
These 2 lines are already inside the .qsf for 1588 variant when user generates the ED.
The additional constraints needed when connecting LL 10G MAC to 10G base-KR IP are
(assuming user has already created clocks for 10G and 1G)
set_clock_groups -asynchronous -group [get_clocks <TX 1G clock>] -group [get_clocks ${TX 10G clock}]
set_clock_groups -asynchronous -group [get_clocks <RX 1G clock>] -group [get_clocks ${RX 10G clock}]
To Do (Done): To include some notes from FB#303505: Example Design constraints that users would
have to include in own system setup.
ref_clk_10g
channel_ready_n
channel_reset_n
master_reset_n
pll_locked_10g
pll_locked_1g
avalon_st_rx_endofpacket
avalon_st_rx_error
avalon_st_rx_startofpacke
t
avalon_st_rx_ready
avalon_st_rx_valid
avalon_st_tx_data
avalon_st_tx_empty
avalon_st_tx_endofpacket
avalon_st_tx_error
avalon_st_tx_ready
avalon_st_tx_startofpacke
t
avalon_st_tx_valid
led_disp_err
led_link
rx_analogreset
rx_block_lock
rx_cal_busy
rx_is_lockedtodata
rx_digitalreset
rx_data_ready
tx_analogreset
tx_digitalreset
xgmii_tx_data
link_fault_status_xgmii_rx
_data
gmii_rx_err
gmii_tx_d
gmii_tx_en
gmii_tx_err
mii_tx_d
(Only for 10M/100M/1G/10G Ethernet)
mii_tx_en
mii_tx_err
channel_reset_n
master_reset_n
pll_locked_10g
pll_locked_1g
avalon_st_rx_em
pty
avalon_st_rx_end
ofpacket
avalon_st_rx_erro
r
avalon_st_rx_star
tofpacket
avalon_st_rx_rea
dy
avalon_st_rx_vali
d
avalon_st_tx_dat
a
avalon_st_tx_em
pty
avalon_st_tx_end
ofpacket
avalon_st_tx_erro
r
avalon_st_tx_rea
dy
avalon_st_tx_star
tofpacket
avalon_st_tx_vali
d
led_disp_err
led_link
mii_speed_sel
(Only for
10M/100M/1G/1
0G Ethernet with
1588)
rx_analogreset
rx_block_lock
rx_cal_busy
rx_is_lockedtodat
a
rx_digitalreset
rx_data_ready
tx_analogreset
tx_digitalreset
xgmii_tx_control
xgmii_tx_data
link_fault_status_
xgmii_rx_data
gmii_rx_err
gmii_tx_d
gmii_tx_en
gmii_tx_err
mii_tx_d
(Only for 10M/100M/1G/10G Ethernet with 1588)
mii_tx_en
mii_tx_err
To Do (Done): Provide useful debugging signals if users would want to include SignalTap in Hardware
bring-up and debugging. Please note that SignalTap instantiation will impact timing closure and users
would need to ensure timing closure with SignalTap prior to hardware bring-up.
The following Example Designs demonstrate Altera Low Latency Ethernet 10G MAC IP systems using
Arria 10 PHY in 1G-10G mode.
Instead of copying all the information from the Chapter 4, the key differences are mentioned below.
All the MII (10M/100M) related ports/registers will be absent here.
The Phy will not have the port ‘ mii_speed_sel’
The value of the synthesis parameter ‘SYNTH_MII’ is 0
To Do (Done): Sync all info from Chapter 4 with updated required on 1G-10G speed mode switch.
Altera uses the following software and hardware to test the Example Design and testbench in Linux
platform.
Quartus Prime.
System Console. The user guide can be found at link:
http://www.altera.com/literature/ug/ug_system_console.pdf
Simulators: Modelsim-AE, Modelsim-SE, NCsim or VCS (for complete simulators revision please refer
to link-TBD).
Hardware: Arria 10 FPGA Development Kit (device TBD).
5.2 Feature
The block diagrams and the example design components remain the same as in the section 4.2. MDIO
block and its connections need to be removed.
Address decoder multichannel Address decoder module for all channels and components within
multichannel level, for example Master TOD.
Reset controller Reset modules which handle reset synchronization for all ED
components.
Master PLL Generates clocks for all the components in the Example Design.
Arria 10 ATX PLL Generates a TX serial clock for Arria 10 10G transceiver.
Arria 10 fractional PLL Generates a TX serial clock for Arria 10 1G transceiver.
FIFO Avalon Streaming (Avalon-ST) ---
singleclock or dual-clock FIFO
that buffers the receive and
transmit data between the MAC
and client.
Master Time-of-Day --- Provides a master TOD for all
(TOD) channels.
TOD Sync --- Module to synch time of day
from Master TOD to Local TOD
for all channels.
Local TOD --- TOD module in each channel.
Master pulse per second --- Returns pulse per second (pps)
module to user for all channels.
1G/10G Pulse Per Second --- Returns pulse per second (pps)
module to user in each channel.
PTP packet classifier --- Decodes the packet type of
incoming PTP packets and
returns the decoded
information to the Ethernet
MAC.
5.3 Clocking
Refer to the section 4.3. MDIO block and its connections need to be removed.
5.4 Reset
Refer to the section 4.4. MDIO block and its connections need to be removed.
The Example Design is using Arria 10 1G/10GbE with a pre-set PHY parameter setting that matches the
pairing with LL10GE-MAC IP. Refer to the section 4.5.2 for the list of the parameters. The differing
parameter is shown below.
To Do (Done): List down all preset PHY parameter values for users reference.
specified register.
waitrequest output 1 When asserted, this signal
indicates that the IP core is busy
and not ready to accept any read
or write requests.
avalon_st_rx_startofpacket.
rx_ingress_timestamp_96b_ output [NUM_CHANNELS] Carries the 96-bit ingress timestamp
data [96] in the following format:
• Bits 48 to 95: 48-bit seconds field
• Bits 16 to 47: 32-bit nanoseconds
field
• Bits 0 to 15: 16-bit fractional
nanoseconds field
rx_ingress_timestamp_64b_ output [NUM_CHANNELS] When asserted, this signal qualifies
valid the timestamp on
rx_ingress_timestamp_64b_data[].
The MAC IP core asserts this signal in
the same clock cycle it asserts
avalon_st_rx_startofpacket.
rx_ingress_timestamp_64b_ output [NUM_CHANNELS] Carries the 64-bit ingress timestamp
data [64] in the following format:
• Bits 16 to 63: 48-bit nanoseconds
field
• Bits 0 to 15: 16-bit fractional
nanoseconds field
The tables in 4.7 show the address offsets for the Example Design and client logic at the Example Design
level.
The following table describes files that implement the Example Design testbench. The collateral can be
found under <Example Design>/simulation/ed_sim/models.
File Description
all_modes.mif Memory initialization file (MIF) used for reconfiguration to
change speed.
avalon_bfm_wrapper.sv A wrapper for the Avalon BFMs that the avalon_driver.sv file
uses.
avalon_driver.sv A SystemVerilog HDL driver that uses the BFMs to form the
transmit and receive path, and access the Avalon-MM
interface.
avalon_if_params_pkg.sv A SystemVerilog HDL testbench that contains parameters to
configure the BFMs. Because the configuration is specific to the
DUT, you must not change the contents of this file.
avalon_st_eth_packet_monitor.sv A SystemVerilog HDL testbench that monitors the Avalon-ST
transmit and receive interfaces.
default_test_params_pkg.sv A SystemVerilog HDL package that contains the default
parameter settings of the testbench.
eth_mac_frame.sv A SystemVerilog HDL class that defines the Ethernet frames.
The avalon_driver.sv file uses this class.
The test cases are included to demonstrate how to change the channel speed to 10G/1G and MAC &
PHY configuration. The test cases are using circular loopback on total number of channels selected by
users through IP Parameter Editor during Example Design generation. The section 4.8.2 may be referred
to, for more details.
The following hardware boards are supported for the sample Example Design. For each hardware board,
we provide a predefined pin assignment. The Example Design recommendations require that System
console must be used for controlling the hardware platform and providing User Interface.
The following diagram illustrates the board setup for hardware test.
Example Design component’s timing constraints will be automatically loaded during Quartus
compilation. Example Design level timing constraints can be found at <Example
Design>/altera_eth_top.sdc. The section 4.9.2 may be referred to, for more details.
To Do (Done): To include some notes from FB#303505: Example Design constraints that users would
have to include in own system setup.
To Do (Done): Provide useful debugging signals if users would want to include SignalTap in Hardware
bring-up and debugging. Please note that SignalTap instantiation will impact timing closure and users
would need to ensure timing closure with SignalTap prior to hardware bring-up.
This Example Design demonstrates Low Latency 10G Ethernet IP solution for Arria 10 using Low Latency
10G Ethernet MAC and Native PHY IP cores with small form factor pluggable plus (SFP+). It is capable to
achieve low roundtrip latency, 136.677ns (time taken to transmit the first data from Avalon-ST TX
interface to be available at Avalon-ST RX interface) in the simulation. Besides, it supports packet
monitoring system on transmit and receive paths and report Ethernet MAC statistics counter for
transmit and receive data paths.
Altera uses the following software and hardware to test the Example Design and testbench in Linux
platform.
Quartus Prime.
System Console. The user guide can be found at link:
http://www.altera.com/literature/ug/ug_system_console.pdf
Simulators: Modelsim-AE, Modelsim-SE, NCsim or VCS (for complete simulators revision please refer
to link-TBD).
Hardware: Arria 10 FPGA Development Kit (device: 10AX115S4F45I3SGE2).
Clock control
6.2 Feature
Component Description
Low Latency Ethernet 10G MAC Ethernet MAC IP core
Native PHY Native PHY IP with 10G BASE-R register mode
preset applied (change TX FIFO MODE to Fast
Register in addition)
Address Decoder Address decoder module for each components
6.3 Clocking
The following diagram in the section 6.4 captures the clocks and their frequencies in the example
design.
6.4 Reset
The following diagram shows the clocking and reset scheme for the Example Design. At the top-level of
the design, there are two external clock sources, ref_clk_clk (322.265625MHz) and csr_clk (100MHz) and
one master reset, master_reset_n. The master reset is asynchronous and active low reset signal. This
reset signal is then synced to different clock domain internally. When the master_reset_n is asserted, it
brings down all modules in the Example Design.
The Example Design is using Arria 10 Native PHY with a pre-set PHY parameter setting that matches the
pairing with LL10GE-MAC IP.
Enable enable_port_rx_enh_high 0
rx_enh_highber_clr_cnt ber_clr_cnt
port
Enable enable_port_rx_is_locke 1
rx_is_lockedtodata port dtodata
Enable enable_port_rx_is_locke 1
rx_is_lockedtoref port dtoref
Enable rx_pma_clkout enable_port_rx_pma_clko 0
port ut
Enable rx_pma_clkslip enable_port_rx_pma_clks 0
port lip
Enable enable_port_rx_pma_div_ 1
rx_pma_div_clkout port clkout
Enable enable_port_rx_pma_iqtx 0
rx_pma_iqtxrx_clkout rx_clkout
port
Enable enable_port_rx_pma_qpen 0
rx_pma_qpenable_port_rx able_port_rx_polinv
_polinv port
Enable rx_pma_qpipulldn enable_port_rx_pma_qpip 0
port (QPI) ulldn
lpbken 0
Enable rx_seriallpbken port enable_port_rx_seriallp 0
bken_tx
Enable rx_signaldetect enable_port_rx_signalde 0
port tect
Enable enable_port_rx_std_bitr 0
rx_std_bitrev_ena port ev_ena
Enable rx_std_bitslip enable_port_rx_std_bits 0
port lip
Enable enable_port_rx_std_bits 0
rx_std_bitslipboundarys lipboundarysel
el port
Enable enable_port_rx_std_byte 0
rx_std_byterev_ena port rev_ena
Enable rx_std_pcfifo_empty port enable_port_rx_std_pcfi 0
fo_empty
Enable rx_std_pcfifo_full port enable_port_rx_std_pcfi 0
fo_full
Enable enable_port_rx_std_rmfi 0
rx_std_rmfifo_empty fo_empty
port
Enable enable_port_rx_std_rmfi 0
rx_std_rmfifo_full port fo_full
Enable enable_port_rx_std_sign 0
rx_std_signaldetect aldetect
port
Enable enable_port_rx_std_wa_a 0
rx_std_wa_a1a2size port 1a2size
Enable enable_port_rx_std_wa_p 0
rx_std_wa_patternalign atternalign
port
enable_ports_pipe_sw 0
Enable enable_ports_rx_manual_ 0
rx_set_locktodata and cdr_mode
rx_set_locktoref ports
enable_ports_rx_manual_ 0
ppm
Enable PRBS verifier enable_ports_rx_prbs 0
control and status
ports
enable_rx_pma_floatingt 0
ap
Enable simplified data enable_simple_interface 1
interface
enable_split_interface 0
enable_transparent_pcs 0
Enable ‘Enhanced PCS’ enh_low_latency_enable 0
low latency mode
Enhanced PCS/PMA enh_pcs_pma_width 32
interface width
FPGA fabric/ Enhanced enh_pld_pcs_width 66
PCS interface width
Enable Rx 64b/66b enh_rx_64b66b_enable 1
decoder
Enable Rx data bitslip enh_rx_bitslip_enable 0
Enable Rx block enh_rx_blksync_enable 1
synchronizer
Enable Interlaken RX enh_rx_crcchk_enable 0
CRC-32 checker
Enable Rx descrambler enh_rx_descram_enable 1
(10Gbase-R/Interlaken)
Enable Interlaken Rx enh_rx_dispchk_enable 0
disparity checker
Enable Interlaken frame enh_rx_frmsync_enable 0
synchronizer
Frame Synchronizer meta enh_rx_frmsync_mfrm_len 2048
frame length gth
Enable Rx KR-FEC error enh_rx_krfec_err_mark_e 0
marking nable
Error marking type enh_rx_krfec_err_mark_t 10G
ype
Enable Rx data polarity enh_rx_polinv_enable 0
inversion
Enable RX FIFO enh_rxfifo_align_del 0
alignment word deletion
(Interlaken)
Enable RX FIFO control enh_rxfifo_control_del 0
word deletion
(Interlaken)
Rx FIFO mode enh_rxfifo_mode Register
Rx FIFO partially empty enh_rxfifo_pempty 2
threshold
Rx FIFO partially full enh_rxfifo_pfull 23
threshold
Enable Rx/Tx FIFO enh_rxtxfifo_double_wid 0
double width mode th
Enable Tx 64b/66b enh_tx_64b66b_enable 1
encoder
Enable Tx data bitslip enh_tx_bitslip_enable 0
Enable Interlaken Tx enh_tx_crcerr_enable 0
CRC-32 generator error
insertion
Enable Interlaken Tx enh_tx_crcgen_enable 0
CRC-32 generator
Enable Interlaken Tx enh_tx_dispgen_enable 0
disparity generator
Enable frame generator enh_tx_frmgen_burst_ena 0
burst control ble
Enable Interlaken frame enh_tx_frmgen_enable 0
generator
Frame generator meta enh_tx_frmgen_mfrm_leng 2048
frame length th
Enable KR-FEC Tx error enh_tx_krfec_burst_err_ 0
insertion enable
KR-FEC Tx error enh_tx_krfec_burst_err_ 1
insertion spacing len
Enable Tx data polarity enh_tx_polinv_enable 0
inversion
Enable Interlaken Tx enh_tx_randomdispbit_en 0
Random disparity bit able
Enable Tx-scrambler enh_tx_scram_enable 1
(10Gbase-R, Interlaken)
Tx-scrambler enh_tx_scram_seed 288230376151711743
seed(10Gbase-R,
Interlaken)
Enable Tx Sync header enh_tx_sh_err 0
error insertion
Tx FIFO mode enh_txfifo_mode Fast register
Tx FIFO partially empty enh_txfifo_pempty 2
threshold
Tx FIFO partially full enh_txfifo_pfull 11
threshold
generate_add_hdl_instan 0
ce_example
Generate parameter generate_docs 1
documentation file
Message level for rule message_level error
violations
number_physical_bonding 1
_clocks
pcie_rate_match Bypass
Actual PCS Tx Channel pcs_bonding_master 0
bonding master
pcs_direct_width 8
Initial Tx PLL clock pll_select 0
input selection
Number of Tx PLL clock plls 1
inputs per channel
PMA configuration rules pma_mode basic
Tranceiver protocol_mode teng_1588_mode
configuration rules
rapid_validate 0
Enable dynamic rcfg_enable 1
reconfiguration
Configuration file rcfg_file_prefix
prefix
Generate C header file rcfg_h_file_enable 0
Enable datapath and rcfg_iface_enable 0
interface
reconfiguration
Enable Altera Debug rcfg_jtag_enable 0
master endpoint
Generate MIF (Memory rcfg_mif_file_enable 0
Initialization File)
Enable multiple rcfg_multi_enable 0
reconfiguration files
Number of rcfg_profile_cnt 2
reconfiguration
profiles
Reconfiguration Profile rcfg_profile_data0
0
Reconfiguration Profile rcfg_profile_data1
1
Reconfiguration Profile rcfg_profile_data2
2
Reconfiguration Profile rcfg_profile_data3
3
Reconfiguration Profile rcfg_profile_data4
4
Reconfiguration Profile rcfg_profile_data5
5
Reconfiguration Profile rcfg_profile_data6
6
Reconfiguration Profile rcfg_profile_data7
7
Selected rcfg_profile_select 1
reconfiguration profile
Generate reduced rcfg_reduced_files_enab 0
reconfiguration files le
Share reconfiguration rcfg_shared 0
interface
Generate SystemVerilog rcfg_sv_file_enable 0
package file
CTLE adaptation mode rx_pma_ctle_adaptation_ manual
mode
DFE adaptation mode rx_pma_dfe_adaptation_m disabled
ode
umber
std_rx_word_aligner_rgn 3
umber
std_rx_word_aligner_rkn 3
umber
std_rx_word_aligner_rvn 0
umber
Enable TX 8B/10B disparity control std_tx_8b10b_disp_ctrl_ 0
enable
Enable TX 8B/10B encoder std_tx_8b10b_enable 0
std_tx_bitrev_enable 0
std_tx_bitslip_enable 0
TX byte serializer mode std_tx_byte_ser_mode Disabled mode
std_tx_byterev_enable 0
TX FIFO mode std_tx_pcfifo_mode low_latency
std_tx_polinv_enable 0
support_mode user_mode
TX local clock division factor tx_pma_clk_div 1
tx_pma_div_clkout division factor tx_pma_div_clkout_divid 2
er
validation_rule_select
To Do(Done): List down all preset PHY parameter values for users reference.
to
csr_writedata input 32 Carries the data to be written to the
specified register
csr_readdata output 32 Carries the data read from the specified
register
csr_waitrequest output 1 Asserted when IP core is busy and not
ready to accept any read or write request
tx_ready_export output 1 Asserted when the native PHY Tx path is
ready to transmit data
rx_ready_export output 1 Asserted when the native PHY Rx path
reset is complete
block_lock output 1 Asserted to indicate that the block
synchronizer has established
synchronization
atx_pll_locked output 1 Asserted when Tx PLL is locked
All register space for this example design is 32 bit. The following tables show the address offset for the
Example Design and client logic at the top-level of the design.
The following table describes files that implement the Example Design testbench. The collateral can be
found under <Example Design>/simulation/ed_sim/models.
File Description
avalon_bfm_wrapper.sv A wrapper for the Avalon BFMs that the avalon_driver.sv file
uses.
avalon_driver.sv A SystemVerilog HDL driver that uses the BFMs to form the
transmit and receive path, and access the Avalon-MM
interface.
avalon_if_params_pkg.sv A SystemVerilog HDL testbench that contains parameters to
configure the BFMs. Because the configuration is specific to the
DUT, you must not change the contents of this file.
avalon_st_eth_packet_monitor.sv A SystemVerilog HDL testbench that monitors the Avalon-ST
transmit and receive interfaces.
eth_register_map_params_pkg.sv A SystemVerilog HDL package that maps addresses to the
Avalon-MM control registers.
tb.sv The top level testbench file of which consists of the Device
Under Test (DUT) and other logic blocks.
Testbench is included in the design example package for simulation verification. Below are the steps to
run the simulation:
1. Download and restore the design example: LL_Ethernet_10G_A10_phy_10GBaser_Register_mode.
2. Launch Modelsim-SE 10.3c and change the directory to
LL_Ethernet_10G_A10_phy_10GBaser_Register_mode\testbench.
3. In the TCL console window, type the below command: tb_run.tcl
4. At the end of the simulation, Modelsim simulator will generate statistics of transmitted packets and
received packets in the Transcript window. While in the Wave window, the roundtrip latency for serial
loopback is indicated by the measurement cursors that show the time taken to transmit the first data
from Avalon-ST TX interface to be available at Avalon-ST RX interface.
The following hardware boards are supported for the sample Example Design. For each hardware board,
we provide a predefined pin assignment. The Example Design recommendations require that System
console must be used for controlling the hardware platform and providing User Interface.
The following procedure illustrates the board setup for hardware test. (Diagram: To Do)
The design example package comes with pre-generated RTL files that implement a single Ethernet
channel uses the on-board small form factor pluggable plus (SFP+). Below are the steps to perform
hardware test:
1. Download and restore the design example: (refer to the project link above).
2. Launch the Quartus II software and then open the project file, “altera_eth_top.qpf”.
3. Run full compilation for the design example. A “.sof” file will be generated once the compilation is
complete.
4. Configure the FPGA on Arria 10 GX SI Development Board using the generated, “altera_eth_top.sof”
file.
5. After configuration is done, open the Clock Control tool, “ClockControl.exe”. The Clock Control tool is
shipped with the “Installation Kit” for Arria 10 GX SI Development Board.
6. Set the new frequency for Y5 and Y6 as following: Y5= 322.265625 MHz; Y6= 100MHz
a. SFP+ loopback
Command:
i. source gen_conf.tcl (Generate and send 0xffff2000 packets)
ii. source monitor_conf.tcl (To check the number of good and bad packets received)
iii. source show_stats.tcl (To show the statistics counter values)
b. Avalon-ST loopback
Command: source loopback_conf.tcl (enable Avalon-ST loopback)
Example Design component’s timing constraints will be automatically loaded during Quartus
compilation. Example Design level timing constraints can be found at <Example
Design>/altera_eth_top.sdc.
ign master_res
Top et_n
Lev
block_lock_
el
n
tx_ready_e
xport_n
rx_ready_e
xport_n
altera_eth_top.altera_eth_10g_mac_base_r_low_latency atx_pll_loc
ked
iopll_locke
d
MA altera_eth_top.altera_eth_10g_mac_base_r_low_latency.altera_eth_10g_mac_b avalon_st_r
C ase_r_low_latency_wrap.low_latency_mac x_data
avalon_st_r
x_empty
avalon_st_r
x_endofpac
ket
avalon_st_r
x_error
avalon_st_r
x_startofpa
cket
avalon_st_r
x_ready
avalon_st_r
x_valid
avalon_st_t
x_data
avalon_st_t
x_empty
avalon_st_t
x_endofpac
ket
avalon_st_t
x_error
avalon_st_t
x_ready
avalon_st_t
x_startofpa
cket
avalon_st_t
x_valid
MA altera_eth_top.altera_eth_10g_mac_base_r_low_latency.altera_eth_10g_mac_b rs2top_eth
C ase_r_low_latency_wrap.low_latency_mac.alt_em10g32.alt_em10g32unit.alt_e _xgmii_vali
Tx m10g32_tx_top.alt_em10g32_tx_rs_layer.alt_em10g32_tx_rs_xgmii_layer_ultra d (xgmii tx
valid),
temp_rs2to
p_eth_xgm
ii_data
(xgmii tx
data),
temp_rs2to
p_eth_xgm
ii_ctrl
(xgmii tx
control)
Note: The
signals in
the
brackets
indicate
the actual
XGMII
interface
signals
tapped.
MA altera_eth_top.altera_eth_10g_mac_base_r_low_latency.altera_eth_10g_mac_b rx_top2rs_
C ase_r_low_latency_wrap.low_latency_mac.alt_em10g32.alt_em10g32unit.alt_e xgmii_rx_v
Rx m10g32_rx_top.alt_em10g32_rx_rs_layer.alt_em10g32_rx_rs_xgmii_ultra alid (xgmii
rx valid),
rx_top2rs_
xgmii_rx_d
ata (xgmii
rx data),
rx_top2rs_
xgmii_rx_ct
rl (xgmii rx
control),
rx_link_faul
t_status_xg
mii_rx_dat
a (xgmii rx
link fault
status)
Note: The
signals in
the
brackets
indicate
the actual
XGMII
interface
signals
tapped.
PH altera_eth_top.altera_eth_10g_mac_base_r_low_latency.altera_eth_10g_mac_b tx_analogr
Y ase_r_low_latency_wrap. low_latency_baser eset
tx_digitalre
set
rx_analogr
eset
rx_digitalre
set
tx_cal_busy
rx_cal_busy
rx_is_locke
dtodata
tx_clkout
rx_clkout
To Do (Done): Provide useful debugging signals if users would want to include SignalTap in Hardware
bring-up and debugging. Please note that SignalTap instantiation will impact timing closure and users
would need to ensure timing closure with SignalTap prior to hardware bring-up.
This document describes the 1G/2.5GbE MAC + PHY reference design for Arria V, and Arria 10, the
testbench, and its components.
Altera uses the following hardware and software to test the 1G/2.5GbE MAC + PHY reference design and
testbench:
7.2 Features
This reference design contains pre-generated RTL files which support 2-channels. You can use the
testbench and simulation script (ModelSim) provided to simulate the design in a simulator. This
reference design also support partial reconfiguration ready option.
Figure X: Example Design hierarchy before Partial Reconfiguration Ready option is enabled.
Figure X: Example Design hierarchy after Partial Reconfiguration Ready option is enabled.
The following diagram shows the clocking scheme of the reference design.
There is an active high asynchronous global reset signal at reference design top level (alt_mge_rd).
Internal reset signals will be synchronized to respective clock domain internally, and generated by
Transceiver Reset Controller as shown in Figure 7 .3.
The design example package comes with pre-generated RTL files for 2 channels. To use the reference
design, perform the following steps:
…
For Arria V reference design, user needs to regenerate the Transceiver Reconfiguration Controller file
(acds_ip/alt_mge_xcvr_rcfg.qsys) in the reference design package. Refer to section 7.6.3 on how to
regenerate the IP files.
The following table shows the IP that need regeneration and the tools involved.
Launch the tool and open the IP file as shown in the above table to regenerate the IP.
This section describes the interface signals at design example level, which is alt_mge_rd.
Table 1 .1 shows the address offsets in the 1G/2.5G Ethernet Reference Design.
Block/
Sub-block Address Offset Comments
Channel-0 0x01_0000
Channel-1 0x02_0000
Write has no
effect when
reconfig is busy.
0x01 control RW Refer to table Control
below reconfiguration
process
0x02 status RO Refer to table Indicates status
below of
reconfiguration
process
0x03 Reserved - - -
Table 1.2: Register Offset of 1G/2.5G Ethernet Reconfiguration Controller
2’b00: 1GbE
2’b01: 2.5GbE
2’b10: Reserved
2’b11: Reserved
Write has no
effect when
reconfig is busy.
[15:2] Reserved - 0x0000 -
16 reconfig_start RWC 0x0 When its value is
0, write 1 to start
reconfiguration
process.
Self-cleared
when
reconfiguration
is completed.
Write has no
effect when
reconfig is busy.
[31:17] Reserved - 0x000000 -
Table 1.3: Bit Offset of Control Register
For register map and detail explanation of the register usage, refer to Low Latency Ethernet 10G MAC
User Guide, in section 4, under “Configuration Registers”.
7.8.3 PHY
For register map and detail explanation of the register usage, refer to 1G/2.5G Ethernet PHY User
Guide, in section 4, under “1G/2.5G Ethernet PHY Configuration Registers”.
Altera provides testbench for you to demonstrate the behavior of 1G/2.5G Ethernet Reference Design.
The following sections describe the testbench, its components, and use.
The testbench operates in loopback mode. Figure 1 .4 shows the flow of the packets in the design
example.
Avalon driver—uses Avalon-ST master bus functional models (BFMs) to exercise the transmit
and the receive paths. The driver also uses the master Avalon-MM BFM to access the Avalon-
MM interfaces of the design example components.
Packet monitors—monitors the transmit and receive datapaths, and displays the frames in the
simulator console.
Table 1 .5 describes the files that implement the reference design testbench.
Simulation script uses QUARTUS_ROOTDIR environment variable to access Altera’s simulation model
libraries. QUARTUS_ROOTDIR should has been set and pointed to the Quartus II installation path after
proper installation. You need to set it manually if this environment variable is missing.
To use the ModelSim simulator to simulate the testbench design, follow these steps:
Test cases are included to show case how to change channel speed to 1G/2.5G and MAC configuration.
User should follow the read-modify-write reconfiguration data and sequence in their reconfiguration
logic.
For Arria 10 device family, MIF files for transceiver reconfiguration will be generated by 1G/2.5G PHY
according to
7.9.2.3 Testcase 1
Configuration:
1. 2 channels
2. Circular loopback (as shown in diagram in Figure 1 .4)
Test Scenario:
After the simulation stop, user can refer to the transcript window for channel 0 MAC TX and RX Statistic
counter result.
For each operating speed, if all the total 3 packets have been received successfully to channel 0 Avalon-
ST RX interface, the transcript will print out “Simulation PASSED”.
Avalon-MM
Control Interface
1st test: Permute between all 3 operations speeds (1G, 2.5G and 5G) [ACDS 15.1]
Note:
Limitation of hardware equipment to carry out dynamic switching on the same channel as
1G to be connect to SmartBit using SFP+ and 2.5G to be connect to LSI Mission Board
using SMA.
Currently no external tester can be used for 5G testing.
LSI mission board have limitation to received packet (max throughput, B2B with fixed 12b
IPG) directly from 10G spirent tester.
Spirent tester port load need to set 25% or below for this testing to have 75% time on idle
character and data on 25%.
Include clock frequency checking module to ensure tx_clkout and rx_clkcout is working
as per specification after speed switching. Alternatively is using oscilloscope.
7.10.1.4 Hardware Testing: Reception and Transmission of Data Frame (Stress Test)
This hardware test covers stressing the SUT operations specific to reception and
transmission of valid data frames under normal room temperature condition.
Program the Spirent tester to send large volume of traffic (min 1 hr to max 2 days) with
minimum IPG (notes that for the minimum supported IPG by Spirent tester is 12B), and
set the clock frequency difference between Tester and board with a ±100ppm, and then
verify there is NO packet lost and NO error. As CRC of frames generated by Spirent
tester will be removed at Rx and inserted again at Tx during transmission, the Tx CRC
generation is therefore checked by frames received by Spirent tester.
Meanwhile, for Rx CRC error checking, program the Spirent tester to send large volume
of CRC error with minimum IPG, and then verify the Rx CRC statistic counter is
matching with the # of CRC frames generated by the Spirent tester.
This document describes the 1G/2.5GbE MAC + PHY with IEEE 1588v2 reference design for Arria
10/Stratix 10, the testbench, and its components.
Altera uses the following hardware and software to test the 1G/2.5GbE MAC + PHY with IEEE 1588v2
reference design and testbench:
8.2 Features
This reference design contains pre-generated RTL files which support 2-channels. You can use the
testbench and simulation script (ModelSim) provided to simulate the design in a simulator. This
reference design also support partial reconfiguration ready option.
alt_mge_rd
.
. .
alt_mge_rd_addrdec_mch alt_mge_channel
alt_mge_channel PTP
Packet Avalon-ST
Classifier
Pulse-
per-
1G/2.5G
Second
Pulse Per
Second
S LL MAC
S Local TOD
TOD Sync
.
..
…
TX/RX Serial
Avalon- Avalon-
S A10
S MM M PHY Data
MM Master
...
XCVR
S Reset
S AVMM Mux Controller
S XCVR
Reconfig
S Master
A10 TOD
A10 IO
ATX
FPLL PLL
XCVR PLL
S
Reconfig Pulse-
Master Pulse
per-
Second
Per Second
Figure 8.5: 1G/2.5G IEEE 1588 Ethernet reference design block diagram
altera_eth_top
alt_mge_rd
.
. .
alt_mge_rd_addrdec_mch alt_mge_channel
alt_mge_channel PTP
Packet Avalon-ST
Classifier
Pulse-
per-
1G/2.5G
Second
Pulse Per
Second
S LL MAC
S Local TOD
TOD Sync
.
..
…
TX/RX Serial
Avalon- Avalon-
S S10
S MM M PHY Data
MM Master
...
XCVR
S Reset
S AVMM Mux Controller
S XCVR
Reconfig
S Master
S10 TOD
S10 IO
ATX
FPLL PLL
XCVR PLL
S
Reconfig Pulse-
Master Pulse
per-
Second
Per Second
S10
FPLL
Figure 8.2: S10 1G/2.5G IEEE 1588 Ethernet reference design block diagram
Figure X: Example Design hierarchy before Partial Reconfiguration Ready option is enabled.
Figure X: Example Design hierarchy after Partial Reconfiguration Ready option is enabled.
The following diagram shows the clocking scheme of the reference design.
There is an active high asynchronous global reset signal at reference design top level ( alt_mge_rd).
Internal reset signals will be synchronized to respective clock domain internally, and generated by
Transceiver Reset Controller as shown in Figure 7 .3.
The design example package comes with pre-generated RTL files for 2 channels. To use the reference
design, perform the following steps:
1. Launch the Quartus II software, and launch Low Latency Ethernet 10G MAC from IP Catalog.
This will launch in Qsys Pro.
2. Go to Example Design tab, select the preset 1G/2.5G Ethernet with 1588 Example Design from
the Presets windows, and click Apply.
3. Click Generate Example Design…. Once finished, exit Qsys Pro without saving.
4. Open the project file altera_eth_top.qpf from directory
alt_em10g32_0_EXAMPLE_DESIGN/LL10G_1G_2_5G_1588v2/.
5. Click Start Compilation on the Processing menu to compile the design example.
The following table shows the IP that need regeneration and the tools involved.
Launch the tool and open the IP file as shown in the above table to regenerate the IP.
This section describes the interface signals at design example level, which is alt_mge_rd.
Table 1 .1 shows the address offsets in the 1G/2.5G Ethernet Reference Design.
Block/ Address
Sub-block Offset Comments
1G/2.5G Ethernet 0x00_0000
Reconfiguration
TOD Master 0x00_4000
Channel-0 0x01_0000
1G/2.5GbE MAC 0x0000
1G/2.5GbE PHY 0x8000
Native PHY Rcfg 0xA000 Available in Arria 10/Stratix
10 only
Channel-1 0x02_0000
1G/2.5GbE MAC 0x0000
1G/2.5GbE PHY 0x8000
Native PHY Rcfg 0xA000 Available in Arria 10/Stratix
10 only
Traffic Controller 0x10_0000
Table 2.7: Address Offset of Reference Design
Write has no
effect when
reconfig is busy.
0x01 control RW Refer to table Control
below reconfiguration
process
0x02 status RO Refer to table Indicates status
below of
reconfiguration
process
0x03 Reserved - - -
Table 2.8: Register Offset of 1G/2.5G Ethernet Reconfiguration Controller
2’b00: 1GbE
2’b01: 2.5GbE
2’b10: Reserved
2’b11: Reserved
Write has no
effect when
reconfig is busy.
[15:2] Reserved - 0x0000 -
16 reconfig_start RWC 0x0 When its value is
0, write 1 to start
reconfiguration
process.
Self-cleared
when
reconfiguration
is completed.
Write has no
effect when
reconfig is busy.
[31:17] Reserved - 0x000000 -
Table 2.9: Bit Offset of Control Register
For register map and detail explanation of the register usage, refer to 10-Gbps Ethernet MAC MegaCore
Function User Guide, in section B.6, under “ToD Clock Configuration Register Space.
For register map and detail explanation of the register usage, refer to Low Latency Ethernet 10G MAC
User Guide, in section 4, under “Configuration Registers”.
8.8.4 PHY
For register map and detail explanation of the register usage, refer to 1G/2.5G/5G/10G Multi-rate
Ethernet PHY – Lineside User Guide.
Altera provides testbench for you to demonstrate the behavior of 1G/2.5G Ethernet Reference Design.
The following sections describe the testbench, its components, and use.
The testbench operates in loopback mode. Figure 1 .4 shows the flow of the packets in the design
example.
Table 1 .5 describes the files that implement the reference design testbench.
Simulation script uses QUARTUS_ROOTDIR environment variable to access Altera’s simulation model
libraries. QUARTUS_ROOTDIR should has been set and pointed to the Quartus II installation path after
proper installation. You need to set it manually if this environment variable is missing.
To use the ModelSim simulator to simulate the testbench design, follow these steps:
Test cases are included to show case how to change channel speed to 1G/2.5G and MAC configuration.
User should follow the read-modify-write reconfiguration data and sequence in their reconfiguration
logic.
For Arria 10 device family, MIF files for transceiver reconfiguration will be generated by 1G/2.5G PHY
according to Table 8.1.
For Stratix 10 device family, MIF files for transceiver reconfiguration will be generated by 1G/2.5G PHY
according to Table 8.2.
8.9.2.3 Testcase 1
Configuration:
3. 2 channels
4. Circular loopback (as shown in diagram in Figure 1 .4)
Test Scenario:
After the simulation stop, user can refer to the transcript window for channel 0 MAC TX and RX Statistic
counter result.
For each operating speed, if all the total 7 packets have been received successfully to channel 0 Avalon-
ST RX interface, the transcript will print out “Simulation PASSED”.
Issue:
User might observe hold time violation in "10G Multi-rate Ethernet PHY - Lineside" IP in the
data transfer from alt_mge16_phy_xcvr_term module to Transceiver Native PHY on TX data
path.
Workaround:
User need to over-constraint the hold time failing path by adding following timing constraints
into user SDC file.
if { [string equal "quartus_fit" $::TimeQuestInfo(nameofexecutable)] } {
set_min_delay -from [get_registers *alt_mge16_phy_xcvr_term:*|*] -to [get_registers
*twentynm_xcvr_native:*|twentynm_pcs_*] 0.3ns
}
Note: This constraint has been included in the top level SDC (alt_mge_top.sdc) of this
reference design.
Resolution:
This document describes the 1G/2.5/5/10GbE (USXGMII) MAC + PHY reference design for Arria
10/Stratix 10, the testbench, and its components.
Altera uses the following hardware and software to test the 1G/2.5/5/10GbE (USXGMII) MAC + PHY
reference design and testbench:
9.2 Features
MAC
1G/2.5G/5G/10G Multi-rate Ethernet PHY IP core
Ethernet PHY
Address decoder channel Address decoder module for each component within the channel,
for example, MAC and PHY.
Address decoder multichannel Address decoder module for all channels and components within
multichannel level, for example Master TOD.
Address decoder top Address decoder module for top level components, for example
Traffic Controller.
Reset controller Reset modules which handle reset synchronization for all ED
components.
Core PLL Generates clocks for all the components in the Example Design.
Arria 10/Stratix 10 ATX PLL Generates a TX serial clock for Arria 10/Stratix 10 10G transceiver.
The following diagram shows the clocking scheme of the reference design.
There is an active high asynchronous global reset signal at reference design top level
(alt_mge_multi_channel). Internal reset signals will be synchronized to respective clock domain
internally, and generated by Transceiver Reset Controller as shown in Figure 9 .10 and 9.4.
This section describes the interface signals at design example level, which is alt_mge_multi_channel.
The following table shows per-port address offset for Example Design and client logic.
The testbench operates in loopback mode. Figure 3 .11 shows the flow of the packets in the design
example.
Simulation script uses QUARTUS_ROOTDIR environment variable to access Altera’s simulation model
libraries. QUARTUS_ROOTDIR should has been set and pointed to the Quartus II installation path after
proper installation. You need to set it manually if this environment variable is missing.
To use the ModelSim simulator to simulate the testbench design, follow these steps:
Test cases are included to show case how to change channel speed to 1G/2.5G/5G/10G and MAC
configuration.
9.7.2.1 Testcase 1
Configuration:
1. 2 channels
2. Circular loopback (as shown in diagram in Figure 3 .11)
Test Scenario:
After the simulation stop, user can refer to the transcript window for channel 0 MAC TX and RX Statistic
counter result.
For each operating speed, if all the total 3 packets have been received successfully to channel 0 Avalon-
ST RX interface, the transcript will print out “Simulation PASSED”.
This document describes the 1G/2.5G/10GbE MAC + PHY reference design for Arria 10/Stratix 10,, the
testbench, and its components.
Altera uses the following hardware and software to test the 1G/2.5G/10GbE MAC + PHY reference
design and testbench:
10.2 Features
This reference design contains pre-generated RTL files which support 2-channels. You can use the
testbench and simulation script provided to simulate the design in a simulator. This reference design
also support partial reconfiguration ready option.
alt_mge_rd_addrdec_mch
.
. .
alt_mge_channel
alt_mge_channel
S LL MAC
Avalon-ST
.
..
…
PHY
A10
Avalon- Avalon-
S /S10 Interface
S MM M PHY
Master
MM
...
XCVR
S Reset
S AVMM Mux Controller
S XCVR
Reconfig
10G 2.5G
1G
ATX ATX
FPLL
XCVR PLL PLL
S
Reconfig
Figure X: Example Design hierarchy before Partial Reconfiguration Ready option is enabled.
Figure X: Example Design hierarchy after Partial Reconfiguration Ready option is enabled.
The following diagram shows the clocking scheme of the reference design.
There is an active high asynchronous global reset signal at reference design top level (alt_mge_rd).
Internal reset signals will be synchronized to respective clock domain internally, and generated by
Transceiver Reset Controller as shown in Figure 7 .34 or 10.5.
The design example package comes with pre-generated RTL files for 2 channels. To use the reference
design, perform the following steps:
…
1. Launch the Quartus II software, and launch Low Latency Ethernet 10G MAC from IP Catalog.
This will launch in Qsys Pro.
2. Go to Example Design tab, select the preset 1G/2.5G/10G Ethernet Example Design from the
Presets windows, and click Apply.
3. Click Generate Example Design…. Once finished, exit Qsys Pro without saving.
4. Open the project file altera_eth_top.qpf from directory
alt_em10g32_0_EXAMPLE_DESIGN/ LL10G_1G_2_5G_10G/.
5. Click Start Compilation on the Processing menu to compile the design example.
The following table shows the IP that need regeneration and the tools involved.
Launch the tool and open the IP file as shown in the above table to regenerate the IP.
This section describes the interface signals at design example level, which is alt_mge_rd.
Table 1 .1 shows the address offsets in the 1G/2.5/10G Ethernet Reference Design.
Block/
Sub-block Address Offset Comments
1G/2.5/10G 0x00_0000
Ethernet
Reconfiguration
Channel-0 0x01_0000
1G/2.5/10GbE 0x0000
MAC
1G/2.5/10GbE 0x8000
PHY
Channel-1 0x02_0000
1G/2.5/10GbE 0x0000
MAC
1G/2.5/10GbE 0x8000
PHY
Write has no
effect when
reconfig is busy.
0x01 control RW Refer to table Control
below reconfiguration
process
0x02 status RO Refer to table Indicates status
below of
reconfiguration
process
0x03 Reserved - - -
Table 10.4.13: Register Offset of 1G/2.5/10G Ethernet Reconfiguration Controller
2’b00: 1GbE
2’b01: 2.5GbE
2’b10: Reserved
2’b11: 10GbE
Write has no
effect when
reconfig is busy.
[15:2] Reserved - 0x0000 -
16 reconfig_start RWC 0x0 When its value is
0, write 1 to start
reconfiguration
process.
Self-cleared
when
reconfiguration
is completed.
Write has no
effect when
reconfig is busy.
[31:17] Reserved - 0x000000 -
Table 10.4.14: Bit Offset of Control Register
For register map and detail explanation of the register usage, refer to Low Latency Ethernet 10G MAC
User Guide, in section 4, under “Configuration Registers”.
10.8.3 PHY
For register map and detail explanation of the register usage, refer to 1G/2.5/10G Ethernet PHY User
Guide, in section 4, under “1G/2.5/10G Ethernet PHY Configuration Registers”.
Altera provides testbench for you to demonstrate the behavior of 1G/2.5/10G Ethernet Reference
Design. The following sections describe the testbench, its components, and use.
The testbench operates in loopback mode. Figure 1 .4 shows the flow of the packets in the design
example.
Avalon driver—uses Avalon-ST master bus functional models (BFMs) to exercise the transmit
and the receive paths. The driver also uses the master Avalon-MM BFM to access the Avalon-
MM interfaces of the design example components.
Packet monitors—monitors the transmit and receive datapaths, and displays the frames in the
simulator console.
Table 1 .5 describes the files that implement the reference design testbench.
Test cases are included to show case how to change channel speed to 1G/2.5G/10G and MAC
configuration.
10.9.2.3 Testcase 1
Configuration:
1. 2 channels
2. Circular loopback (as shown in diagram in Figure 1 .4)
Test Scenario:
When simulation ends, the values of the MAC statistics counters are displayed in the transcript window.
The transcript window also displays PASSED if the RX Avalon-ST interface of channel 0 received all
packets successfully, all statistics error counters are zero, and the RX MAC statistics counters are equal
to the TX MAC statistics counters.
Avalon-MM
Control Interface
2. When the test is completed, observe the output displayed. The following diagrams
show excerpts of the output, which shows that the packet monitor block receives
the same number of packets generated without error, and the TX and RX statistics
counters.
====================================================================================
B E G I N C O N F I G U R A T I O N
====================================================================================
payload length = variable (random) ....
payload bytes = random bytes ....
burst size = 80000000 ....
payload length = 1518 ....
frame source addres field = F0F1F2F3F4F5 ....
frame destination addres field = C5C4C3C2C1C0 ....
reseting monitor Packet Counters
number of Packets Expected By Monitor = 0x4c4b400
burst being injected into device ....
-- MONITOR processing frames received .....
_______________________________________________________________________________________
_______________________________________________________________________________________
======================================================================
| MAC TX STATS REGISTER CHECK
======================================================================
|# FRAMES_RECEIVED_WITH_ERROR = 0
|# UNICAST_FRAMES_WITH_ERROR = 0
|# MULTICAST_FRAMES_RECEIVED_WITH_ERROR = 0
|# BRDCAST_FRAMES_WITH_ERROR = 0
|# FRAMES_RECEIVED_WITH_ONLY_CRCERROR = 0
|# VALID_LENGTH_FRAMES_WITH_CRC_ERROR = 0
|# JABBER_FRAMES = 0
|# FRAGMENTED_FRAMES = 0
|# INVALID_FRAMES_RECEIVED = 0
|# FRAMES_RECEIVED_GOOD = 80000000
|# PAUSE_FRAMES_RECEIVED = 0
|# UNICAST_CONTROL_FRAMES = 0
|# MULTICAST_CONTROL_FRAMES = 0
|# UNICAST_FRAMES_RECEIVED_GOOD = 0
|# MULTICAST_FRAMES_RECEIVED_GOOD = 80000000
|# BRDCAST_FRAMES_GOOD = 0
|# DATA_AND_PADDING_OCTETS_RECEIVED_GOOD = 2825321541
|# COMPREHENSICE_OCTETS_RECEIVED = 4265321541
|# FRAMES_WITH_SIZE_64_BYTES = 3190250
|# FRAMES_BETWEEN_SIZE_64AND127_BYTES = 4966646
|# FRAMES_BETWEEN_SIZE_128AND255_BYTES = 10106109
|# FRAMES_BETWEEN_SIZE_256AND511_BYTES = 19843321
|# FRAMES_BETWEEN_SIZE_512AND1K_BYTES = 22624769
|# FRAMES_BETWEEN_SIZE_1KND1518_BYTES = 19268905
======================================================================
| MAC RX STATS REGISTER CHECK
======================================================================
|# FRAMES_RECEIVED_WITH_ERROR = 0
|# UNICAST_FRAMES_WITH_ERROR = 0
|# MULTICAST_FRAMES_RECEIVED_WITH_ERROR = 0
|# BRDCAST_FRAMES_WITH_ERROR = 0
|# FRAMES_RECEIVED_WITH_ONLY_CRCERROR = 0
|# VALID_LENGTH_FRAMES_WITH_CRC_ERROR = 0
|# JABBER_FRAMES = 0
|# FRAGMENTED_FRAMES = 0
|# INVALID_FRAMES_RECEIVED = 0
|# FRAMES_RECEIVED_GOOD = 80000000
|# PAUSE_FRAMES_RECEIVED = 0
|# UNICAST_CONTROL_FRAMES = 0
|# MULTICAST_CONTROL_FRAMES = 0
|# UNICAST_FRAMES_RECEIVED_GOOD = 0
|# MULTICAST_FRAMES_RECEIVED_GOOD = 80000000
|# BRDCAST_FRAMES_GOOD = 0
|# DATA_AND_PADDING_OCTETS_RECEIVED_GOOD = 2825321541
|# COMPREHENSICE_OCTETS_RECEIVED = 4265321541
|# FRAMES_WITH_SIZE_64_BYTES = 3190250
|# FRAMES_BETWEEN_SIZE_64AND127_BYTES = 4966646
|# FRAMES_BETWEEN_SIZE_128AND255_BYTES = 10106109
|# FRAMES_BETWEEN_SIZE_256AND511_BYTES = 19843321
|# FRAMES_BETWEEN_SIZE_512AND1K_BYTES = 22624769
|# FRAMES_BETWEEN_SIZE_1KND1518_BYTES = 19268905
|# FRAMES_BETWEEN_SIZE_ABOVE1519_BYTES = 0
This document describes the 1G/2.5G/10GbE MAC + PHY with IEEE 1588v2 reference design for Stratix
10, the testbench, and its components.
Intel uses the following hardware and software to test the 1G/2.5G/10GbE MAC + PHY with IEEE 1588v2
reference design and testbench:
11.2 Features
This reference design contains pre-generated RTL files which support 2-channels. You can use the
testbench and simulation script (ModelSim) provided to simulate the design in a simulator. This
reference design also support partial reconfiguration ready option.
altera_eth_top
alt_mge_rd
.
. .
alt_mge_rd_addrdec_mch alt_mge_channel
alt_mge_channel PTP
Packet Avalon-ST
Classifier
Pulse-
per- 1G/2.5G/10G
Second
Pulse Per
Second
S LL MAC
Local TOD
S
TOD Sync
.
..
…
Avalon-
Avalon-
TX/RX Serial
Avalon- MM
S S10
S MasterMM M PHY Data
MM Master
...
XCVR
S Reset
S AVMM Mux Controller
S XCVR
Reconfig
S Master
TOD
S S S
S S 1 1 1
1 1 0 0 0
S XCVR 0 0
A
A
T
A
T
A
T
Reconfig
A
Pulse-
Master Pulse
per- Per Second
Second
CoreF
PLL
Reset 1G_2.5G/10G/Core
CSR Clock Reference Clocks
Figure 11.1: S10 1G/2.5G/10G IEEE 1588 Ethernet reference design block diagram
The following diagram shows the clocking scheme of the reference design.
There is an active high asynchronous global reset signal at reference design top level (alt_mge_rd).
Internal reset signals will be synchronized to respective clock domain internally, and generated by
Transceiver Reset Controller as shown in Figure 7 .3.
The design example package comes with pre-generated RTL files for 2 channels. To use the reference
design, perform the following steps:
…
1. Launch the Quartus II software, and launch Low Latency Ethernet 10G MAC from IP Catalog.
This will launch in Qsys Pro.
2. Go to Example Design tab, select the preset 1G/2.5G/10G Ethernet with 1588 Example Design
from the Presets windows, and click Apply.
3. Click Generate Example Design…. Once finished, exit Qsys Pro without saving.
4. Open the project file altera_eth_top.qpf from directory
alt_em10g32_0_EXAMPLE_DESIGN/LL10G_1G_2_5G_10G_1588v2/.
5. Click Start Compilation on the Processing menu to compile the design example.
The following table shows the IP that need regeneration and the tools involved.
Launch the tool and open the IP file as shown in the above table to regenerate the IP.
This section describes the interface signals at design example level, which is alt_mge_rd.
specified register.
csr_mac_readdata Output [N][32] Carries the data read from the specified
register.
csr_mac_waitrequest Output [N] When asserted, this signal indicates that
the IP core is busy and not ready to accept
any read or write requests.
Table 1 .1 shows the address offsets in the 1G/2.5G/10G with 1588 Ethernet Reference Design.
Block/ Address
Sub-block Offset Comments
1G/2.5G/10G 0x00_0000
Ethernet
Reconfiguration
TOD Master 0x00_4000
Channel-0 0x01_0000
MAC 0x0000
PHY 0x8000
Native PHY Rcfg 0xA000
Channel-1 0x02_0000
MAC 0x0000
PHY 0x8000
Native PHY Rcfg 0xA000
Traffic Controller 0x10_0000
Table 11.18: Address Offset of Reference Design
Write has no
effect when
reconfig is busy.
0x01 control RW Refer to table Control
below reconfiguration
process
0x02 status RO Refer to table Indicates status
below of
reconfiguration
process
0x03 Reserved - - -
Table 11.19: Register Offset of 1G/2.5G/10G Ethernet Reconfiguration Controller
2’b00: 1GbE
2’b01: 2.5GbE
2’b10: Reserved
2’b11: 10G
Write has no
effect when
reconfig is busy.
[15:2] Reserved - 0x0000 -
16 reconfig_start RWC 0x0 When its value is
0, write 1 to start
reconfiguration
process.
Self-cleared
when
reconfiguration
is completed.
Write has no
effect when
reconfig is busy.
[31:17] Reserved - 0x000000 -
Table 11.20: Bit Offset of Control Register
For register map and detail explanation of the register usage, refer to 10-Gbps Ethernet MAC MegaCore
Function User Guide, in section B.6, under “ToD Clock Configuration Register Space.
For register map and detail explanation of the register usage, refer to Low Latency Ethernet 10G MAC
User Guide, in section 4, under “Configuration Registers”.
For register map and detail explanation of the register usage, refer to 1G/2.5G/5G/10G Multi-rate
Ethernet PHY User Guide.
Altera provides testbench for you to demonstrate the behavior of 1G/2.5G/10G with 1588 Ethernet
Reference Design. The following sections describe the testbench, its components, and use.
The testbench operates in loopback mode. Figure 1 .4 shows the flow of the packets in the design
example.
Packet monitors—monitors the transmit and receive datapaths, and displays the frames in the
simulator console.
Table 1 .5 describes the files that implement the reference design testbench.
Simulation script uses QUARTUS_ROOTDIR environment variable to access Altera’s simulation model
libraries. QUARTUS_ROOTDIR should has been set and pointed to the Quartus II installation path after
proper installation. You need to set it manually if this environment variable is missing.
To use the ModelSim simulator to simulate the testbench design, follow these steps:
To use the VCS simulator to simulate the testbench design, follow these steps:
To use the NCSim simulator to simulate the testbench design, follow these steps:
Test cases are included to show case how to change channel speed to 1G/2.5G/10G and MAC
configuration.
By default, the PHY is operating in 10GbE mode. In order to switch the transceiver operating speed from
10GbE to 2.5GbE and 1GbE or vice versa, user needs to perform the following steps to instruct
1G/2.5G/10G Ethernet Reconfiguration Controller to reconfigure the PHY.
For Stratix 10 device family, MIF files for transceiver reconfiguration will be generated by
1G/2.5G/5G/10G Multi-rate Ethernet PHY according to Table 11.6.
11.8.1.12 Testcase 1
Configuration:
1. 2 channels
2. Circular loopback (as shown in diagram in Figure 1 .4)
Test Scenario:
a. Non-PTP
b. No VLAN, PTP over Ethernet, PTP Sync Message, 1-step PTP
c. VLAN, PTP over UDP/IPv4, PTP Sync Message, 1-step PTP
d. Stacked VLAN, PTP over UDP/IPv6, PTP Sync Message, 2-step PTP
e. No VLAN, PTP over Ethernet, PTP Delay Request Message, 1-step PTP
f. VLAN, PTP over UDP/IPv4, PTP Delay Request Message, 2-step PTP
g. Stacked VLAN, PTP over UDP/IPv6, PTP Delay Request Message, 1-step PTP
5. Repeat step 2 to 4 for 2.5G and 1G Ethernet mode.
After the simulation stop, user can refer to the transcript window for channel 0 MAC TX and RX Statistic
counter result.
For each operating speed, if all the total 7 packets have been received successfully to channel 0 Avalon-
ST RX interface, the transcript will print out “Simulation PASSED”.
N/A
This Example Design demonstrates Low Latency 10G Ethernet IP solution for Arria 10/Stratix 10 using
Low Latency 10G Ethernet MAC and Native PHY IP cores with small form factor pluggable plus (SFP+). It
supports packet monitoring system on transmit and receive paths and report Ethernet MAC statistics
counter for transmit and receive data paths.
The key differences between 10G Base-R and 10G Base-R register mode (detailed in Chapter 6 &
replicated here, except for the following table) are captured below.
ED Clock domain PHY rx/tx_clkout new PLL that generate The PLL that generates
source 156.25MHz & 312.5MHz 156.25MHz & 312.5MHz
Altera uses the following software and hardware to test the Example Design and testbench in Linux
platform.
Quartus Prime.
System Console. The user guide can be found at link:
http://www.altera.com/literature/ug/ug_system_console.pdf
Simulators: Modelsim-AE, Modelsim-SE, NCsim or VCS (for complete simulators revision please refer
to link-TBD).
Hardware:
o Arria 10 FPGA Development Kit (device: 10AX115S4F45I3SGE2).
o Stratix 10 FPGA Development Kit (device: TBD)
Clock control
12.2 Feature
Figure: Arria 10 ED
Figure: S10 ED
Component Description
Low Latency Ethernet 10G MAC Ethernet MAC IP core
Native PHY Native PHY IP with 10G BASE-R
Address Decoder Address decoder module for each components
Reset Controller Reset module which handle reset sequence for
the native PHY
Arria 10/Stratix 10 ATX PLL Generates a TX serial clock for Arria 10/Stratix
10G transceiver
Adapter Convert 32-bit Avalon ST interface to 64-bit and
vice versa
FIFO Avalon Streaming (Avalon ST) single clock & dual
clock FIFO that buffers the receive & transmit
data between the MAC and client
12.3 Clocking
The following diagram in the section 11.4 captures the clocks and their frequencies in the example
design.
12.4 Reset
The following diagram shows the clocking and reset scheme for the Example Design. At the top-level of
the design, there are two external clock sources, ref_clk_clk (322.265625MHz for Arria 10 and for Stratix
10) and csr_clk (100MHz125MHz) and one master reset, master_reset_n. The master reset is
asynchronous and active low reset signal. This reset signal is then synced to different clock domain
internally. When the master_reset_n is asserted, it brings down all modules in the Example Design.
The Example Design is using Arria 10/Stratix 10 Native PHY with a pre-set PHY parameter setting that
matches the pairing with LL10GE-MAC IP.
rx_enh_clr_errblk_count errblk_count
port
Enable enable_port_rx_enh_crc3 0
port_rx_enh_crc32_err 2_err
port
Enable enable_port_rx_enh_data 1
rx_enh_data_valid port _valid
Enable enable_port_rx_enh_fifo 0
rx_enh_fifo_align_clr _align_clr
port (Interlaken)
Enable enable_port_rx_enh_fifo 0
rx_enh_fifo_align_val _align_val
port (Interlaken)
Enable rx_enh_fifo_cnt enable_port_rx_enh_fifo 0
port _cnt
Enable rx_enh_fifo_del enable_port_rx_enh_fifo 1
port(10GBASE-R) _del
Enable enable_port_rx_enh_fifo 1
rx_enh_fifo_empty port _empty
Enable rx_enh_fifo_full enable_port_rx_enh_fifo 1
port _full
Enable enable_port_rx_enh_fifo 1
rx_enh_fifo_insert _insert
port(10GBASE-R)
Enable enable_port_rx_enh_fifo 0
rx_enh_fifo_pempty port _pempty
Enable enable_port_rx_enh_fifo 0
rx_enh_fifo_pfull port _pfull
Enable enable_port_rx_enh_fifo 0
rx_enh_fifo_rd_en port _rd_en
Enable rx_enh_frame enable_port_rx_enh_fram 0
port e
Enable enable_port_rx_enh_fram 0
rx_enh_frame_diag_statu e_diag_status
s port
Enable enable_port_rx_enh_fram 0
rx_enh_frame_lock port e_lock
Enable rx_enh_highber enable_port_rx_enh_high 1
port ber
Enable enable_port_rx_enh_high 0
rx_enh_highber_clr_cnt ber_clr_cnt
port
Enable enable_port_rx_is_locke 1
rx_is_lockedtodata port dtodata
Enable enable_port_rx_is_locke 1
rx_is_lockedtoref port dtoref
Enable rx_pma_clkout enable_port_rx_pma_clko 0
port ut
Enable rx_pma_clkslip enable_port_rx_pma_clks 0
port lip
Enable enable_port_rx_pma_div_ 1
rx_pma_div_clkout port clkout
Enable enable_port_rx_pma_iqtx 0
rx_pma_iqtxrx_clkout rx_clkout
port
Enable enable_port_rx_pma_qpen 0
rx_pma_qpenable_port_rx able_port_rx_polinv
_polinv port
Enable rx_pma_qpipulldn enable_port_rx_pma_qpip 0
port (QPI) ulldn
lpbken 0
Enable rx_seriallpbken port enable_port_rx_seriallp 0
bken_tx
Enable rx_signaldetect enable_port_rx_signalde 0
port tect
Enable enable_port_rx_std_bitr 0
rx_std_bitrev_ena port ev_ena
Enable rx_std_bitslip enable_port_rx_std_bits 0
port lip
Enable enable_port_rx_std_bits 0
rx_std_bitslipboundarys lipboundarysel
el port
Enable enable_port_rx_std_byte 0
rx_std_byterev_ena port rev_ena
Enable rx_std_pcfifo_empty port enable_port_rx_std_pcfi 0
fo_empty
Enable rx_std_pcfifo_full port enable_port_rx_std_pcfi 0
fo_full
Enable enable_port_rx_std_rmfi 0
rx_std_rmfifo_empty fo_empty
port
Enable enable_port_rx_std_rmfi 0
rx_std_rmfifo_full port fo_full
Enable enable_port_rx_std_sign 0
rx_std_signaldetect aldetect
port
Enable enable_port_rx_std_wa_a 0
rx_std_wa_a1a2size port 1a2size
Enable enable_port_rx_std_wa_p 0
rx_std_wa_patternalign atternalign
port
Enable tx_enh_bitslip enable_port_tx_enh_bits 0
port lip
Enable tx_enh_fifo_cnt enable_port_tx_enh_fifo 0
port _cnt
Enable enable_port_tx_enh_fifo 1
tx_enh_fifo_empty port _empty
Enable tx_enh_fifo_full enable_port_tx_enh_fifo 1
port _full
Enable enable_port_tx_enh_fifo 1
tx_enh_fifo_pempty port _pempty
Enable enable_port_tx_enh_fifo 1
tx_enh_fifo_pfull port _pfull
Enable tx_enh_frame enable_port_tx_enh_fram 0
port e
Enable enable_port_tx_enh_fram 0
tx_enh_frame_burst_en e_burst_en
port
Enable enable_port_tx_enh_fram 0
tx_enh_frame_diag_statu e_diag_status
s port
Enable tx_pma_clkout port enable_port_tx_pma_clko 0
ut
Enable tx_pma_div_clkout port enable_port_tx_pma_div_ 1
clkout
Enable tx_pma_elecidle port enable_port_tx_pma_elec 0
idle
Enable enable_port_tx_pma_iqtx 0
tx_pma_iqtxrx_clkout rx_clkout
port
Enable tx_pma_qpipulldn port enable_port_tx_pma_qpip 0
(QPI) ulldn
Enable tx_pma_qpipullup port enable_port_tx_pma_qpip 0
(QPI) ullup
Enable tx_pma_rxfound port (QPI) enable_port_tx_pma_rxfo 0
und
Enable tx_pma_txdetectrx port enable_port_tx_pma_txde 0
(QPI) tectrx
Enable tx_polinv port enable_port_tx_polinv 0
Enable enable_port_tx_std_bits 0
tx_std_bitslipboundarys lipboundarysel
el port
Enable tx_std_pcfifo_empty port enable_port_tx_std_pcfi 0
fo_empty
Enable tx_std_pcfifo_full port enable_port_tx_std_pcfi 0
fo_full
Enable enable_ports_adaptation 0
enable_ports_pipe_g3_an 0
alog
enable_ports_pipe_hclk 0
enable_ports_pipe_rx_el 0
ecidle
enable_ports_pipe_sw 0
Enable enable_ports_rx_manual_ 0
rx_set_locktodata and cdr_mode
rx_set_locktoref ports
enable_ports_rx_manual_ 0
ppm
Enable PRBS verifier enable_ports_rx_prbs 0
control and status
ports
enable_rx_pma_floatingt 0
ap
Enable simplified data enable_simple_interface 1
interface
enable_split_interface 0
enable_transparent_pcs 0
Enable ‘Enhanced PCS’ enh_low_latency_enable 0
low latency mode
Enhanced PCS/PMA enh_pcs_pma_width 32
interface width
FPGA fabric/ Enhanced enh_pld_pcs_width 66
PCS interface width
Enable Rx 64b/66b enh_rx_64b66b_enable 1
decoder
Enable Rx data bitslip enh_rx_bitslip_enable 0
Enable Rx block enh_rx_blksync_enable 1
synchronizer
Enable Interlaken RX enh_rx_crcchk_enable 0
CRC-32 checker
Enable Rx descrambler enh_rx_descram_enable 1
(10Gbase-R/Interlaken)
Enable Interlaken Rx enh_rx_dispchk_enable 0
disparity checker
Enable Interlaken frame enh_rx_frmsync_enable 0
synchronizer
Frame Synchronizer meta enh_rx_frmsync_mfrm_len 2048
frame length gth
Enable Rx KR-FEC error enh_rx_krfec_err_mark_e 0
marking nable
Error marking type enh_rx_krfec_err_mark_t 10G
ype
Enable Rx data polarity enh_rx_polinv_enable 0
inversion
Enable RX FIFO enh_rxfifo_align_del 0
alignment word deletion
(Interlaken)
Enable RX FIFO control enh_rxfifo_control_del 0
word deletion
(Interlaken)
Rx FIFO mode enh_rxfifo_mode 10GBase-R
Rx FIFO partially empty enh_rxfifo_pempty 2
threshold
Rx FIFO partially full enh_rxfifo_pfull 23
threshold
Enable Rx/Tx FIFO enh_rxtxfifo_double_wid 0
double width mode th
Enable Tx 64b/66b enh_tx_64b66b_enable 1
encoder
Enable Tx data bitslip enh_tx_bitslip_enable 0
Enable Interlaken Tx enh_tx_crcerr_enable 0
CRC-32 generator error
insertion
Enable Interlaken Tx enh_tx_crcgen_enable 0
CRC-32 generator
Enable Interlaken Tx enh_tx_dispgen_enable 0
disparity generator
interface
reconfiguration
Enable Altera Debug rcfg_jtag_enable 0
master endpoint
Generate MIF (Memory rcfg_mif_file_enable 0
Initialization File)
Enable multiple rcfg_multi_enable 0
reconfiguration files
Number of rcfg_profile_cnt 2
reconfiguration
profiles
Reconfiguration Profile rcfg_profile_data0
0
Reconfiguration Profile rcfg_profile_data1
1
Reconfiguration Profile rcfg_profile_data2
2
Reconfiguration Profile rcfg_profile_data3
3
Reconfiguration Profile rcfg_profile_data4
4
Reconfiguration Profile rcfg_profile_data5
5
Reconfiguration Profile rcfg_profile_data6
6
Reconfiguration Profile rcfg_profile_data7
7
Selected rcfg_profile_select 1
reconfiguration profile
Generate reduced rcfg_reduced_files_enab 0
reconfiguration files le
Share reconfiguration rcfg_shared 0
interface
Generate SystemVerilog rcfg_sv_file_enable 0
package file
CTLE adaptation mode rx_pma_ctle_adaptation_ manual
mode
DFE adaptation mode rx_pma_dfe_adaptation_m disabled
ode
Number of fixed dfe rx_pma_dfe_fixed_taps 3
taps
Rx_pma_div_clkout rx_pma_div_clkout_divid 2
division factor er
PPM detector threshold rx_ppm_detect_threshold 1000
Enable capability set_capability_reg_enab 0
registers le
Selected CDR reference set_cdr_refclk_freq 322.265625MHz
clock frequency (Arria 10)/
644.53125MHz
(Stratix 10)
Enable control and set_csr_soft_logic_enab 0
status registers le
std_tx_bitslip_enable 0
TX byte serializer mode std_tx_byte_ser_mode Disabled mode
std_tx_byterev_enable 0
TX FIFO mode std_tx_pcfifo_mode low_latency
std_tx_polinv_enable 0
support_mode user_mode
TX local clock division factor tx_pma_clk_div 1
tx_pma_div_clkout division factor tx_pma_div_clkout_divid 2
er
validation_rule_select
All register space for this example design is 32 bit. The following tables show the address offset for the
Example Design and client logic at the top-level of the design.
The following table describes files that implement the Example Design testbench. The collateral can be
found under <Example Design>/simulation/ed_sim/models.
File Description
avalon_bfm_wrapper.sv A wrapper for the Avalon BFMs that the avalon_driver.sv file
uses.
avalon_driver.sv A SystemVerilog HDL driver that uses the BFMs to form the
transmit and receive path, and access the Avalon-MM
interface.
avalon_if_params_pkg.sv A SystemVerilog HDL testbench that contains parameters to
configure the BFMs. Because the configuration is specific to the
DUT, you must not change the contents of this file.
avalon_st_eth_packet_monitor.sv A SystemVerilog HDL testbench that monitors the Avalon-ST
transmit and receive interfaces.
eth_register_map_params_pkg.sv A SystemVerilog HDL package that maps addresses to the
Avalon-MM control registers.
tb.sv The top level testbench file of which consists of the Device
Under Test (DUT) and other logic blocks.
Testbench is included in the design example package for simulation verification. Below are the steps to
run the simulation:
1. Download and restore the design example: LL_Ethernet_10G_A10_phy_10GBaser_Register_mode.
2. Launch Modelsim-SE 10.3c and change the directory to
LL_Ethernet_10G_A10_phy_10GBaser_Register_mode\testbench.
3. In the TCL console window, type the below command: tb_run.tcl
4. At the end of the simulation, Modelsim simulator will generate statistics of transmitted packets and
received packets in the Transcript window. While in the Wave window, the roundtrip latency for serial
loopback is indicated by the measurement cursors that show the time taken to transmit the first data
from Avalon-ST TX interface to be available at Avalon-ST RX interface.
The following hardware boards are supported for the sample Example Design. For each hardware board,
we provide a predefined pin assignment. The Example Design recommendations require that System
console must be used for controlling the hardware platform and providing User Interface.
Arria 10 TBD Development Board (10AX115S4F45I3SGE2) is used for hardware testing the Arria 10 ED.
Stratix 10 TBD development board is used for hardware testing the Stratix 10 ED.
The following procedure illustrates the board setup for hardware test. (Diagram: To Do)
The design example package comes with pre-generated RTL files that implement a single Ethernet
channel uses the on-board small form factor pluggable plus (SFP+). Below are the steps to perform
hardware test:
1. Download and restore the design example: (refer to the project link above).
2. Launch the Quartus II software and then open the project file, “altera_eth_top.qpf”.
3. Run full compilation for the design example. A “.sof” file will be generated once the compilation is
complete.
4. Configure the FPGA on Arria 10 GX SI Development Board using the generated, “altera_eth_top.sof”
file.
5. After configuration is done, open the Clock Control tool, “ClockControl.exe”. The Clock Control tool is
shipped with the “Installation Kit” for Arria 10 GX SI Development Board.
6. Set the new frequency for Y5 and Y6 as following: Y5= 322.265625 MHz; Y6= 100MHz125MHz
a. SFP+ loopback
Command:
i. source gen_conf.tcl (Generate and send 0xffff2000 packets)
ii. source monitor_conf.tcl (To check the number of good and bad packets received)
iii. source show_stats.tcl (To show the statistics counter values)
b. Avalon-ST loopback
Command: source loopback_conf.tcl (enable Avalon-ST loopback)
Example Design component’s timing constraints will be automatically loaded during Quartus
compilation. Example Design level timing constraints can be found at <Example
Design>/altera_eth_top.sdc.
This document describes the 10M/100M/1G/2.5G/10GbE MAC + PHY reference design for Stratix 10, the
testbench, and its components.
Altera uses the following hardware and software to test the 10M/100M/1G/2.5G/10GbE MAC + PHY
reference design and testbench:
13.2 Features
This reference design contains pre-generated RTL files which support 2-channels. You can use the
testbench and simulation script provided to simulate the design in a simulator.
alt_mge_rd_addrdec_mch
.
. .
alt_mge_channel
alt_mge_channel
S LL MAC
Avalon-ST
.
..
…
PHY
Avalon- Avalon- S10 Interface
S PHY
S MM M
Master
MM
...
XCVR
S Reset
S AVMM Mux Controller
S XCVR
Reconfig
10G 2.5G
1G
ATX ATX
FPLL
XCVR PLL PLL
S
Reconfig
The following diagram shows the clocking scheme of the reference design.
There is an active high asynchronous global reset signal at reference design top level (alt_mge_rd).
Internal reset signals will be synchronized to respective clock domain internally, and generated by
Transceiver Reset Controller as shown in Figure 7 .33.
The design example package comes with pre-generated RTL files for 2 channels. To use the reference
design, perform the following steps:
…
1. Launch the Quartus II software, and launch Low Latency Ethernet 10G MAC from IP Catalog.
This will launch in Qsys Pro.
2. Go to Example Design tab, select the preset 10M/100M/1G/2.5G/10G Ethernet Example
Design from the Presets windows, and click Apply.
3. Click Generate Example Design…. Once finished, exit Qsys Pro without saving.
4. Open the project file altera_eth_top.qpf from directory
alt_em10g32_0_EXAMPLE_DESIGN/LL10G_1G_2_5G_10G/.
5. Click Start Compilation on the Processing menu to compile the design example.
The following table shows the IP that need regeneration and the tools involved.
Launch the tool and open the IP file as shown in the above table to regenerate the IP.
This section describes the interface signals at design example level, which is alt_mge_rd.
Table 1 .1 shows the address offsets in the 1G/2.5/10G Ethernet Reference Design.
Block/
Sub-block Address Offset Comments
1G/2.5/10G 0x00_0000
Ethernet
Reconfiguration
Channel-0 0x01_0000
1G/2.5/10GbE 0x0000
MAC
1G/2.5/10GbE 0x8000
PHY
Channel-1 0x02_0000
1G/2.5/10GbE 0x0000
MAC
1G/2.5/10GbE 0x8000
PHY
reconfig
controller block
Write has no
effect when
reconfig is busy.
0x01 control RW Refer to table Control
below reconfiguration
process
0x02 status RO Refer to table Indicates status
below of
reconfiguration
process
0x03 Reserved - - -
Table 13.24: Register Offset of 1G/2.5/10G Ethernet Reconfiguration Controller
2’b00:
10M/100M/1GbE
2’b01: 2.5GbE
2’b10: Reserved
2’b11: 10GbE
Write has no
effect when
reconfig is busy.
[15:2] Reserved - 0x0000 -
16 reconfig_start RWC 0x0 When its value is
0, write 1 to start
reconfiguration
process.
Self-cleared
when
reconfiguration is
completed.
Write has no
effect when
reconfig is busy.
[31:17] Reserved - 0x000000 -
Table 13.25: Bit Offset of Control Register
13.7.2 MAC
For register map and detail explanation of the register usage, refer to Low Latency Ethernet 10G MAC
User Guide, in section 4, under “Configuration Registers”.
13.7.3 PHY
For register map and detail explanation of the register usage, refer to 1G/2.5G/5G/10G Multi-rate
Ethernet PHY User Guide, in section 4, under “1G/2.5/10G Ethernet PHY Configuration Registers”.
Altera provides testbench for you to demonstrate the behavior of 10M/100M/1G/2.5/10G Ethernet
Reference Design. The following sections describe the testbench, its components, and use.
The testbench operates in loopback mode. Figure 1 .4 shows the flow of the packets in the design
example.
Table 1 .5 describes the files that implement the reference design testbench.
Test cases are included to show case how to change channel speed to 10M/100M/1G/2.5G/10G and
MAC configuration.
By default, the 1G/2.5G/10G PHY with SGMII enabled is operating in 10GbE mode. In order to switch the
transceiver operating speed from 10GbE to 10M/100M/1GbE and 2.5G or vice versa, user need to
perform following steps to instruct 1G/2.5G/10G Ethernet Reconfiguration Controller to reconfigure the
PHY.
To swith speed to 10M or 100M, user need to switch transceiver operating speed to 1G mode first using
reconfiguration controller. Then, by using CSR reconfiguration, user configure PHY_IF_MODE register of
the PHY to the desired speed.
MIF files for transceiver reconfiguration will be generated by 1G/2.5G/10G PHY according to Error:
Reference source not found.
13.8.2.3 Testcase 1
Configuration:
1. 2 channels
2. Circular loopback (as shown in diagram in Figure 1 .4)
Test Scenario:
When simulation ends, the values of the MAC statistics counters are displayed in the transcript window.
The transcript window also displays PASSED if the RX Avalon-ST interface of channel 0 received all
packets successfully, all statistics error counters are zero, and the RX MAC statistics counters are equal
to the TX MAC statistics counters.
13.9.1.1 Hardware Testing: Multi Gigabit Ethernet (MGE) 1G/2.5G/10G with SGMII Enabled
Hardware testing will be carryout in reference design level with the following
environment setting in Stratix 10 family. The following equipment/tools are needed to
carry out hardware testing:
o FPGA Dev. Kit:
Stratix 10 Si Dev Kit for Stratix 10 testing
o Cables:
SMA cable
SFP+
Fiber Optic cable
o 3rd Party Tester:
Spirent Test Center and LSI mission board for 2.5G testing
SmartBit for 1G testing
Avalon-MM
Control Interface
4. When the test is completed, observe the output displayed. The following diagrams
show excerpts of the output, which shows that the packet monitor block receives
the same number of packets generated without error, and the TX and RX statistics
counters.
====================================================================================
B E G I N C O N F I G U R A T I O N
====================================================================================
payload length = variable (random) ....
payload bytes = random bytes ....
burst size = 80000000 ....
payload length = 1518 ....
frame source addres field = F0F1F2F3F4F5 ....
frame destination addres field = C5C4C3C2C1C0 ....
reseting monitor Packet Counters
number of Packets Expected By Monitor = 0x4c4b400
burst being injected into device ....
-- MONITOR processing frames received .....
_______________________________________________________________________________________
_______________________________________________________________________________________
======================================================================
| MAC TX STATS REGISTER CHECK
======================================================================
|# FRAMES_RECEIVED_WITH_ERROR = 0
|# UNICAST_FRAMES_WITH_ERROR = 0
|# MULTICAST_FRAMES_RECEIVED_WITH_ERROR = 0
|# BRDCAST_FRAMES_WITH_ERROR = 0
|# FRAMES_RECEIVED_WITH_ONLY_CRCERROR = 0
|# VALID_LENGTH_FRAMES_WITH_CRC_ERROR = 0
|# JABBER_FRAMES = 0
|# FRAGMENTED_FRAMES = 0
|# INVALID_FRAMES_RECEIVED = 0
|# FRAMES_RECEIVED_GOOD = 80000000
|# PAUSE_FRAMES_RECEIVED = 0
|# UNICAST_CONTROL_FRAMES = 0
|# MULTICAST_CONTROL_FRAMES = 0
|# UNICAST_FRAMES_RECEIVED_GOOD = 0
|# MULTICAST_FRAMES_RECEIVED_GOOD = 80000000
|# BRDCAST_FRAMES_GOOD = 0
|# DATA_AND_PADDING_OCTETS_RECEIVED_GOOD = 2825321541
|# COMPREHENSICE_OCTETS_RECEIVED = 4265321541
|# FRAMES_WITH_SIZE_64_BYTES = 3190250
|# FRAMES_BETWEEN_SIZE_64AND127_BYTES = 4966646
|# FRAMES_BETWEEN_SIZE_128AND255_BYTES = 10106109
|# FRAMES_BETWEEN_SIZE_256AND511_BYTES = 19843321
|# FRAMES_BETWEEN_SIZE_512AND1K_BYTES = 22624769
|# FRAMES_BETWEEN_SIZE_1KND1518_BYTES = 19268905
======================================================================
| MAC RX STATS REGISTER CHECK
======================================================================
|# FRAMES_RECEIVED_WITH_ERROR = 0
|# UNICAST_FRAMES_WITH_ERROR = 0
|# MULTICAST_FRAMES_RECEIVED_WITH_ERROR = 0
|# BRDCAST_FRAMES_WITH_ERROR = 0
|# FRAMES_RECEIVED_WITH_ONLY_CRCERROR = 0
|# VALID_LENGTH_FRAMES_WITH_CRC_ERROR = 0
|# JABBER_FRAMES = 0
|# FRAGMENTED_FRAMES = 0
|# INVALID_FRAMES_RECEIVED = 0
|# FRAMES_RECEIVED_GOOD = 80000000
|# PAUSE_FRAMES_RECEIVED = 0
|# UNICAST_CONTROL_FRAMES = 0
|# MULTICAST_CONTROL_FRAMES = 0
|# UNICAST_FRAMES_RECEIVED_GOOD = 0
|# MULTICAST_FRAMES_RECEIVED_GOOD = 80000000
|# BRDCAST_FRAMES_GOOD = 0
|# DATA_AND_PADDING_OCTETS_RECEIVED_GOOD = 2825321541
|# COMPREHENSICE_OCTETS_RECEIVED = 4265321541
|# FRAMES_WITH_SIZE_64_BYTES = 3190250
|# FRAMES_BETWEEN_SIZE_64AND127_BYTES = 4966646
|# FRAMES_BETWEEN_SIZE_128AND255_BYTES = 10106109
|# FRAMES_BETWEEN_SIZE_256AND511_BYTES = 19843321
|# FRAMES_BETWEEN_SIZE_512AND1K_BYTES = 22624769
|# FRAMES_BETWEEN_SIZE_1KND1518_BYTES = 19268905
|# FRAMES_BETWEEN_SIZE_ABOVE1519_BYTES = 0
14.1 Mac IP
14.2 Phy IP
14.4 PLLs
14.7 FIFO
14.11 MIDO
Current ED HW.TCL packaging is taking the left side approach considering resource/schedule constraint
towards ACDS-15.1 delivery. The 5 Example Design variants are maintained independently with no
centralization of common blocks.
For long run efficient maintenance with increasing Example Design variants along the path, collateral
consolidation is a must. Advisable effort as soon as @ ACDS-16.0.
adapters
altera_eth_avalon_mm_adapter
altera_eth_avalon_st_adapter
altera_eth_xgmii_data_format_adapter
altera_eth_xgmii_width_adaptor
csr
presets (store example design presets here)
rtl
example design hw_tcl files
All the example design source files will be resided in example design folder. Each example design will
have their own folder to store all the source codes.
From here it showed that each example design will contain a set of testbench files, a set of rtl and
hardware tests tcl scripts. Arrangement like this will is easier to see clearly which file is belong to which
design, and if we want to do customization. But this is troublesome in term of maintenances. Certain
files that under simulation folder and hwtesting folder are the same. if happen those files need to be
change, then we need to change in every example design. Hence the potential improvement in 16.0 is to
merge those file in common directory.
Simulation script uses QUARTUS_ROOTDIR environment variable to access Altera’s simulation model
libraries. QUARTUS_ROOTDIR should has been set and pointed to the Quartus II installation path after
proper installation. You need to set it manually if this environment variable is missing.
To use the ModelSim simulator to simulate the testbench design, follow these steps:
example_design
o hwtesting
o simulation
o LL10G_Ethernet_A10_10GBASER_RegMode
o LL10G_Ethernet_A10_1G_10G_LINESIDE
o …
Under hwtesting, few project are actually sharing the same system console script, just maybe few files
are differences, hence we can consolidate them. While for those files that are difference, we can
consolidate all the top level of testbench in single file, then using terp to put different contents based on
the variant selected. Or we append the top level tetbench file like this
LL10G_Ethernet_A10_10GBASER_RegMode_tb_top_n_1588.sv then during generation process, we
modify the file name to become tb_top_n_1588.sv.
Summary:
I do not think having the options to configure PHY is a good idea. It makes the example design selection
become more complex and less benefit for customer. Because MAC and PHY and depend on each other.
Changing PHY will change MAC as well. Hence we might just let MAC as entrance point, change MAC and
we will automatic select proper PHY options that are proven working.
I also do not think that using compose hw_tcl is suitable in this case. This is because our example design
is far more complex compare with last time. For example, last time we connect MAC + PHY + FIFO and
generate that to customer. But then now the design we need to generate MAC + PHY + FIFO + reset
controller + PLL + generator and checker + address decoder. Hence the effort to maintain compose
hw_tcl in this case becoming more difficult compare with existing example design.
Hence I think the focus to 16.0 project should be focus more on how to make the example design more
easy to maintain instead of more rich features.
Example Design component’s timing constraints will be automatically loaded during Quartus
compilation. Only Example Design constraints are maintained by Example Design engineering team.
17 Appendix
17.1 Example Design Quick Start Sample
18 Change Log