Reading an image to FPGA from PC and Back - image

I need to read a small image (tif format) from PC to FPGA kit (ALTERA DE2-70) for processing, then write it back to PC. I have no idea how to do it in Verilog?
Can it be done in C? if so, how can I combine my C/HDL code to work together?
Thank you!

a few mounts ago i were having the same problem, but i wanted to send and receive a real time image. back then i was researching and the best (fast an chip) solution that i find was the XEM6001 of opalkelly. http://www.opalkelly.com/products/xem6001/
specify controller (Cypress cy68013a) that handle all the communication on a 36 MBytes/second between the PC and FPGA in USB.
and API (Application Programmer's Interface) in C, C++, C#, Ruby, Python, and Java. the price 200$. ---odsa---

Related

Esp32 at command customization method

I want to use AT command with separate coding in esp32 at Arduino IDE. However, if you flash AT command firmware and upload another code from Arduinoide, the existing at command will not be available. Is there a way to use it together?
What you're asking doesn't make any sense. The ESP32 can run a single program that's stored in its flash memory. It's not capable of running two firmware images at the same time. If it's running the AT firmware, it's not running an Arduino program, and vice versa.
You also do not need to talk to the AT firmware from an Arduino program running on the ESP32; the Arduino program is capable of directly doing much more than the AT firmware offers.
You might possibly be able to build a single firmware image that included both the AT firmware and an Arduino program, but it would be a great deal of work and would likely never work well if at all. Most of the AT firmware is released as compiled binaries, not source, so you would have little chance of customizing it or making it work in a hybrid environment.
You'd be much better off to reconsider why you think you need to do this and find a better solution.

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.

How do I write an OSX device driver for a USB WiMax modem?

I am planing to spend few days a week writing a driver for a Greenpacket USB WiMax modem. Greenpacket only provides Windows driver with it and as I am fond of Linux and Mac I feel very bad not having driver for them.
I have experience writing C++ programs so I think it won't be hard for me. Even I like C++ programming very much. I have never written drivers but I know some concepts. I have PDF of the device specification from the company's website.
I would like to ask if I can write driver with that provided specifications? If yes what would be my starting point assuming I would like to write it for MAC first and then Linux. I am reading this article right now but your experiences would be of great help.
The product specifications sheet does not provide enough data to write a device driver. You are going to need low-level information about how to speak with the WiMax device via USB. You are probably also way out of your depth of you think a product sheet is enough information to write a device driver.

Accessing an Ethernet or USB port

Good Afternoon,
This post is to ask for ideas on which programming language for Windows Vista you would suggest for accessing raw data from an Ethernet port or a USB port. My strength is in micro-controllers. I have a project underway where the 32-bit micro-controller is the last processing device in a software defined radio. The micro has the capability to output digitized signals over a USB port or an Ethernet port. I would like to use the PC as a plotting tool to display the raw digitized sound as a waveform on the screen and possibly play the sound on the sound card output. Also, I will be creating FFT spectrum data, either in the 32-bit micro or in the PC, if the software is fast enough, for spectrum display on my laptop.
I have past experience with older VB. In my last project, I used a simple basic program (JustBasic) to send control data via a USB/RS232 device to a micro-controller. This interface is certainly not fast enough for this project. Additional future features would be to use the Ethernet or USB to control real time features i.e. filter frequencies, FFT size and sample rates in the micro-controller. Any help is appreciated.
Microsoft provides the Raw Input API to get data straight from a USB device. You could use C# to access the port (see here), or any other .NET language. You could also use C or C++ (see here).

Resources