Posts

Posts mit dem Label "FPGA" werden angezeigt.

Actual State of ADS Project

So I had a little break because I'm in the middle of our Exam Phase. But I want to give you an Update about my Progress of the ADS Embedded Project ( I think I Need a nicer and shorter Project Name). DF2SOS Filter: The Filter itself is now working perfect there is no more noise as we have seen on the Floating Point Version. So Matlab and the FPGA Version were working identically. :-) I thought about making it more General. Actually the Coefficients were hard synthesized and could only get changed when you synthesize it new which is very time Consuming... So when I have enough Resources I would like to cut the code at the states of one DF2SOS "Module" and let it Loop through it. And the constants I will fetch from the Block RAM. The constants and number of Loops through the DF2SOS I will write over an extra PCIe Bar to my Device. I think that's quite a nice Approach to make it more General cause you just give the Constants to your User Program and you could ...

FPGA 50Hz Notch ... Second Version

Bild
Normally I wanted to Show you yesterday my results of the Filter Implementation, but I found no time so I will Show it today. Cause my Electrodes hadn't good contact you won't see a real ECG but you can see how it filters. Orange is the Original unfiltered Signal. Blue is the Signal filtered with the FPGA. Yellow the Signal filtered with Matlab. Matlab and the FPGA uses the same Coefficients so there's much more Noise from the FPGA. I thought I can reduce the Noise with double Floating Point Precision but that won't met my Timings. That let me come back to Fixed Point Arithmetic. So I made this evening a Fixpoint Version I used 25 Bits Precomma and 39 Bits Pastcomma. So in Sum I'm using 64 Bit Vectors and 128 for Multiplication. When I wrote it I used the STD_LOGIC_ARITH and STD_LOGIC_UNSIGNED librarys. When I simulated it first I hadn't get the right results so I thought about it and I realized that Unsigned is the wrong library I had to use ...

FPGA 50Hz Notch and 1-10Hz Highpass Filter Implementation

Bild
This Weekend I was working on implementing some Filters on the FPGA for my ADS Embedded Project. First I tried it with Fixed Point Arithmetic as I mentioned it in my previous Post. But after reading and trying a bit with it I decided to Switch to Floating Point cause I still have a working Floating Point Adder from a University Project and some thinking about it let's me Implement a working Floating Point Multiplier and the Integer to Floating Point Conversion Units. I don't think that I will release the Units here because I don't know about the licensing. But If you are interested in these Parts send me a mail and I will send you the Code you Need. After I tested them and removing some bugs I started to Implement my Filter. In my University I started to let Matlab create the Filters with the HDL Coder but it doesn't work pretty well and take much resources, because I don't optimized it well in the Settings. But the Simulink Models I created for that we...

ADS1299 Embedded System Intro

So actually I'm working on an Embedded Linux System which will read and Process Data from an TI ADS1299 ECG/EEG Frontend Chip. The Hardware of the System is a NXP i.MX6 Dual Core Processor with 2GB of RAM. So I bought a System on Module from Solid-Run, because I have no Experience in designing a Embedded System and I think it would be too expensive to develop and produce it only for my own purposes. So I only made the Baseboard for the SOM. It was also my first design with KiCAD, so I made some mistakes on it. But it works pretty good and the things I need are ok. To Access the ADS1299 I made also a custom board connected with a Hirose DF40 Connector. I Access the ADS over a Artix-7 with PCIe. Using PCIe allows me to Access it easily over Memory Mapping so I don't have to do much with busses and drivers in Linux. Actually I'm able to Access and read out all Channels of the ADS fast enough over PCIe. What's pretty cool. But it wasn't as e...