Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
12600 Discussions

Getting Slow Frame Rate using Frame Buffer Driver on Cyclone IV Board

Altera_Forum
Honored Contributor II
2,608 Views

Hi, 

 

I am developing Frame Buffer based Video Driver to Play upto 720P Resolution Video on Cyclone IV board in Linux Platform. I have used concept of Linux PCI Driver as well as Virtual Frame  

Buffer Driver to create my own custom frame buffer driver using PCIe Interface. 

 

I have also created some commandline test applications to test my frame buffer device by settings different resolutions as well as color bars with that resolutions which works fine 

without any issue. 

 

Than, I have started task to test Sample Video file using "mplayer" tool which works fine upto 480P (720 X 480) Resolution Supoorted Sample Video but getting some slow rate while  

running 720P (1280 X 720) Resolution Supported Sample Video with same Frame Buffer Driver in Linux Platform. 

 

I haven't used concept of SGDMA in my frame buffer driver.  

 

Does anyone has idea or information to solve above slow rate issue? 

 

Regards, 

Ritesh Prajapati
0 Kudos
8 Replies
Altera_Forum
Honored Contributor II
910 Views

what is the clock frequency of your framebuffer?

0 Kudos
Altera_Forum
Honored Contributor II
910 Views

Following are clock frequency for my cyclone IV frame buffer board. 

 

1) Read from PCI and Write to DDR2 : 125MHz 

 

2) Read from DDR2 and Write to VGA master module : 75MHz 

 

3) Read from VGA master module and write to VGA Display Output : It depends on resolutions which I have set. 

 

Please let me know if you need any more information. 

 

Regards, 

Ritesh Prajapati
0 Kudos
Altera_Forum
Honored Contributor II
910 Views

Hi, 

 

so you have a 74.25MHz clock for the output (if you are in 720p mode)? 

 

how do you manage the readout from the ddr2? Do you use memory bursting?
0 Kudos
Altera_Forum
Honored Contributor II
910 Views

Hi, 

 

Yes. 74.25MHz will be output clock for 720P mode resolution support in my system. 

 

We are using memory bursting for DDR2 read. Burst Length is 64 and Avalon data width is 64 bit. 

So, in one burst, Total (64*64)/8 bytes are read from DDR2 Memory. 

 

Also, There is Dual clock FIFO between VGA master and VGA driver (the module which reads data on 74.25 MHz). 

Write Clock :: 75 MHz 

Read Clock :: 74.25 MHz 

Depth :: 1024 words 

Width :: 64 bits 

 

Please le me know if you need any more data from myside. 

 

Regards, 

Ritesh Prajapati
0 Kudos
Altera_Forum
Honored Contributor II
910 Views

Hi, 

 

 

--- Quote Start ---  

 

Than, I have started task to test Sample Video file using "mplayer" tool which works fine upto 480P (720 X 480) Resolution Supoorted Sample Video but getting some slow rate while  

running 720P (1280 X 720) Resolution Supported Sample Video with same Frame Buffer Driver in Linux Platform. 

 

--- Quote End ---  

 

 

Would you tell me the correct meaning of 'slow rate' ? Does it mean that your FIFO buffer sometimes becomes empty and you can't see the right image on your screen? Or it means that the image is OK but the movies are quite slow against your expectation ? 

 

Kazu
0 Kudos
Altera_Forum
Honored Contributor II
910 Views

Yes. I am getting Proper Image but getting video as slow compare to its actual time for high resolution supported video like 720P. 

 

Regards, 

Ritesh Prajapati
0 Kudos
Altera_Forum
Honored Contributor II
910 Views

Hi, 

 

 

--- Quote Start ---  

Yes. I am getting Proper Image but getting video as slow compare to its actual time for high resolution supported video like 720P. 

 

--- Quote End ---  

 

 

It seems that the data transfer from DDR2 to VGA master module via FIFO buffer is working well. But its maximum peak data transfer rate reaches 75MHz x 8byte = 600MByte/sec. Whereas, the DDR2 <-> FPGA peak rate is 125MHz x 2 x 8byte lane ? = 2GByte/sec, You have the room 2Gbyte - 0.6Gbyte = 1.2Gbyte, but this is a theoretical rate. So I recommend you that once check the data transfer between your PCIe and DDR2, by using Signal TapII, etc. 

 

Kazu
0 Kudos
Altera_Forum
Honored Contributor II
910 Views

Hi, 

 

I have verified that PCIe to DDR2 Memory Write Operation is getting some slow by following way from my Linux Frame Buffer Driver. 

 

I have assigned DDR2 Memory address as my System RAM's Address insetad of actual PCIe DDR2 address and started to dump same resolution on frame buffer device which was completed within proper time. 

 

So, It seems like PCIe to DDR2 Memory write openrations becomes slow on high resolution video in my system. 

 

Regards, 

Ritesh Prajapati
0 Kudos
Reply