Author Topic: [FPGA] From zero to DVB parsing  (Read 8004 times)

0 Members and 3 Guests are viewing this topic.

Offline jack burtonTopic starter

  • Contributor
  • Posts: 19
  • Country: it
[FPGA] From zero to DVB parsing
« on: February 12, 2019, 08:54:06 am »
Hi all,

I'm looking for a good tutorial to start my first project in fpga world.
I've never used fpga and i don't know vhdl.
My goal is to parse a dvb stream to retrieve some informations about sats pointed by a motorized dish.
But this is the final goal, my first need is to start with the right step..
Someone told me to use xilinx spartan, but i have no idea about the performance of an fpga, i don't need to buy now the same fpga i'll use for my project,
but at least keep using same ide and same family.
There are too much options, too much parameters... and i'd like to have some suggestions to make my first step.
Thank you.

Ciao all !
 

Offline JacobPilsen

  • Regular Contributor
  • *
  • Posts: 149
  • Country: cz
Re: [FPGA] From zero to DVB parsing
« Reply #1 on: February 12, 2019, 07:01:47 pm »
 

Offline Scrts

  • Frequent Contributor
  • **
  • Posts: 799
  • Country: lt
Re: [FPGA] From zero to DVB parsing
« Reply #2 on: February 12, 2019, 07:19:50 pm »
Hi all,

I'm looking for a good tutorial to start my first project in fpga world.
I've never used fpga and i don't know vhdl.
My goal is to parse a dvb stream to retrieve some informations about sats pointed by a motorized dish.
But this is the final goal, my first need is to start with the right step..
Someone told me to use xilinx spartan, but i have no idea about the performance of an fpga, i don't need to buy now the same fpga i'll use for my project,
but at least keep using same ide and same family.
There are too much options, too much parameters... and i'd like to have some suggestions to make my first step.
Thank you.

Ciao all !

I've used Altera Cyclone III & V for MPEG-TS processing. Do you want to analyze the stream coming from DVB-S/S2? At analog level or digital packets?
 
The following users thanked this post: jack burton

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9937
  • Country: us
Re: [FPGA] From zero to DVB parsing
« Reply #3 on: February 12, 2019, 07:33:22 pm »
I don't know anything about your application so I can't even begin to think about data rate.  Faster rates require faster chips which will, oddly, cost a lot more money!

fpga4fun.com may be interesting for you.

There is a concurrent thread and you might check out my reply #7

https://www.eevblog.com/forum/beginners/online-fpga-simulator/

I talk about a couple of my favorite boards.

 
The following users thanked this post: jack burton

Online ebastler

  • Super Contributor
  • ***
  • Posts: 7132
  • Country: de
Re: [FPGA] From zero to DVB parsing
« Reply #4 on: February 12, 2019, 07:38:49 pm »
This forum's own Mike Field (hamster_nz) has a very nice set of pages.
Maybe not a systematic tutorial, but many great ideas and examples!
http://hamsterworks.co.nz/mediawiki/index.php/FPGA_Projects

Including e.g. HDMI output and capture:
http://hamsterworks.co.nz/mediawiki/index.php/HDMI_Capture
 
The following users thanked this post: jack burton

Offline jack burtonTopic starter

  • Contributor
  • Posts: 19
  • Country: it
Re: [FPGA] From zero to DVB parsing
« Reply #5 on: February 13, 2019, 10:21:13 am »
I don't know anything about your application so I can't even begin to think about data rate.  Faster rates require faster chips which will, oddly, cost a lot more money!

fpga4fun.com may be interesting for you.

There is a concurrent thread and you might check out my reply #7

https://www.eevblog.com/forum/beginners/online-fpga-simulator/

I talk about a couple of my favorite boards.

Hi,
i don't need to analyze or decode video stream, i have just to extract  PID, NIT, PMT (ecc..) tables from TS in order to detect a given satellite...

 

Offline Wiljan

  • Regular Contributor
  • *
  • Posts: 230
  • Country: dk
Re: [FPGA] From zero to DVB parsing
« Reply #6 on: February 13, 2019, 12:07:03 pm »
Hi
Don't know what receiver you do use, but if it's on Linux there is a software called "dvbsnoop" which will give you the info you can expect. http://dvbsnoop.sourceforge.net/

If you want to go the FPGA way it might be wort to have a look here https://www.netup.tv/en/headends/unicard you will find open source for FPGA here https://github.com/aospan/NetUP_Dual_Universal_CI-fpga

Here is a small info on state machine to extract the most base info from the ts http://dpi-proceedings.com/index.php/dtcse/article/download/18953/18449

On the other hand it sound like you want to build is what are in many newer Satfinder boxes for low money
 

Offline jack burtonTopic starter

  • Contributor
  • Posts: 19
  • Country: it
Re: [FPGA] From zero to DVB parsing
« Reply #7 on: February 13, 2019, 02:20:11 pm »
Hi
Don't know what receiver you do use, but if it's on Linux there is a software called "dvbsnoop" which will give you the info you can expect. http://dvbsnoop.sourceforge.net/

If you want to go the FPGA way it might be wort to have a look here https://www.netup.tv/en/headends/unicard you will find open source for FPGA here https://github.com/aospan/NetUP_Dual_Universal_CI-fpga

Here is a small info on state machine to extract the most base info from the ts http://dpi-proceedings.com/index.php/dtcse/article/download/18953/18449

On the other hand it sound like you want to build is what are in many newer Satfinder boxes for low money

We are trying the fpga way because years ago my company chose to use a windows pc with technisat dvb-s cards, and we are dealing with components obsolescence, drivers/os, etc, and year after year it is always worse ,  it's getting harder to replicate the same product.
FPGA is a technology we have wanted to learn for years and this could be the right opportunity to begin.
 

Offline TimCambridge

  • Regular Contributor
  • *
  • Posts: 98
  • Country: gb
Re: [FPGA] From zero to DVB parsing
« Reply #8 on: February 14, 2019, 01:03:16 am »
You might find that starting with something like Python/MyHDL eases the learning curve. For sure it adds an extra bit of tooling, but you have less to worry about on the language front.

You write and simulate in Python, auto compile to VHDL or Verilog, then use the manufacturer's tools to generate a bitstream for your FPGA. Simulation is the biggest piece of the job.
 

Offline Scrts

  • Frequent Contributor
  • **
  • Posts: 799
  • Country: lt
Re: [FPGA] From zero to DVB parsing
« Reply #9 on: February 14, 2019, 02:36:07 pm »
I don't know anything about your application so I can't even begin to think about data rate.  Faster rates require faster chips which will, oddly, cost a lot more money!

fpga4fun.com may be interesting for you.

There is a concurrent thread and you might check out my reply #7

https://www.eevblog.com/forum/beginners/online-fpga-simulator/

I talk about a couple of my favorite boards.

Hi,
i don't need to analyze or decode video stream, i have just to extract  PID, NIT, PMT (ecc..) tables from TS in order to detect a given satellite...

Yes, I've done this. FPGA is a good solution for your application. Just remember that the table contents get updated and you also have to track the table version. You should also understand that there are many satellites, especially in east region, which do not adhere to DVB standards well and you will see some missing tables, missing data, bad padding, etc..
 

Offline hamster_nz

  • Super Contributor
  • ***
  • Posts: 2812
  • Country: nz
Re: [FPGA] From zero to DVB parsing
« Reply #10 on: February 15, 2019, 08:11:28 am »
Hi
Don't know what receiver you do use, but if it's on Linux there is a software called "dvbsnoop" which will give you the info you can expect. http://dvbsnoop.sourceforge.net/

If you want to go the FPGA way it might be wort to have a look here https://www.netup.tv/en/headends/unicard you will find open source for FPGA here https://github.com/aospan/NetUP_Dual_Universal_CI-fpga

Here is a small info on state machine to extract the most base info from the ts http://dpi-proceedings.com/index.php/dtcse/article/download/18953/18449

On the other hand it sound like you want to build is what are in many newer Satfinder boxes for low money

We are trying the fpga way because years ago my company chose to use a windows pc with technisat dvb-s cards, and we are dealing with components obsolescence, drivers/os, etc, and year after year it is always worse ,  it's getting harder to replicate the same product.
FPGA is a technology we have wanted to learn for years and this could be the right opportunity to begin.

I would be interested to hear how you get on with this.  Do you intend to be doing the RF work too (e.g. a tuner and a high speed ADC)? or do you already have a stream of samples or a data stream?

I worry will may run into the same problem with obsolescence with FPGA. It is a much harder wall when you can no longer get your FPGA, so you may need to have the design you are selling, plus the one with the later FPGA ready to go when the time is right. Fortunately most of the HDL should be the same...
Gaze not into the abyss, lest you become recognized as an abyss domain expert, and they expect you keep gazing into the damn thing.
 

Offline jack burtonTopic starter

  • Contributor
  • Posts: 19
  • Country: it
Re: [FPGA] From zero to DVB parsing
« Reply #11 on: April 09, 2019, 09:29:00 am »
Hi all,
i'm still alive after 2 months of intensive tests with customers, now i have time to breathe again...
so.. i'm going to buy a dev board to start approaching fpga world.
I'm oriented on Spartan6/7 board, something my purchase office can find easily on biggest suppliers like digikey, farnell, etc..

i've found ARTY S7-50 SPARTAN-7 that seems to have all the i/os and leds needed to complete an hello world project.

what do you think ?

Bye  :)
« Last Edit: April 09, 2019, 10:01:56 am by jack burton »
 

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9937
  • Country: us
Re: [FPGA] From zero to DVB parsing
« Reply #12 on: April 09, 2019, 02:54:54 pm »
I have a couple of the older Arty boards and they work fine.  However...  Notice how there is always a "However..."?

I prefer boards with a LOT of onboard gadgets like 7 segment displays, toggle switches, buttons, LEDs and so on.  I find they make debugging a lot simpler and the time they save makes up for the additional cost.

I like this board:

https://store.digilentinc.com/nexys-a7-fpga-trainer-board-recommended-for-ece-curriculum/

Now, I have no idea how much IO you need and I'll concede that PMOD headers are limiting.  In that regard, the Arty board has more headers.  And, of course, the Nexys-A7 board is $140 more money but my time is worth something.

And definitely the 100T version, not the 50T because more logic and more BlockRAM is always better than less.

You can play with Xilinx's HLS, write your project in C and have the tools translate it to VHDL (or Verilog).  I haven't done this but somebody must think it's a good idea.
 

Offline jack burtonTopic starter

  • Contributor
  • Posts: 19
  • Country: it
Re: [FPGA] From zero to DVB parsing
« Reply #13 on: April 09, 2019, 03:35:27 pm »
I have a couple of the older Arty boards and they work fine.  However...  Notice how there is always a "However..."?

I prefer boards with a LOT of onboard gadgets like 7 segment displays, toggle switches, buttons, LEDs and so on.  I find they make debugging a lot simpler and the time they save makes up for the additional cost.

I like this board:

https://store.digilentinc.com/nexys-a7-fpga-trainer-board-recommended-for-ece-curriculum/

Now, I have no idea how much IO you need and I'll concede that PMOD headers are limiting.  In that regard, the Arty board has more headers.  And, of course, the Nexys-A7 board is $140 more money but my time is worth something.

And definitely the 100T version, not the 50T because more logic and more BlockRAM is always better than less.

You can play with Xilinx's HLS, write your project in C and have the tools translate it to VHDL (or Verilog).  I haven't done this but somebody must think it's a good idea.


Hi,
i'm looking to another board instead, the basys-3 from digilent...
https://reference.digilentinc.com/reference/programmable-logic/basys-3/start?redirect=1

as i wrote before, at this stage i'm looking for a baic dev board to move first step in fpga..
 

Offline NorthGuy

  • Super Contributor
  • ***
  • Posts: 3249
  • Country: ca
Re: [FPGA] From zero to DVB parsing
« Reply #14 on: April 09, 2019, 03:54:18 pm »
i'm looking to another board instead, the basys-3 from digilent...
https://reference.digilentinc.com/reference/programmable-logic/basys-3/start?redirect=1

as i wrote before, at this stage i'm looking for a baic dev board to move first step in fpga..

I would create a list of what I need on the board and then would buy a minimal board which contains all the items from the list.
 

Offline asmi

  • Super Contributor
  • ***
  • Posts: 2839
  • Country: ca
Re: [FPGA] From zero to DVB parsing
« Reply #15 on: April 09, 2019, 04:16:13 pm »
I would create a list of what I need on the board and then would buy a minimal board which contains all the items from the list.
Or get a board with FMC connector (or some other hi-speed connector) which would allow to build a daughter board with whatever peripherals you want.
Or - my personal favorite - design and build the board yourself.

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9937
  • Country: us
Re: [FPGA] From zero to DVB parsing
« Reply #16 on: April 09, 2019, 06:57:59 pm »

Hi,
i'm looking to another board instead, the basys-3 from digilent...
https://reference.digilentinc.com/reference/programmable-logic/basys-3/start?redirect=1

as i wrote before, at this stage i'm looking for a baic dev board to move first step in fpga..

I have that board too!  Side issue:  I hate to think how much money I have tied up in boards...

It's a nice board and it has a few gadgets.  There aren't many PMOD connectors and there are no headers.  Make sure you can meet your IO requirements.

Do be aware that it comes with the 35T version of the FPGA which is smaller than the 50T version and a LOT smaller than the 100T versions.  Page 3 here:

https://www.xilinx.com/support/documentation/selection-guides/7-series-product-selection-guide.pdf

To learn basic VHDL stuff, the smaller chip will be fine.  But I like using the largest chip available just in case I get carried away.  And if you need BlockRam, there is a heck of a difference between the 35T and 100T.

I mostly play with CPUs and, when possible, I like to use BlockRAM to meet my memory needs.  I don't prefer to get involved with DDR or other off-chip technologies  if BlockRAM will meet my needs.

The Nexys board includes 128MB DDR2 and 16MB Cellular Ram (very helpful) while the Arty boards have 256MB of DDR3 memory.  The Basys board has no separate memory (AFAICT).  One of my projects uses the Cellular Ram as static memory for a CPU design.  That is so much cleaner than dealing the dynamic memory.

Lots of choices...
 

Offline jack burtonTopic starter

  • Contributor
  • Posts: 19
  • Country: it
Re: [FPGA] From zero to DVB parsing
« Reply #17 on: April 12, 2019, 09:55:32 am »

Hi,
i'm looking to another board instead, the basys-3 from digilent...
https://reference.digilentinc.com/reference/programmable-logic/basys-3/start?redirect=1

as i wrote before, at this stage i'm looking for a baic dev board to move first step in fpga..

I have that board too!  Side issue:  I hate to think how much money I have tied up in boards...

It's a nice board and it has a few gadgets.  There aren't many PMOD connectors and there are no headers.  Make sure you can meet your IO requirements.

Do be aware that it comes with the 35T version of the FPGA which is smaller than the 50T version and a LOT smaller than the 100T versions.  Page 3 here:

https://www.xilinx.com/support/documentation/selection-guides/7-series-product-selection-guide.pdf

To learn basic VHDL stuff, the smaller chip will be fine.  But I like using the largest chip available just in case I get carried away.  And if you need BlockRam, there is a heck of a difference between the 35T and 100T.

I mostly play with CPUs and, when possible, I like to use BlockRAM to meet my memory needs.  I don't prefer to get involved with DDR or other off-chip technologies  if BlockRAM will meet my needs.

The Nexys board includes 128MB DDR2 and 16MB Cellular Ram (very helpful) while the Arty boards have 256MB of DDR3 memory.  The Basys board has no separate memory (AFAICT).  One of my projects uses the Cellular Ram as static memory for a CPU design.  That is so much cleaner than dealing the dynamic memory.

Lots of choices...

Hi,
i received the basys 3 board right now..
i'll try to turn on a led following this book: https://www.mhprofessional.com/9781259837906-usa-digital-system-design-with-fpga-implementation-using-verilog-and-vhdl-group







 

Offline jack burtonTopic starter

  • Contributor
  • Posts: 19
  • Country: it
Re: [FPGA] From zero to DVB parsing
« Reply #18 on: April 12, 2019, 12:51:35 pm »
Hi,
i was looking on xilinx website for an IP to demux TS but as far as i've foud, it seems they have only modulators for mpeg/DVB
https://www.xilinx.com/products/intellectual-property.html
Just to understand, is it a too simple project to sell it as IP ?
 

Offline aandrew

  • Frequent Contributor
  • **
  • Posts: 277
  • Country: ca
Re: [FPGA] From zero to DVB parsing
« Reply #19 on: April 12, 2019, 01:20:00 pm »
The TS isn't that bad to parse out; I did some of this years (jeez almost a decade??) ago using off the shelf DVB-S2 demodulators that spat out an 8 bit bus with some control signals. Pulling that into an FPGA was just a matter of writing a state machine that understood the bus and then spat the data into a FIFO or out to ethernet or really anything.

I may have missed it, but I don't recall what you intend to do with the TS data. Will it be sent to a PC or an embedded MCU to do something useful with the "what's overhead" data?

Come to think of it, I bet you could make an FX2LP or FX3 understand the bus and emit a digital stream to the PC for processing.
 

Offline Psi

  • Super Contributor
  • ***
  • Posts: 10241
  • Country: nz
Re: [FPGA] From zero to DVB parsing
« Reply #20 on: April 12, 2019, 01:29:49 pm »
TSreaderlite is a useful free tool for viewing the TS data.
« Last Edit: April 12, 2019, 01:32:05 pm by Psi »
Greek letter 'Psi' (not Pounds per Square Inch)
 

Offline jack burtonTopic starter

  • Contributor
  • Posts: 19
  • Country: it
Re: [FPGA] From zero to DVB parsing
« Reply #21 on: April 12, 2019, 02:35:20 pm »
The TS isn't that bad to parse out; I did some of this years (jeez almost a decade??) ago using off the shelf DVB-S2 demodulators that spat out an 8 bit bus with some control signals. Pulling that into an FPGA was just a matter of writing a state machine that understood the bus and then spat the data into a FIFO or out to ethernet or really anything.

I may have missed it, but I don't recall what you intend to do with the TS data. Will it be sent to a PC or an embedded MCU to do something useful with the "what's overhead" data?

Come to think of it, I bet you could make an FX2LP or FX3 understand the bus and emit a digital stream to the PC for processing.

hi,
my goal is to obtain Provider, Satellite and signal level of a given transponder.
My input is a stream from a DVB-S decoder chip and my output is a uart to send info to an STM32 microcontroller.


 
 

Offline jack burtonTopic starter

  • Contributor
  • Posts: 19
  • Country: it
Re: [FPGA] From zero to DVB parsing
« Reply #22 on: April 12, 2019, 02:37:27 pm »
TSreaderlite is a useful free tool for viewing the TS data.

Thank you,
i remember i used TSreader a lot of years ago at the university when i was experimenting streaming from DVB cards to ip
 

Offline Scrts

  • Frequent Contributor
  • **
  • Posts: 799
  • Country: lt
Re: [FPGA] From zero to DVB parsing
« Reply #23 on: April 12, 2019, 06:00:31 pm »
The TS isn't that bad to parse out; I did some of this years (jeez almost a decade??) ago using off the shelf DVB-S2 demodulators that spat out an 8 bit bus with some control signals. Pulling that into an FPGA was just a matter of writing a state machine that understood the bus and then spat the data into a FIFO or out to ethernet or really anything.

I may have missed it, but I don't recall what you intend to do with the TS data. Will it be sent to a PC or an embedded MCU to do something useful with the "what's overhead" data?

Come to think of it, I bet you could make an FX2LP or FX3 understand the bus and emit a digital stream to the PC for processing.

hi,
my goal is to obtain Provider, Satellite and signal level of a given transponder.
My input is a stream from a DVB-S decoder chip and my output is a uart to send info to an STM32 microcontroller.

Do you really need FPGA for this? I'd say get a raspberry PI with USB DVB-S2 receiver:
https://www.linuxtv.org/wiki/index.php/Category:DVB-S2_USB_Devices

Then write a small app or script using LibDVB and extract that data.
https://linuxtv.org/docs/libdvbv5/
https://github.com/esurharun/libdvb

This should allow any data extraction you need from the PAT/PMT/NIT tables and push it over UART.
 

Offline jack burtonTopic starter

  • Contributor
  • Posts: 19
  • Country: it
Re: [FPGA] From zero to DVB parsing
« Reply #24 on: April 15, 2019, 09:44:18 am »
The TS isn't that bad to parse out; I did some of this years (jeez almost a decade??) ago using off the shelf DVB-S2 demodulators that spat out an 8 bit bus with some control signals. Pulling that into an FPGA was just a matter of writing a state machine that understood the bus and then spat the data into a FIFO or out to ethernet or really anything.

I may have missed it, but I don't recall what you intend to do with the TS data. Will it be sent to a PC or an embedded MCU to do something useful with the "what's overhead" data?

Come to think of it, I bet you could make an FX2LP or FX3 understand the bus and emit a digital stream to the PC for processing.


hi,
my goal is to obtain Provider, Satellite and signal level of a given transponder.
My input is a stream from a DVB-S decoder chip and my output is a uart to send info to an STM32 microcontroller.

Do you really need FPGA for this? I'd say get a raspberry PI with USB DVB-S2 receiver:
https://www.linuxtv.org/wiki/index.php/Category:DVB-S2_USB_Devices

Then write a small app or script using LibDVB and extract that data.
https://linuxtv.org/docs/libdvbv5/
https://github.com/esurharun/libdvb

This should allow any data extraction you need from the PAT/PMT/NIT tables and push it over UART.

Hi,
i want to learn fpga development, so i want to do it with fpga,
thank you for the links anyway !
bye !
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf