Forum Discussion
Altera_Forum
Honored Contributor
15 years agoAltera Stratix4 GX Dev Kit 530 vs Terasic DE4
Hi all,
I need some inputs. I am looking for a dev kit of Stratix 4 to interface with wireless RF I/O link, saving to storage through SATA port and getting input from ADC (HSMC) in real time. Question 1: I have a question. The Altera one cost about $8000 whereas Terasic's is $3000. Apart from a few differences in specs, Terasic's one has include more feature such as SATA ports. Is there any reason? Question 2: For DE4, is there any free IPCore (Nios, Sata etc.) included or we have to purchase Quartus II, Modelsim, preferred IP cores seperately? How about Altera dev kit in this case, they included in the bundle which mark up the price? It is because I can see Altera Dev Kit is not bundle with any other hardware except the main kit only. So perhaps DE4 is a better choice. Any suggestion? Thanks.21 Replies
- Altera_Forum
Honored Contributor
I am not sure the qualities of the Host and client in USB. If you want the FPGA to act as a storage device and be connected to a host, then you will want a device core. If you plan on accessing a SATA storage device, such as a SATA drive, then you will want a Host core. Please let me know if you have any further questions.
- Altera_Forum
Honored Contributor
--- Quote Start --- Sorry I am not fully understand this. The timestamps come in a combination of Alphabets and Numbers. I thought ASCII has the least bits to represent them. How do they occupies less BW if using binary form? for example, "A" and "3" are decimal 63 and 51 in ASCII table. They are in text form when being sent to FPGA. Then what should I print in the storage device to save bandwidth? --- Quote End --- Time stamps do not have to be ASCII. You can store an accurate timestamp using a single 32-bit integer, and an even more accurate timestamp using a 64-bit integer. For example, in some of my designs I have version and timestamp generics that get passed down to read-only status registers. Software can then report the hardware version, and its build timestamp. Using the Cygwin/Linux date command you can get:
or in pure Tcl# Build timestamp set timestamp
Read the Linux man pages or the Tcl pages for the formatting, and commands to convert the 32-bit value back into a timestamp string. Your binary data format should have a definition document. The format might be something like: 1) Endian flag 2) 32-bit timestamp 3) Sampling frequency 4) Sample bit width 5) Number of samples 6) Sample data If you do not put an endian flag in the data format, then you must define the binary data format as big-endian-only or little-endian-only. So that different machine architectures will know how to read the binary files. I use CORBA Common Data Representation (CDR) for my binary data formats. The ACE C++ library has stream encode and decode functions. The binary data format is used for passing data between clients and servers, and for writing binary data files. --- Quote Start --- Oh, now I get it. However, I do not use a filter. I am sampling the raw analog into FPGA to analyse the voltage level of sampled pulses, regardless to what the source is streaming. I should say it at the beginning that my system is not Audio/Video system. It is a monitoring system which will sample whatever kind of random noise/transients waveforms or pulses from a constant low frequency line. This is the reason I will shift to higher ADC frequency incrementally after the first design. --- Quote End --- You need to check what the signal looks like with a wide bandwidth oscilloscope or spectrum analyzer. Your ADC may have a wider input bandwidth than your sampling rate, and if it does, then signal will alias into the digital baseband produced by the ADC. This may corrupt your results. If you are only interested in signals up to 200MHz (for a 400MHz clock rate), then you should really have a 200MHz low-pass filter. Cheers, Dave# Build timestamp# - Tcl returns the same as set timestamp - Altera_Forum
Honored Contributor
--- Quote Start --- If you store a 32-bit hex value as the 8 ASCII characters "12345678", it uses more bits than storing the binary data directly. Each ASCII character requires 8-bits to represent, whereas the character represents only 4-bits of the number you are storing. The binary file will be half the size of an ASCII file. --- Quote End --- Sorry I am not fully understand this. The timestamps come in a combination of Alphabets and Numbers. I thought ASCII has the least bits to represent them. How do they occupies less BW if using binary form? for example, "A" and "3" are decimal 63 and 51 in ASCII table. They are in text form when being sent to FPGA. Then what should I print in the storage device to save bandwidth? --- Quote Start --- I understand, but my question was what is the exact bandwidth you are sampling. If you are sampling a signal at 400MHz, you will have to filter it first with analog filters. Its unlikely you can get extremely sharp analog filters, so you will sample some bandwidth that is aliased, or has low signal. This part of the bandwidth can be digitally filtered, and the signal can then be re-sampled to a lower data rate. The re-sampled data can then be stored. This will save you bandwidth. --- Quote End --- Oh, now I get it. However, I do not use a filter. I am sampling the raw analog into FPGA to analyse the voltage level of sampled pulses, regardless to what the source is streaming. I should say it at the beginning that my system is not Audio/Video system. It is a monitoring system which will sample whatever kind of random noise/transients waveforms or pulses from a constant low frequency line. This is the reason I will shift to higher ADC frequency incrementally after the first design. --- Quote Start --- Altera provides simulation versions of their IP. If you can get Modelsim working for your design, then you need to synthesize and check that the device has enough logic and can meet timing. I'd recommend incrementally testing (simulate plus synthesize) each interface, and obtain a logic estimate at each stage. Then as you start to integrate the system, you will have an expectation of logic usage. If each subsystem meets timing, then the whole system should meet timing too. --- Quote End --- This is exactly what I have in mind but unsure. With your words, now it is confirmed. hooray~ Rgds, Wai Siang - Altera_Forum
Honored Contributor
--- Quote Start --- origianlly the timestamp is in ASCII. How do we save in binary bits that occupies less bandwidth? --- Quote End --- If you store a 32-bit hex value as the 8 ASCII characters "12345678", it uses more bits than storing the binary data directly. Each ASCII character requires 8-bits to represent, whereas the character represents only 4-bits of the number you are storing. The binary file will be half the size of an ASCII file. --- Quote Start --- There are 3 operating mode in my design plan. The ADC input is 400MSa/s. The FPGA route the sample to the DDR3 in realtime. Then write to SATA HDD in max speed that the HDD supports (apparently it is at data rate of SATA2/3). User may request remote download through wireless link, then FPGA will read from SATA and send over the wireless module (wireless eva kit is usually at USB rate). --- Quote End --- I understand, but my question was what is the exact bandwidth you are sampling. If you are sampling a signal at 400MHz, you will have to filter it first with analog filters. Its unlikely you can get extremely sharp analog filters, so you will sample some bandwidth that is aliased, or has low signal. This part of the bandwidth can be digitally filtered, and the signal can then be re-sampled to a lower data rate. The re-sampled data can then be stored. This will save you bandwidth. --- Quote Start --- The system has different features integrated altogether in an FPGA. It may not synthesizable even it is working in ModelSim. Isnt Quartus 2 only works with hardware? --- Quote End --- Altera provides simulation versions of their IP. If you can get Modelsim working for your design, then you need to synthesize and check that the device has enough logic and can meet timing. I'd recommend incrementally testing (simulate plus synthesize) each interface, and obtain a logic estimate at each stage. Then as you start to integrate the system, you will have an expectation of logic usage. If each subsystem meets timing, then the whole system should meet timing too. Cheers, Dave - Altera_Forum
Honored Contributor
Oh thats ModelSim Altera Edition. I am not sure about license setup using Altera Edition... Check the support, but I am not sure why do You need two environment variables? Usually, LM_LICENSE_FILE is used only.
- Altera_Forum
Honored Contributor
--- Quote Start --- Did You install the license server after modelsim installation? --- Quote End --- License Server? Is that another software installer? I only install "11.0_modelsim_ae_windows.exe" and "11.0sp1_modelsim_ae_windows.exe". Then I create 2 env variables. So I need a License Server installer from Altera? My license link looks like this "[email protected]" - Altera_Forum
Honored Contributor
Did You install the license server after modelsim installation?
- Altera_Forum
Honored Contributor
--- Quote Start --- Probably web edition won't support Stratix devices and You'll need subscription edition. --- Quote End --- Yes, thank you. My place got the network license for full edition Modelsim too. But my Local Machine seems cant get through when running the ModelSim 6.6d. It always pop up an error message regarding MGSL_LICENSE_FILE and and LM_LICENSE_FILE. Then asking me to use the 'lmulti lmdiag' but I failed to find this exe. I did setup the environment after this but still not working. I wonder what's wrong to my environment variable and I do not know where to get help on this issue. - Altera_Forum
Honored Contributor
Probably web edition won't support Stratix devices and You'll need subscription edition.
- Altera_Forum
Honored Contributor
--- Quote Start --- Ok, that makes sense. However, the wireless link does not have to be part of the FPGA design, it only needs to be part of the node design. If each node is a PC with an FPGA card and a WiFi card plugged into it, then all you need to find is an appropriate WiFi PCIe card, and drivers. Just because an FPGA *could* be used for the WiFi, does not mean it should be. FPGAs are expensive, PCs are cheap, use the PC and as much commercial hardware where you can, and only build custom hardware where you have to. Does each processing node have to use 6 ADCs? --- Quote End --- Initially I will experiment only an ADC with a Dev Kit. There will be 6 ADC channels at maximum in final customised board, by reassigning the transceiver as you suggested. --- Quote Start --- Ok. But don't use a text file, use a binary file, otherwise you are wasting bandwidth :) --- Quote End --- Agree. origianlly the timestamp is in ASCII. How do we save in binary bits that occupies less bandwidth? --- Quote Start --- What are the *exact* frequency requirements of your system? Your system should only store exactly the bandwidth needed for each operating mode. --- Quote End --- There are 3 operating mode in my design plan. The ADC input is 400MSa/s. The FPGA route the sample to the DDR3 in realtime. Then write to SATA HDD in max speed that the HDD supports (apparently it is at data rate of SATA2/3). User may request remote download through wireless link, then FPGA will read from SATA and send over the wireless module (wireless eva kit is usually at USB rate). --- Quote Start --- What sampling frequency and how many bits? National semiconductor has 3GHz clock rate parts, e2v have 5GHz parts, etc. --- Quote End --- 14bits and 400MSamples per second at my first wishlist. So 5.6Gbps in total. --- Quote End --- Before buying too many licenses, check that the system design will work correctly. --- Quote End --- If Stratix 4 has been proven to drive the features aforementioned (i.e. digital interfaces), is it possible that the system design will still fail? It worries me . --- Quote Start --- I suspect you need Quartus to synthesize for the Stratix IV device. I doubt that you need the full edition of Modelsim; try the web edition first. --- Quote End --- Yes, agree. The system has different features integrated altogether in an FPGA. It may not synthesizable even it is working in ModelSim. Isnt Quartus 2 only works with hardware? Rgds, WaiSiang