Newbie question about programming Altera Cyclone II in Quartus II - fpga

I bought a cheap board with Altera Cyclone II from ebay and want to start experimenting.
I created a simple program, after some research I managed to compile it and after flashing to the board the programming tool said it is 100% complete.
However the behaviour of the board has not changed since the time I first plugged the power supply in(three onboard LEDs are blinking).
It looks like the program has not been loaded to the board.
I don't know what I did wrong.
Any ideas? I am completely new to FPGAs. Thank you

Normally the configuration stream is written into fpga sram, and it won't live across the power cycle. If you want that configuration be "permanent", write it into on-board configuration flash chip.
Did you check with this short introduction: http://laurie.tech/start-fpga/ ?

Related

FPGA to PC data transfer with PCI EXPRESS

I'm using the VC707 Fpga board which include a Virtex 7 Xilinx FPGA.
I want to transfer the Data from the DDR 3 memory to a PC via the PCIexpress.
Is there any tutorial that exist to do so?
I have been nreading this tutorial https://www.xilinx.com/support/documentation/boards_and_kits/vc707/2014_4/xtp207-vc707-pcie-c-2014-4.pdf
But it isn't that helpful
Thanks
Your question is missing some information, for example you don't tell us how the data gets into the DDR memory. I'll leave that for now.
You want to have an FPGA with DDR and PCIe. Both are very high speed interfaces and require a good understanding of electronics. You are using a commercial board so we can assume the board has been proven to work with DDR and PCIe.
You first need to make an FPGA with these interfaces. Thus you have to make a DDR block and and a PCIe block. Xilinx has done most of the work but you have to drive the tools to fill in the detail. That is what the tutorial is about.
Some Virtex-7 chips have a ready built PCIe block, but not all. What I have seen, none has a ready built DDR interface. There may be an similar tutorial how to make a DDR interface.
If you manage to work your way through that you have two individual blocks of logic. You then need the HDL skills to connect those up.
If you are lucky both blocks work. If, for some reason, they do NOT work the above mentioned knowledge of high speed interfaces and electronics must be applied as well as ho to debug an FPGA system.
Last but not least you have to write PCIe device drivers on your PC to access all what you have built.
My question about the tutorial was to assess your skills in FPGA and HDL. What you want to achieve requires experience and knowledge with FPGAs, HDL design and the Xilinx tools. If your have not worked with FPGA, HDL, Xilinx before you have two options:
First spend a few weeks/month to get more experienced in those fields.
Find somebody who has that experience already to do the most difficult work for (with?) you.

Using Raspberry Pi instead of Atmel SAMA5D3

I intend to pursue this course from Free-Electrons (https://free-electrons.com/training/embedded-linux/) as a self-learner. They use Atmel SAMA5D3 Xplained board. My question is: can I use Raspberry Pi 3 instead of the Atmel board for completing the labs? If yes, would it be too much effort for someone who is almost a newbie in this field?
A comparison between the two boards can be found here (in Italian): http://www.campana.vi.it/blog/confronto-raspberry-pi3-beaglebone-black-sama5d3-xplained/. Rasp Pi3 seems to win in almost every respect, except for the number of GPIO pins and the price of Pi is around £30 vs £79 for Atmel (checked today). I'd really love it if the Pi could be used for this course.
Thanks in advance for any help.
As sawdust stated, the main parts that will differ are the u-boot and kernel labs because they are specific to the SoC and board. They may not be so easy to adapt. The main issue is that they are all about getting a system booting on the platform so the followings labs depend on them.
The buildroot lab will differ a bit because of the different SoC but is way easier to adapt. Also, you won't be able to do the "Filesystems - Flash file systems" lab at all because the RPi doesn't have any NAND flash. That is one of the main reason why we are using the SAMA5D3 Xplained.

programming IC recycled from electronic wastes

I have a usb modem with MT6272M chipset, can I take out its chipset and program it? I know that some ICs are programmable and some are not but I really want to program an IC without investing on arduino, rhasberry pi, or intel gallileo so trying to recycle electronic wastes.
Most of the ICs in the electronic waste are not programmable. Because they are specifically designed to do one job efficiently and that program is bound to the IC.
What you are searching is Programmable Integrated Circuit or Micro-controller chips. These are specifically designed to re-program again and again.
Anyhow if you find a specific Integrated Circuit from the waste,
First and most importantly, find its data-sheet (mostly available
in their manufacturer's website for free).
check whether is it a Programmable Integrated Circuit.
if yes, what is the hardware requirement to program it and build the
hardware circuit
write the program according to the specific requirements using
compatible libraries.
connect to the PC
Find the correct boot loader and upload it to the IC.
upload the program, which you have written, to the Programmable Integrated Circuit.
Test it
As you can see, you will need to build different hardware for different Programmable Integrated Circuit. So it is cheaper for you to buy arduino or raspberry circuit board. Then you can reprogram more chips using same board again and again plus the help of the community and the thousands of libraries.
Edit
If it is not mentioned in the datasheet whether you can program it or not , most probably it can't reprogram.
And other thing is that the main function of a modem is signal processing. For example, old cable modems are converting analog signals into digital signals. So they are not designed to reprogram or to do logical calculations. With my personal experience, you better start with a simple micro-controller and once you know the basics, you can go for higher level. Anyway I admire your idea to recycle the waste ICs.

Distributable fpga design

I'm new to fpga programming, and I'm wondering how to make my fpga design distributable. Here's the scenario I have in mind. I have a network of computers, each deployed with an fpga based peripheral. I want to update the fpga design on the peripherals periodically. How do I accomplish this without spending a fortune on software licenses?
I have a small dev kit for an fpga that shipped with an executable to load example design files (it was an Altera fpga FYI). Does anyone know how I would create such an executable?
Some specifics:
My fpgas are Xilinx Spartan 6Es. I'm using Xilinx ISE for fpga development. The host computers are running debian linux.
Thanks for any and all advice!
If youre dealing with Altera: one computer would have the software tools and licenses needed to synthesize the project. Assuming all the FPGAs are the same model on each station/node, Quartus will generate an .sof file which you can copy and open from station to station. All you would need to do is download the Altera programmer tool (I believe you can download it separately from Quartus II) on each station which is free. Then upload the .sof to the board using the programmer, where you can permanently store it on the fpga prom using a technique similar to the following:
https://m.youtube.com/watch?v=ZrMe8JS7Ktk
However if you have Xilinx and Altera mix, Xilinx has .bit/xdl files, and uses another tool (impact) to upload their bitstreams. They can't be converted to and from bit and sof. So it's recommended that you probably stick to one make (Xilinx or Altera) and model based on your plans.
It looks like what you are looking for is how to make your FPGA's field upgradable. Assuming your FPGA is loading from an external memory such as an SPI flash chip, then you need to modify your design so that it is capable of writing to the SPI chip (or whatever) itself. This is most simply done by putting a register in your design which maps to the individual pins on the flash chip, and then "bit bang" the register from a connected computer. Assuming your FPGAs feed data into your own software running on the computer, then you would modify this software to have the functionality of manipulating this register to reflash the flash device. Obviously, if this goes wrong you bricked your device until it can be flashed again with the JTAG, but it provides a way for all the devices to get updated in the systems they operate without needing to buy a JTAG cable for every single station.
If you have Ethernet on your board you can use the remote programming tool from fpga-cores.
Then you can remote login to the network and program the FPGAs or mail the new config file to you customer and they run the programmer. This is how we remotely updates our boards.
Spartan 6 is supported. As a bonus you can also do some remote debugging with the remote logic analyzer.
Everything is free for non commercial use.

Obsolete Xilinx Chip

My company is trying to build a pcb with an obsolete xilinx fpga (XC3042A) which is part of the XC3000 series chips. Does anyone have any experience programming the data to the chip? I'm looking for what software, hardware, etc. people have used.
I have programmed old Xilinx chips (XC4010XL) using a custom built interface to the ISA bus.
I used Turbo-C on a DOS box and a home-made ISA card with '245 (bidir transceiver) and a 74LS74 (dual flip flop D) for strobe signals on a slave parallel configuration.
It is not difficult to implement the same using a parallel port, for instance.
You should be able to find the programming specs from the Xilinx website. They provide documentation on the different methods used in programming their FPGA. It should be in their AppNotes. They have several modes - typically slave serial or select map (parallel). That means some sort of SPI flash, or parallel flash, or JTAG.
If you look around, you may find schematics for a DIY programming cable too! You can also interface a small micro, say a 8-bit PIC to handle the programming specs while you design your own custom interface to it or interface it to a SD card or something else.
The current Xilinx tools and cables will program old parts.
The XC3000 series does not use the JTAG interface, so you can not use the Xilinx programmer to download your configuration.
You can do so by either using an external EPROM or an embedded processor to download the code.
Take a look at this applications note from Xilinx:
http://www.xilinx.com/support/documentation/application_notes/xapp090.pdf
For daisy chain:
http://www.xilinx.com/support/documentation/application_notes/xapp091.pdf
It describes the data format as well as signal info for downloading the configuration file to the FPGA.
You can use older version of the Xilinx programmer from their web site and configure the devices, I believe the last version of the xilinx supporting the 3000 series was version 8 but I am not sure.
Check out FTDI. You might be able to convince them to go with some updated hardware. It's currently $150 CAD for USB + FPGA, and $80 CAD extra if you bundle it with a Manual. Plus shipping.
It even supports the free web kit available from the Xilinx website.

Resources