1 Programming of FPGA in LiCAS ADC for Continuous Data Readout Week 5 Report Tuesday 29 th July 2008 Jack Hickish.

Slides:



Advertisements
Similar presentations
IT253: Computer Organization
Advertisements

Computer Architecture
System Integration and Performance
Computer Organization, Bus Structure
Accessing I/O Devices Processor Memory BUS I/O Device 1 I/O Device 2.
Fetch Execute Cycle – In Detail -
Anurag Dwivedi Rudra Pratap Suman. Scope of Communica tion Telephones and Cell Phones.
Lecture 4. Topics covered in last lecture Multistage Switching (Clos Network) Architecture of Clos Network Routing in Clos Network Blocking Rearranging.
LOGO Lab Supervisor – Dr. WH Lau EE3271 Design Laboratory.
Programmable Interval Timer
The 8085 Microprocessor Architecture
Microprocessor and Microcontroller
I/O Unit.
Processor System Architecture
Serial I/O - Programmable Communication Interface
SPI Serial Peripheral Interface. SPI Serial Peripheral Interface is communication between two devices, one bit at a time sequential one bit at time over.
Higher Computing: Unit 1: Topic 3 – Computer Performance St Andrew’s High School, Computing Department Higher Computing Topic 3 Computer Performance.
DH2T 34 Computer Architecture 1 LO2 Lesson Two CPU and Buses.
Guitar Effects Processor Critical Design Review October, 07, 2003 Groups Members: Adam Bernstein Hosam Ghaith Jasenko Alagic Matthew Iyer Yousef Alyousef.
Serial Peripheral Interface (SPI)
Inside The CPU. Buses There are 3 Types of Buses There are 3 Types of Buses Address bus Address bus –between CPU and Main Memory –Carries address of where.
CS-334: Computer Architecture
The 6713 DSP Starter Kit (DSK) is a low-cost platform which lets customers evaluate and develop applications for the Texas Instruments C67X DSP family.
Peripheral Busses COMP Jamie Curtis. PC Busses ISA is the first generation bus 8 bit on IBM XT 16 bit on 286 or above (16MB/s) Extended through.
Data Acquisition Software Integration and ADC Characterisation Jack Hobbs 4 th August
ECE 493T9 Real Time Embedded System Tutorial Set 3 June 10, Spring 2008.
1 Computer System Overview Chapter 1. 2 n An Operating System makes the computing power available to users by controlling the hardware n Let us review.
D75P 34R HNC Computer Architecture 1 Week 9 The Processor, Busses and Peripherals © C Nyssen/Aberdeen College 2003 All images © C Nyssen /Aberdeen College.
MICROPROCESSOR INPUT/OUTPUT
FPGA IRRADIATION and TESTING PLANS (Update) Ray Mountain, Marina Artuso, Bin Gui Syracuse University OUTLINE: 1.Core 2.Peripheral 3.Testing Procedures.
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
Lecture 20: Communications Lecturers: Professor John Devlin Mr Robert Ross.
Computers Are Your Future Eleventh Edition Chapter 2: Inside the System Unit Copyright © 2011 Pearson Education, Inc. Publishing as Prentice Hall1.
Data Handling Stephen Kaye Caltech Data Format in Pipeline 16 Bit data from ADC FPGA combines multiple conversions (subtract 5 reset, add.
University of Calcutta CBM 1 ROC Design Issues Dr. Amlan Chakrabarti, Dr. Sanatan Chattopadhyay & Mr. Suman Sau.
Fall 2012 Chapter 2: x86 Processor Architecture. Irvine, Kip R. Assembly Language for x86 Processors 6/e, Chapter Overview General Concepts IA-32.
1 Programming of FPGA in LiCAS ADC for Continuous Data Readout Week 3 Report Jack Hickish.
BUS IN MICROPROCESSOR. Topics to discuss Bus Interface ISA VESA local PCI Plug and Play.
Computer Architecture Lecture 2 System Buses. Program Concept Hardwired systems are inflexible General purpose hardware can do different tasks, given.
EEE440 Computer Architecture
ECEG-3202 Computer Architecture and Organization Chapter 3 Top Level View of Computer Function and Interconnection.
Computer Hardware A computer is made of internal components Central Processor Unit Internal External and external components.
80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types.
PPI-8255.
EFLAG Register of The The only new flag bit is the AC alignment check, used to indicate that the microprocessor has accessed a word at an odd.
09/01/2016James Leaver SLINK Current Progress. 09/01/2016James Leaver Hardware Setup Slink Receiver Generic PCI Card Slink Transmitter Transition Card.
Computer operation is of how the different parts of a computer system work together to perform a task.
Department of Electronic & Electrical Engineering Serial interfaces Serial Interfaces allow communication between devices sending one bit at a time. In.
Different Microprocessors Tamanna Haque Nipa Lecturer Dept. of Computer Science Stamford University Bangladesh.
Serial Peripheral Interface SPI I2C (i-squared cee)
1 Programming of FPGA in LiCAS ADC for Continuous Data Readout Week 7 Report Friday 15 th August 2008 Jack Hickish.
بسم الله الرحمن الرحيم MEMORY AND I/O.
Sub- Nyquist Sampling System Hardware Implementation System Architecture Group – Shai & Yaron Data Transfer, System Integration and Debug Environment Part.
1 Programming of FPGA in LiCAS ADC for Continuous Data Readout Week 6 Report Wednesday 6 th August 2008 Jack Hickish.
1 Basic Processor Architecture. 2 Building Blocks of Processor Systems CPU.
Chapter 3 System Buses.  Hardwired systems are inflexible  General purpose hardware can do different tasks, given correct control signals  Instead.
Interrupts and Exception Handling. Execution We are quite aware of the Fetch, Execute process of the control unit of the CPU –Fetch and instruction as.
Networked Embedded Systems Sachin Katti & Pengyu Zhang EE107 Spring 2016 Lecture 9 Serial Buses – SPI, I2C.
1 Programming of FPGA in LiCAS ADC for Continuous Data Readout Week 4 Report Tuesday 22 nd July 2008 Jack Hickish.
Serial Communications
Voice Manipulator Department of Electrical & Computer Engineering
USB Project (15th July) Ian Coulter.
USB Project (6th August)
Serial Communication Interface: Using 8251
I/O BUSES.
Serial Communications
Presentation transcript:

1 Programming of FPGA in LiCAS ADC for Continuous Data Readout Week 5 Report Tuesday 29 th July 2008 Jack Hickish

2 Progress Last Week Both Continuous and Burst modes working correctly (qualitatively)‏ Some anomalies when comparing output to internally generated 'test mode' pattern. Began considering diagnostic systems to indicate data overflow - such systems require a serial interface with the USB chip to free some connections with the FPGA

3 Since then… SPI (Serial Peripheral Interface)‏ - Requires only 4 connections between USB and FPGA - 2 – way communication controlled by USB, with FPGA acting as slave - bit stream fed between host and slave, with a clock pulse on each bit

4 Since then… SPI (Serial Peripheral Interface)‏ 1) The master changes the state of SSEL down to indicate to the slave that communication is starting 2) The master toggles the clock eight times and sends eight data bits on its MOSI line. At the same time it receives eight data bits from the slave on the MISO line. 3) The master returns SSEL to its original state to indicate that the transfer is over.

5 SPI SPI will use existing parallel infrastructure inside FPGA. Bits are clocked in one at a time and then placed on an existing bus. Once bus is full a pulse activates the current parallel interface registry writing mechanism.

6 SPI Our USB controller chip has inbuilt SPI functionality - inbuilt clock and co-ordinated input and output lines Unfortunately these lines aren't connected to the FPGA. I have implemented a simplified interface with a pulse sent along with each piece of data, rather than a synchronised clock signal Effectively the same, though transferred bits are not always evenly spaced in time (but are always in sync with pulses)‏

7 SPI Interface currently has same functionality as previous parallel interface. Commands are identical from the point of view of the GUI (or Ian's interface) providing the updated hex file is loaded to the USB controller. (The hex file translates commands from the user interface into events on the input and output lines of the controller)‏ FPGA and USB controller are set up to receive full and empty flags for all the significant components in the FPGA. These bits sit in the USB waiting for the PC to request their transfer (I have yet to work out how to make this request)‏

8 Sampling & Averaging The ADC should be able to average over relatively long time periods (~1 second). This equates to an average over ~3 million samples. The FPGA was set up for averaging over a maximum of 128 samples, limited by the size of the accumulator, bit shifter (divider) and registry holding the value which sets the downscaling ratio. Rather than increasing the size of the size of the 8 bit register (would need to be extended to 22 bits wide to contain a number as large as 3 million) I edited the system so that when the register holds a value of n this corresponds to a downscaling ratio of 2 n rather than simply n. This means no new registers need be created and all existing 8 bit buses used to carry the registry values are still adequate

9 Sampling & Averaging FPGA is now set up for averaging over large times bit accumulator (can sum bit samples)‏ - 14 bit divider Initial Problems with available resources on the FPGA - Initially 150% of some resources used, preventing compiling - Experimenting with different algorithms for division and accumulation, this has been reduced to 99% - The program can be uploaded to FPGA, but leaves little overhead for other modifications

10 Diagnostics SPI allows diagnostic data (cache full flags) to be sent to PC via USB interface. Any diagnostic system must be able to - Signal after data acquisition if there has been any data loss And preferably - Indicate which parts of the data are unreliable

11 Diagnostics - Signal after data acquisition if there has been any data loss This is possible with simple SPI system currently implemented, providing the PC and USB controller can be interfaced (a question of syntax)‏ - Indicate which parts of the data are unreliable This is harder to achieve, requires either - editing data to include a reliable/unreliable flag - uses bandwidth by adding a bit to each piece of data - writing identifiable meta data to indicate overflow (e.g. ouput a string of '0's to indicate presence of full flag)‏ - real data lost when outputting meta data - requires intercepting data stream with 'if' clause, and slows FPGA performance - Have a counter running – flags can be referenced to this counter and hence to stage of data acquisition - Counter would need to be large => Resource intensive

12 Fix USB-PC Communication Decide on, and implement a diagnostic system, probably requiring some optimisation of existing code to free resources Experiment with capabilities of ADC at different downscaling ratios Start using Ian's new interface, maybe adding more (or watching Ian add more) functionality (user input values for main ADC operational parameters)‏ The Week Ahead...