GithubHelp home page GithubHelp logo

artyetherenttx's Introduction

ArtyEthernetTX
--------------
Transmit UDP packets via the Arty's Ethernet PHY.

Author: Mike Field <[email protected]>

The switches configure how often the packets are sent. 
"0000" => 1 packet per second
"0001" => 2 packet per second
"0010" => 10 packets per second 
"0011" => 20 packet per second
"0100" => 50 packets per second 
"0101" => 100 packets per second
"0110" => 200 packets per second 
"0111" => 500 packets per second 
"1000" => 1000 packets per second 
"1001" => 2000 packets per second 
"1010" => 5000 packets per second 
"1011" => 10,000 packests per second 
"1100" => 20,000 packets per second
"1101" => 50,000 packets per second 
"1110" => 100,000 packets per second
"1111" => as fast as possible

Of course, with long packets you can't send hundreds of thousands!

The packets
===========
The packet data is for UDP from port 4096 to port 4096 on the target address.
Currently they have 1040 bytes of user data, the first four of which are filled with
a 16-bit sequence number.

To adjust the length, in nibble_data.vhd change this:
    constant data_bytes        : integer := 16+1024;

And then change these line's constants, adjusting by twice as much
              ...
              when x"875" => data_valid <= '0'; user_data <= '0';
              when x"876" => NULL;
              when x"877" => NULL;
              when x"878" => NULL;
              when x"879" => NULL;
              when x"87A" => NULL;
              when x"87B" => NULL;
              when x"87C" => NULL;
              ....
              when x"8A3" => counter <= (others => '0'); busy  <= '0';


Configuring
===========
Make sure you edit these generics to set the source and destination addresses.

data: nibble_data generic map (
      -- Details for the ARTY's IP settings 
      eth_src_mac => x"DEADBEEF0123", -- A completely 'random' MAC :)
      ip_src_addr => x"0A0A0A0A",     -- 10.10.10.10
      -- details of the destination (broadcast)
      eth_dst_mac => x"A0B3CC4CF9EF", -- My laptop's MAC address
      ip_dst_addr => x"0A0A0A01"      -- 10.10.10.1
  ) port map (

artyetherenttx's People

Contributors

hamsternz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

artyetherenttx's Issues

[Place 30-172] Sub-optimal placement for a clock-capable IO pin and PLL pair.

Hi, thanks for your great work.

I get this error, when Vivado tries to place the design:

[Place 30-172] Sub-optimal placement for a clock-capable IO pin and PLL pair. If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE constraint in the .xdc file to demote this message to a WARNING. However, the use of this override is highly discouraged. These examples can be used directly in the .xdc file to override this clock rule.
< set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets CLK100MHZ_IBUF] >

CLK100MHZ_IBUF_inst (IBUF.O) is locked to IOB_X1Y76
 clocking (PLLE2_ADV.CLKIN1) is provisionally placed by clockplacer on PLLE2_ADV_X0Y1

The above error could possibly be related to other connected instances. Following is a list of 
all the related clock rules and their respective instances.

Clock Rule: rule_pll_clklds
Status: PASS 
Rule Description: A PLL driving any number of IOBs must be placed within the same clock region
 clocking (PLLE2_ADV.CLKOUT0) is provisionally placed by clockplacer on PLLE2_ADV_X0Y1
 and clock_fwd_ddr (ODDR.C) is locked to OLOGIC_X0Y56

Is this only a problem for me or do I have to do something more than open the project in Vivado to get it to work?

Greetings

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.