Electrocardiogram (ECG) application operation – Part B Performed By: Ran Geler Mor Levy Instructor:Moshe Porian Project Duration: 2 Semesters Spring 2012 Final Presentation
Contents Introduction Overview Top Architecture Components Data Flow Simulations and Debug Performance GUI Problems in developing process Conclusions
Introduction The heart is a muscular organ that beats in rhythm to pump blood through the body By analyzing the heart behavior and especially the electrical impulses we can help identify heart diseases and special circumstance that require close monitoring
Medical Terms ECG Lead ◦ Bipolar leads ◦ Unipolar leads ◦ Precordial Leads
Project Overview Project focus
Project Goals Design and implement a communication interface between a PC to an ECG board using a FPGA. Implement a simulation component to PCB board behavior for tests. Learn how to integrate Multi Platforms elements ◦ ECG DB with FPGA Build an interactive GUI with debugger abilities. Methodic project
Top Architecture
What we have achieved: Implementing ECG controller ◦ ECG FSM ◦ Integration with peripheral components. Examination of the Implemented components ◦ Creating tests bench ◦ Mocking TI DB behavior P & R to projects top architecture by Quartus Adding Flash memory support Implementing a GUI
Top Architecture – Data Flow
Top Architecture – Frequency Frequency requirements for modules FPGA: Main frequency: 100MHz Rx / Tx frequency of 115,200Hz FPGA: Main frequency: 100MHz Rx / Tx frequency of 115,200Hz ADS1928R: Main frequency: 2.048MHz SPI-Data Out freq’: >110KHz ADS1928R: Main frequency: 2.048MHz SPI-Data Out freq’: >110KHz MATLAB GUI: Rx / Tx Via UART frequency of 115,200Hz MATLAB GUI: Rx / Tx Via UART frequency of 115,200Hz Flash Memory: Main frequency: 100MHz Flash Memory: Main frequency: 100MHz
Core microarchitecture 512Bytes Data Rate: 100MHz Data Rate: >110KHz
Core Architecture ECG FSM FIFO Command & Aux Regs Wishbone Master & Slave SPI Cores
ECG FSM Controls the flow of data between the host and the DB Three Main chain of actions: ◦ Read Data ◦ Read Registers ◦ Write Registers
ECG FSM - Graph
FIFO at ECG Controller 1 st Command 2 nd Command Additional Data Operation Commands (ex: RDATAC, Rreg, Wreg, Standby, Reset, ect’..) Optional: Second Byte for (Rreg, Wreg) and sample interval for RDATAC command. Data for commands FIFO Size: 512 Bytes. Stores Instruction and Sampled data. Data structure on Instruction case:
SPI The SPI Interface frequency: At 24bit resolution per 8 Electrodes and 500 Samples per Sec: Active at low. i.e. CS = ‘0’
Flash Component FLASH Flash Controller Flash FSM Flash FSM RAM Reset en WBS Flash Component 256Byte
Flash Component - Flash One sample (24bit res. per 8 Electrodes) = 27Byte. Lets assume sample rate of 500 SPS Flash size = 4MB Therefore we can sample for 5min.
Flash Component – Flash client Technical Demands: Common FLASH Interface protocol (CFI) Wishbone Interface Performs Read, Write, Reset and Erase transactions Initiative read on power-on Contains a timeout algorithm Generic: adaptable to different FLASH sizes and clock frequencies. BUS Wishbone CFI
ADS1298R ECG DB FPGA Architecture design suited to Texas Instruments ADS1298R board. Arrived to the High Speed Digital Systems Lab
Test Methodologies Operation of the ECG Controller: ◦ Checking that states change are at time ◦ Checking control signals & data signals between units ◦ Non existing commands ◦ Read\Write data to flash from all components. ◦ Read\Write data from PC to board simulation component (DB Mock). NOTE: When a transaction is executed the wishbone “stall” signal is raised to ‘High’, So other requests will remain pending at the Rx Wishbone Master.
ECG Controller TB Data Flow We have implemented a special closed component for Testing.
DB Mocking We have implemented a component to imitate the Texas Instruments ADS1298R Chip behavior. The Mocking component is capable of saving 26 configuration registers values. Extracting \ writing data from a sequence of registers in a burst. Simulate a continues samples reading (RDATAC mode).
DB mocking The component designed to meet timing constrains of Texas Instruments board. ◦ Instructions and returned data timings. ◦ Continues data samples timing. ◦ Enter to sleep mode \ Wakeup time. The component designed to help on Top architecture Implementation and debug process. The component Interface is as the Texas Instruments boars (SPI).
ADS1298R ECG DB
Simulations – Read Transaction example Top Architecture Wave. Rx Transaction SPI Flash
Simulations – Read Transaction example SPI Transaction
Simulations – Read Transaction example Flash transaction
Simulations – DB Mock WREG Operation
Simulations – RDATAC Transaction example
Simulation equipment Programming & Debug gear DE2 - Board Host for Simulations
Quartus Simulations Top Arc Synthesis summary
Quartus Simulations Max Frequency Architecture clocks
GUI Using Matlab 2012a we build a functional GUI Allows control on the DB using the DB registers Enables to communicate directly with the flash Running ECG analyze
GUI – General
GUI – DB Registers
GUI – DB Registers reading from file
GUI – DB Registers reset
GUI – DB Registers setting default values
GUI – DB Registers reading from DB
GUI – Flash
GUI – Flash loading from file
GUI – Flash writing on the flash
GUI – Flash reading from the flash
GUI – Flash
GUI – Flash Flash control
GUI – Analyzer
GUI – Analyzer – smooth
GUI – Analyzer – stairs
GUI – Analyzer - stems
GUI – Analyzer - Save
GUI – About
Problems in developing process Meet timings requirements of the TI Evaluation board. Keep the projects specifications and requirements while adding more logic to the top arch. Debug and testing of the whole implemented logic.
Conclusions We learned a lot about the developing process & the importance of good planning a head The importance of working organized How much good documentation of previous project is important
Conclusions - continue Conclusions - continue How to build a GUI using Matlab Setting up the Matlab to communicate with outer devices The impotence of good and workable equipment Test each component atomically.