FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP

scaler problem

Altera_Forum
Honored Contributor II
6,350 Views

Hi, I have another problem about scaler, it's right that adding a control port to scaler makes the input resolution changable, but some resolution doesn't work. 

My data path is listed below. 

Clocked Video Input(CVI) -> Scaler(SCL) -> Frame Buffer(FB) -> Mixer(with Test Pattern) -> Clocked Video Output(CVO) 

The settings of SCL please see the attachments  

During run-time, I changed the output size of scaler to 1024x768, and I started to change the input resolution, all the resolutions above and include 800x600 worked pretty fine. But when I set the resolution below 800x600, like 720x480 or 640x480, it flickered badly. 

Any reply is appreciated!
0 Kudos
32 Replies
Altera_Forum
Honored Contributor II
734 Views

Hi, 

 

I reconfigured the Scaler component for its default settings with 4 taps, the behaviour is the same. Upscaling to 1600x1200 works for input resolutions greater then 800x600, but not for anything below 800x600.  

 

The frame buffer is configured for triple buffering. 

 

Any other ideas? 

 

I've seen people using a pipeline bridge between the frame buffer and the scaler, is this something of value? 

 

Thanks, 

Mike
0 Kudos
Altera_Forum
Honored Contributor II
734 Views

Hi Everyone, 

 

Just wanted to provide some status for the scaler problem at 800x600 -> 1600x1200 scaling. I replaced the CVI with a test pattern unit and still have the same problem. 

 

The video path is the following: 

TP@800x600x60Hz -> SCALER -> FRAMEBUFFER -> CVO 

 

The following scaling tests: 

 

800x600 -> 1024x768 OK 

800x600 -> 1280x1024 OK 

800x600 -> 1600x1200 Broken!! 

 

It looks like the problem is in either the frame buffer or the CVO. Can one of the Altera guru's please provide some guidance here??? It's looking like a throughput issue post-scaler, what parameter would make sense to change in the CVO & Frame Buffer?? 

 

Thanks, 

Mike
0 Kudos
Altera_Forum
Honored Contributor II
734 Views

If all configurations are OK, maybe you have memory bandwidth problem?  

The frame buffer need to access the memory much more frequently at 1600 x 1200 then in 1280 x 1024. 

At 1600 x 1200 x 24bit x 60Hz input & output to the frame buffer you need very high memory bandwidth. 

 

Can you give us the details of the SDRAM (DDR) you are connecting to the FB?
0 Kudos
Altera_Forum
Honored Contributor II
734 Views

You may have done that step already but before you start looking at memory bandwidth issues you should probably try whether the following is working to rule out issues with the CVO: 

 

TPG@1600x1200 -> CVO
0 Kudos
Altera_Forum
Honored Contributor II
734 Views

 

--- Quote Start ---  

If all configurations are OK, maybe you have memory bandwidth problem?  

 

The frame buffer need to access the memory much more frequently at 1600 x 1200 then in 1280 x 1024. 

At 1600 x 1200 x 24bit x 60Hz input & output to the frame buffer you need very high memory bandwidth. 

 

 

Can you give us the details of the SDRAM (DDR) you are connecting to the FB? 

 

--- Quote End ---  

 

 

Thanks for the feedback, 

 

Attached please find settings for the SDRAM. 

 

Please let me know if any more info is needed. 

 

Thanks, 

Mike
0 Kudos
Altera_Forum
Honored Contributor II
734 Views

 

--- Quote Start ---  

You may have done that step already but before you start looking at memory bandwidth issues you should probably try whether the following is working to rule out issues with the CVO: 

 

TPG@1600x1200 -> CVO 

--- Quote End ---  

 

 

Yes, I've tried this, in the following video configuration: 

 

CVI -> SCALER -> FRAMEBUFFER -> CVO 

 

along with following configurations using the above path: 

 

1280x1024 Scaled to 1600x1200: Working. 

1024x768 Scaled to 1600x1200: Working. 

800x600 Scaled to 1600x1200: Broken! 

 

I think the CVO is ok as I've managed to push pretty much every resolution through without issue. 

 

Thanks, 

Mike
0 Kudos
Altera_Forum
Honored Contributor II
734 Views

>1280x1024 Scaled to 1600x1200: Working. 

>1024x768 Scaled to 1600x1200: Working. 

>800x600 Scaled to 1600x1200: Broken! 

 

Sorry, I missed that bit from your first post. This seems to indicate that the issue is not with the frame buffer either since you have successfully buffered 1600x1200 before.
0 Kudos
Altera_Forum
Honored Contributor II
734 Views

 

--- Quote Start ---  

>1280x1024 Scaled to 1600x1200: Working. 

>1024x768 Scaled to 1600x1200: Working. 

>800x600 Scaled to 1600x1200: Broken! 

 

Sorry, I missed that bit from your first post. This seems to indicate that the issue is not with the frame buffer either since you have successfully buffered 1600x1200 before. 

--- Quote End ---  

 

 

Hey no problem, more info: 

 

18,000 pixels for the CVI input FIFO and 1920 pixels for the CVO FIFO (starts at 1919). I'm monitoring overflow and underflow and they seem to be ok when in 800x600 -> 1600x1200 mode.  

 

I'm defintely open to trying anything here as I've been stuck on this problem for over a week now :)
0 Kudos
Altera_Forum
Honored Contributor II
734 Views

Hello Mike,  

Can you give us more information regarding the Scaler: 

The Scaler clock?  

The number of bits per component (R, G, B )?  

The bus to the Scaler - parallel or serial? 

 

BR,
0 Kudos
Altera_Forum
Honored Contributor II
734 Views

 

--- Quote Start ---  

Hello Mike,  

 

 

Can you give us more information regarding the Scaler: 

The Scaler clock?  

The number of bits per component (R, G, B )?  

The bus to the Scaler - parallel or serial? 

 

 

BR, 

 

--- Quote End ---  

 

 

Hi Reuven, 

 

The scaler clock is 200MHz. 24 bit (8 per component RGB ). The bus in/out of the scaler is parallel. 

 

Thanks, 

Mike
0 Kudos
Altera_Forum
Honored Contributor II
734 Views

200MHz should be OK for parallel.

0 Kudos
Altera_Forum
Honored Contributor II
734 Views

Hi All, 

 

Just wanted to provide an update. It appears as if the logical function of the video path is good, e.g. I can trace a pixel through the system and have it come out of the CVO when doing the 800x600 -> 1600x1200 scaling. The external device that translates the CVO (FPGA Output) to a 1600x1200 capable monitor seems to be seeing something different in this particular scaling mode, although at this time I cannot determine exactly what that is signal integrity wise. I suspect this may be because of FPGA timing problems, or, an output drive problem.  

 

Thanks, 

Mike
0 Kudos
Reply