Altera_Forum
Honored Contributor
19 years agoNeed ideas on solving a weird LAN91C111 problem
I have a dual processor design with two /f cores. One processor, cpu_fifo, pulls data out of a fifo that is filled by a VHDL block receiving data from some proto pins. It copies the data into a shared dual-port memory built from M4Ks. This shared memory has 1500-byte prebuilt UDP packets -- cpu_fifo copies data into the data area of these packets. Both CPUs are connected to this memory via a tightly-coupled memory port.
The other processor, cpu_ethernet, assigns pbuf payloads to addresses in this shared memory and sends the packets out the ethernet port. Everything about this design works perfectly, except I'm running into weird performance issues. At 50 MHz, it takes about 6,400 clocks to send a packet. At 100MHz, it alternates between about 9,000 clocks and 21,000 clocks to do the same task. The net effect is that throughput is slightly lower at 100Mhz than at 50Mhz. I don't even know where to begin in analyzing what's causing this.