Internal Logic Analyzer Final presentation-part A

Slides:



Advertisements
Similar presentations
Control path Recall that the control path is the physical entity in a processor which: fetches instructions, fetches operands, decodes instructions, schedules.
Advertisements

FPGA Configuration. Introduction What is configuration? – Process for loading data into the FPGA Configuration Data Source Configuration Data Source FPGA.
EXTERNAL COMMUNICATIONS DESIGNING AN EXTERNAL 3 BYTE INTERFACE Mark Neil - Microprocessor Course 1 External Memory & I/O.
Internal Logic Analyzer Final presentation-part B
Data Protection Card Submit: Assaf Matia Technion Guide: Eran Segev Rafael Guide: Henri Delmar Winter & Spring 2004.
Characterization Presentation Neural Network Implementation On FPGA Supervisor: Chen Koren Maria Nemets Maxim Zavodchik
Mid semester Presentation Data Packages Generator & Flow Management Data Packages Generator & Flow Management Data Packages Generator & Flow Management.
1 Matrix Multiplication on SOPC Project instructor: Ina Rivkin Students: Shai Amara Shuki Gulzari Project duration: one semester.
Reliable Data Storage using Reed Solomon Code Supervised by: Isaschar (Zigi) Walter Performed by: Ilan Rosenfeld, Moshe Karl Spring 2004 Part A Final Presentation.
Asynchronous Pipelined Ring Interconnection for SoC Final Presentation One semester project, Spring 2005 Supervisor: Nitzan Miron Students: Ziv Zeev Shwaitser.
1 Project supervised by: Dr Michael Gandelsman Project performed by: Roman Paleria, Avi Yona 12/5/2003 Multi-channel Data Acquisition System Mid-Term Presentation.
Firmware implementation of Integer Array Sorter Characterization presentation Dec, 2010 Elad Barzilay Uri Natanzon Supervisor: Moshe Porian.
Students:Gilad Goldman Lior Kamran Supervisor:Mony Orbach Mid-Semester Presentation Spring 2005 Network Sniffer.
Final Presentation Packet I/O Software Management Application PISMA® Supervisor: Mony Orbach D0317 One-Semester Project Liran Tzafri Michael Gartsbein.
1 Project supervised by: Dr Michael Gandelsman Project performed by: Roman Paleria, Avi Yona 26/4/2004 Multi-channel Data Acquisition System Final_A Presentation.
Technion – Israel Institute of Technology Department of Electrical Engineering High Speed Digital Systems Lab Project performed by: Naor Huri Idan Shmuel.
Reliable Data Storage using Reed Solomon Code Supervised by: Isaschar (Zigi) Walter Performed by: Ilan Rosenfeld, Moshe Karl Spring 2004 Midterm Presentation.
Characterization Presentation Neural Network Implementation On FPGA Supervisor: Chen Koren Maria Nemets Maxim Zavodchik
Interface of DSP to Peripherals of PC Spring 2002 Supervisor: Broodney, Hen | Presenting: Yair Tshop Michael Behar בס " ד.
Configuration. Mirjana Stojanovic Process of loading bitstream of a design into the configuration memory. Bitstream is the transmission.
Technion Digital Lab Project Performance evaluation of Virtex-II-Pro embedded solution of Xilinx Students: Tsimerman Igor Firdman Leonid Firdman.
1 Mid-term Presentation Implementation of generic interface To electronic components via USB2 Connection Supervisor Daniel Alkalay System architectures.
General Purpose FIFO on Virtex-6 FPGA ML605 board midterm presentation
Students: Oleg Korenev Eugene Reznik Supervisor: Rolf Hilgendorf
General Purpose FIFO on Virtex-6 FPGA ML605 board Students: Oleg Korenev Eugene Reznik Supervisor: Rolf Hilgendorf 1 Semester: spring 2012.
Picture Manipulation using Hardware Presents by- Uri Tsipin & Ran Mizrahi Supervisor– Moshe Porian Final Presentation – Part B Dual-semester project
Sub- Nyquist Sampling System Hardware Implementation System Architecture Group – Shai & Yaron Data Transfer, System Integration and Debug Environment Part.
Final presentation – part B Olga Liberman and Yoav Shvartz Advisor: Moshe Porian April 2013 S YMBOL G ENERATOR 2 semester project.
Presented by : Maya Oren & Chen Feigin Supervisor : Moshe Porian Lab: High Speed Digital System One Semester project – Spring
1 WORLD CLASS – through people, technology and dedication High level modem development for Radio Link INF3430/4431 H2013.
Firmware based Array Sorter and Matlab testing suite Final Presentation August 2011 Elad Barzilay & Uri Natanzon Supervisor: Moshe Porian.
GBT Interface Card for a Linux Computer Carson Teale 1.
Presented by : Olga Liberman & Yoav Shvartz Supervisor : Moshe Porian
Picture Manipulation using Hardware Presents by- Uri Tsipin & Ran Mizrahi Supervisor– Moshe Porian Final Presentation – Part A Dual-semester project
Picture Manipulation using Hardware Presents by- Uri Tsipin & Ran Mizrahi Supervisor– Moshe Porian Final Presentation – Part B Dual-semester project
PROCStar III Performance Charactarization Instructor : Ina Rivkin Performed by: Idan Steinberg Evgeni Riaboy Semestrial Project Winter 2010.
Electrocardiogram (ECG) application operation – Part B Performed By: Ran Geler Mor Levy Instructor:Moshe Porian Project Duration: 2 Semesters Spring 2012.
REGISTER MANAGEMENT TOOL Preformed by: Liat Honig Nitzan Carmel Supervisor: Moshe Porian Date: 24/11/2011, winter semester 2011 Duration: One semester.
LZRW3 Data Compression Core Dual semester project April 2013 Project part A final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian.
Project Characterization Implementing a compressor in software and decompression in hardware Presents by - Schreiber Beeri Yavich Alon Guided by – Porian.
Presented by : Olga Liberman & Yoav Shvartz Supervisor : Moshe Porian
By: Daniel BarskyNatalie Pistunovich Supervisors: Rolf HilgendorfInna Rivkin 10/06/2010.
LZRW3 Decompressor dual semester project Part A Mid Presentation Students: Peleg Rosen Tal Czeizler Advisors: Moshe Porian Netanel Yamin
1 DSP handling of Video sources and Etherenet data flow Supervisor: Moni Orbach Students: Reuven Yogev Raviv Zehurai Technion – Israel Institute of Technology.
Electrocardiogram (ECG) application operation – Part A Performed By: Ran Geler Mor Levy Instructor:Moshe Porian Project Duration: 2 Semesters Spring 2012.
High Speed Digital Systems Lab. Agenda  High Level Architecture.  Part A.  DSP Overview. Matrix Inverse. SCD  Verification Methods. Verification Methods.
Sub-Nyquist Sampling Algorithm Implementation on Flex Rio
Final Presentation Final Presentation OFDM implementation and performance test Performed by: Tomer Ben Oz Ariel Shleifer Guided by: Mony Orbach Duration:
PROJECT - ZYNQ Yakir Peretz Idan Homri Semester - winter 2014 Duration - one semester.
Performed by Greenberg Oleg Kichin Dima Winter 2010 Supervised by Moshe Mishali Inna Rivkin.
Final Presentation Implementation of DSP Algorithm on SoC Student : Einat Tevel Supervisor : Isaschar Walter Accompanying engineer : Emilia Burlak The.
Company LOGO Final presentation Spring 2008/9 Performed by: Alexander PavlovDavid Domb Supervisor: Mony Orbach GPS/INS Computing System.
FPGA Calculator Core Final Presentation Chen Zukerman Liran Moskovitch Advisor : Moshe Porian Duration: semesterial December 2012.
Project Final Semester A Presentation Implementing a compressor in software and decompression in hardware Presents by - Schreiber Beeri Yavich Alon Guided.
FPGA Calculator Core Mid Presentation Chen Zukerman Liran Moskovitch Advisor : Moshe Porian Duration: semesterial November 2011.
Picture Manipulation using Hardware Presents by- Uri Tsipin & Ran Mizrahi Supervisor– Moshe Porian Characterization presentation Dual-semester project.
REGISTER MANAGMENT TOOL Preformed by: Liat Honig Nitzan Carmel Supervisor: Moshe Porian Date: 29/1/2012 winter semester 2011 Duration: One semester Middle.
Picture Manipulation using Hardware Presents by- Uri Tsipin & Ran Mizrahi Supervisor– Moshe Porian Middle presentation Dual-semester project
Part A Final Dor Obstbaum Kami Elbaz Advisor: Moshe Porian August 2012 FPGA S ETTING U SING F LASH.
Menu Navigation Presented by: Tzahi Ezra Advisors: Moshe Porian Netanel Yamin One semester project Project initiation: NOV 2014 PROJECT’S MID PRESENTATION.
Mid presentation Part A Project Netanel Yamin & by: Shahar Zuta Moshe porian Advisor: Dual semester project November 2012.
LAB 3 – Synchronous Serial Port Design Using Verilog
DDRIII BASED GENERAL PURPOSE FIFO ON VIRTEX-6 FPGA ML605 BOARD PART B PRESENTATION STUDENTS: OLEG KORENEV EUGENE REZNIK SUPERVISOR: ROLF HILGENDORF 1 Semester:
Mini scope one semester project Project final Presentation Svetlana Gnatyshchak Lior Haiby Advisor: Moshe Porian Febuary 2014.
Internal Logic Analyzer Characterization presentation By: Moran Katz and Zvika Pery Mentor: Moshe Porian Dual-semester project Spring 2012.
Network On Chip Cache Coherency Final presentation – Part A Students: Zemer Tzach Kalifon Ethan Kalifon Ethan Instructor: Walter Isaschar Instructor: Walter.
Menu Navigation Presented by: Tzahi Ezra Advisors: Moshe Porian Netanel Yamin One semester project Project initiation: NOV 2014 PROJECT’S CHARACTERIZATION.
Internal Logic Analyzer Middle presentation-part A By: Moran Katz and Zvika Pery Mentor: Moshe Porian Dual-semester project Spring 2012.
Lab 1: Using NIOS II processor for code execution on FPGA
FPGA Implementation of Multicore AES 128/192/256
Presentation transcript:

Internal Logic Analyzer Final presentation-part A By: Moran Katz and Zvika Pery Mentor: Moshe Porian Dual-semester project Spring 2012

Agenda Overview Goals Requirements Architecture Data transfer Internal Logic Analyzer Core Registers Write controller Read controller RAM In out coordinator Simulations Problems & solutions Part B work plan Schedule

Project Overview Logic Analyzer- Debugging tool for FPGA Common Logic Analyzer tools today: Contains software & hardware Hardware: Change FPGA code Memories to store data Logic to change configuration Software: Include GUI Choose trigger, data location, signals name, record results Altera- Signal Tap Xilinx- Chip Scope 1.יצרניות ה- FPGA-ים מספקות כלי למטרת DEBUG במעבדה, הקרוי Logic Analyzer, המאפשר הקלטה של מידע פנימי ב- FPGA והצגתו למשתמש. הכלי בנוי מחבילת חומרה, וחבילת תוכנה.(תמונה) 2. החלק החומרתי נכנס לקוד של ה- FPGA וכולל זיכרונות לאחסון המידע המוקלט, לוגיקה לשינוי קונפיגורציה (לדוגמא: סוג ה- Trigger, לדוגמא: פעיל בשינוי מ- '0' ל- '1'), לוגיקה לזיהוי נעילה של ה- Trigger הרצוי ולוגיקה לשליחת המידע המוקלט לתוכנה. 3. החלק התוכנתי כולל GUI, המאפשר לבחור את סוג ה- Trigger להקלטה, מיקום ה- Trigger ביחס למידע המוקלט, הצגה נוחה של שמות הסיגנלים המוקלטים והצגה של תוצאות ההקלטה, המגיעות מהחומרה, למשתמש. 4. הכלי של יצרנית ה- FPGA-ים, ALTERA, נקרא SignalTap. הכלי של יצרנית ה- FPGA-ים, XILINX, נקרא ChipScope.

Project goals Design an internal logic analyzer to the FPGA which will be an independent part Hardware: (1) VHDL (2) Record the chosen signals (3) Send it back to the user Software: (1) GUI- allow to present the recorded information (2) Send request to change hardware according user’s choise (3) Build a system to check our implementation UART IN RX PATH WBM WhishBone intercon Signal Generator Internal Logic Analyzer Core WBS TX PATH UART OUT Clock & Reset 100 MHZ 50 MHZ GUI FPGA WBM- Whishbone Master WBS-Whishbone Slave XILINX- SPARTAN 3E ALTERA- CYCLON II בניית Logic Analyzer פנימי ל- FPGA, בלתי תלוי ביצרן ה- FPGA. החלק החומרתי יכלול בניית מערכת ב- VHDL, המאפשרת הקלטה של הסיגנלים הרצויים ע"פ קונפיגורציה ושליחת המידע המוקלט חזרה למשתמש. החלק התוכנתי יכלול בניית GUI המאפשר שינוי קונפיגורציה והצגת המידע המוקלט למשתמש. בנוסף, תבנה מערכת תומכת המאפשרת בדיקה של המימוש במעבדה. Altera Cyclone II

Requirements Option to choose the parameters Save the recorded information and present it using waveform Internal communication is through Wishbone protocol External communication is through UART protocol Save and load settings Duration of recording Signals name, which signals to record Type of trigger, for example ‘rise’ position of trigger כלי ה- Logic Analyzer יהיה בעל תכונות המאפשרות: בחירת סוג ה- Trigger: שינוי מ- '0' ל- '1' (rise), fall, '0', '1'. בחירת מיקום ה- Trigger ביחס למידע המוקלט (באמצע, בהתחלה, בסוף...). קביעת כמות הסיגנלים להקלטה. קביעת עומק ההקלטה (זמן ההקלטה). שמירת וטעינת settings של פרויקט. שינוי שמות הסיגנלים המוצגים. שמירת המידע המוקלט לקובץ והצגתו באמצעות waveform בכלי סימולציה (ב- Modelsim). שימוש ב- Resources (זכרונות ולוגיקה) בלתי תלויים בסוג ה- FPGA. אופציונאלי: הגדרת Trigger-ים חכמים, כמו Trigger מקונן (sequence של תנאים), Trigger הכולל השוואות לוגיות (greater than, לדוגמא). כל הבלוקים ב- FPGA יקושרו ביניהם באמצעות ממשק אחיד – Protocol Wishbone. הממשק ביו החומרה ל- GUI ולתוכנה יהיה באמצעות פרוטוקול UART. בניית מערכת תומכת, הכוללת חומרה ותוכנה, המאפשרת הזרקת חבילות מידע, המייצגות סצנות שונות של סיגנלים להקלטה ל- FPGA, קבלת מענה ממנו בנוגע למידע המוקלט והשוואה ביחס למצופה.   הרחבה לגבי פרוטוקולי התקשורת תינתן בהמשך המצגת. 30%-70% 50%-50% 70%-30%

Top Architecture FPGA WhishBone intercon Signal UART IN RX PATH WBM WhishBone intercon Signal Generator Internal Logic Analyzer Core WBS TX PATH UART OUT Clock & Reset 100 MHZ 50 MHZ GUI FPGA WBM- Whishbone Master WBS-Whishbone Slave Altera Cyclone II

Data Transfer FPGA WhishBone intercon injecting signals behavior Trigger- first signal Recording time- 50% Signal’s number-2 UART IN RX PATH WBM WhishBone intercon Signal Generator Internal Logic Analyzer Core WBS TX PATH UART OUT Clock & Reset 100 MHZ 50 MHZ GUI FPGA WBM- Whishbone Master WBS-Whishbone Slave signal signal signal קביעת קונפיגורציות: לדוגמא נבחר כטריגר סיגנל ראשון, עם עומק הקלטה של 50% Recorded data Altera Cyclone II

The Core The core is build from 7 entities: The core tasks: WBS Registers Write Controller RAM Read Controller Data Coordinator WBM The core tasks: Getting and saving user configurations Getting new data each clock cycle and saving it Getting new trigger signal each clock cycle and check for trigger rise according user configurations Outputting relevant data back to user

The Core Generic table 1 2 3 4 5 6 7 8 9 10 11 12 reset_polarity_g Description Name # 1 reset_polarity_g 0 - Reset active Low, 1- Reset active High 2 enable_polarity_g 0 - Enable active Low, 1- Enable active High 3 signal_ram_depth_g depth of basic RAM 4 signal_ram_width_g width of basic RAM 5 record_depth_g number of bits that is recorded from each signal 6 data_width_g defines the width of the data lines of the system 7 Add_width_g width of address word in the RAM (Gets record_depth_g) 8 num_of_signals_g number of signals that will be recorded simultaneously 9 power2_out_g RAM output width is multiplied by this power factor 10 '-1' => RAM output width > input width '1' => RAM input width > output width power_sign_g 11 type_d_g Type Depth. type is the WB client which the data is directed to 12 len_d_g Length of the WB data (in words)

Registers Saves the user configurations Sends out the configurations to the WC configuration TYPE POSITION

Registers The inputs are Register’s address and data in Valid signal rises and data in signal is being sampled to the relevant register according to the address From now on, the data is available at the output ADDRESS DATA IN

Write Controller Gets the data from the signal generator and saves it in the RAM Gets the trigger signal and looks for trigger rise according configurations DATA IN DATA IN VALID START ADDRESS TRIGGER ADDRESS TYPE POSITION

? Write Controller Trigger and data are entering each cycle Data address and validity are being calculated and are being sent to the RAM Trigger is compared to the configuration to identify trigger rise If necessary start address is calculated according to the position and is being sent out ? TRIGGER POSITION TYPE AOUT VALID START ADDRESS ADDRESS DATA IN

Read Controller Gets the start address from the WC Extracting the relevant data from the RAM Sends the data out to the in_out_coordinator ADDRESS DATA OUT DATA VALID START ADDRESS

Read Controller Start address is received The next address is calculated and sent to the RAM Data and validity is received from RAM Output data is being sent to the coordinator START ADDRESS ADDRESS TO RAM DATA VALID DATA FROM RAM DATA TO COORDINATOR

In Out Coordinator Gets data and valid in from Read Controller Sends out the data and valid out to WBM DATA VALID DATA DATA OUT VALID DATA OUT

In Out Coordinator Data in is being sampled when valid is high Data out is being sent out according to width_out_generic DATA IN VALID DATA OUT VALID DATA IN DATA OUT

Simulations At first we made a manual simulation to each entity to check the functionality Afterwards, we built a core test bunch in order to check the entire core Internal Logic Analyzer Core WBS WBM

Simulations Each diagram was checked and confirmed for the correct result and if necessary, code changes was made and the simulation was made again. Check for Simulation number Configurations timing 10. Configurations, Trigger recognition 1. Enable polarity 11. Recording depth, Configurations 2. Reset polarity 12. Number of signals, Trigger position 3. Signal RAM width 13. Configurations, Reset 4. Input data = WB bus 14. Reset 5. Input data < WB bus 15. Configurations 6. Input data > WB bus, Reset, Configuration 16. 7. Input data >> WB bus, Reset, Configuration 17. Configurations, Second trigger rise 8. 9. ?

Simulations Data is insert to the registers, in order to configure the user trigger position and type Enable signal is written to the register to enable the system Number of signals is 5, meaning our input data is between 0-32 in decimal (2^5), at first the trigger position is 100 and all the data is recorded before the trigger, and second time the position is 0 and all the data is recorded after the trigger. value Name # 1 reset_polarity_g enable_polarity_g 2 3 signal_ram_depth_g 8 signal_ram_width_g 4 record_depth_g 5 data_width_g 6 Add_width_g 7 num_of_signals_g power2_out_g 9 power_sign_g 10 Type_d_g 11 Len_d_g 12 For example: (test number 3)

Simulations After that all the relevant data has being sent out, read controller finish working We can now configure a new and different simulation Data is being save in the RAM until trigger rise Since position is 100, we do not save data after trigger rise Write controller is finish Read controller starting to send the relevant data out

Simulations Read controller is extractiong all the 8 samples, starting from 24 (trigger rise) When finish, read controller finish signal is rise, and the system is ready for another configuration Since position is 0, all the data is recorded after trigger rise After WC finish saving all the data, the RC is starting to extract the data and send it out

Problems & Solutions Solution Problem Adding entity that “break” the data into few clock cycles (data coordinator) Coordinate between number of recorded signals to output width (WB bus width) Inserting wc_finish signal to the registers entity and resetting the relevant register after first trigger rise Trigger was rise twice in the same configuration We set each register size to 7 bit and we assume that the WB bus width is larger then that. According to that we read only the 7 LSB of the data into the registers Coordinate between incoming data width (from WBS) to the registers Coordinate addresses of incoming data and data sent to RAM Coordinate between input - saved data and address. (couple of clock cycles delay between them) Will be solved in 2nd part System can now work in clock frequency of ~50 MHZ (100 MHZ demanded)

Problems & Solutions After first trigger rise, the system identify another trigger rise although the data was still recorded Problem- there was no dependency between two trigger rises Our solution- adding wc_finish signal to the registers and resetting the enable register First example: (problem that occurred in the middle presentation)

Problems & Solutions Input width is num_of_signals_g, output width is data_width_g Problem- the two widths don’t match Our solution- adding an entity who coordinate between them Second example: output width (bus) did not match the input width DATA OUT DATA OUT VALID IN OUT COOARDINATOR

Part B- work plan Creating Signal Generator Integration with external blocks (rx/tx path, WB intercon and others) Simulations to the whole system Synthesis Building and connecting the GUI Connecting to FPGA in the lab

Schedule 0.5 חן Tasks Date # Part A final presentation 6.10.13 1 Submitting project documentation 13.10.13 2 Finishing signal generator 15.10.13 3 Integrating system blocks 5.11.13 4 Top simulations 12.11.13 5 synthesis 17.11.13 6 Simple matlab GUI implementation 21.11.13 7 Hardware burning to FPGA 28.11.13 8 Part B final presentation 6.12.13 9 0.5 חן