SlideShare a Scribd company logo
Configurable FIFO with Panda FV
Configurable FIFO
• FIFO has two control signals: push and pop
• Each time push is asserted, the design
captures value present on 'in' bus and
stores it in internal memory.
• Each time pop is asserted, the design
discards the oldest value from internal
memory and drives the next (less old) value
on 'out' bus.
• Register Access Bus for FIFO Configuration
FIFO
push pop
in out
Register Access
FIFO Interface
Name Bits Dir Description
clk 1 IN Clock
rst 1 IN Active-high reset
push 1 IN Push data into a FIFO
pop 1 IN Pop data out from FIFO
empty 1 OUT FIFO is empty
full 1 OUT FIFO is full
in Width IN FIFO Data In
out Width IN FIFO Data out
cpu_req_data 8 IN Register Interface Input
cpu_rsp_data 8 OUT Register Interface Output
FIFO Registers
Name Addr Access
Type
Description
MAX_DEPTH 0 RW Capacity of the FIFO. Valid range: from 2 to depth.
Written value shall be less by one than the desired
capacity. Recent written value is returned upon the
read. Shall not be written while there are entries in
the FIFO.
RPTR 1 R Current value of a read pointer is returned upon the
read. Used for diagnostic purposes.
WPTR 2 R Current value of a write pointer is returned upon the
read. Used for diagnostic purposes
TOTAL_ENTRIES 3 R Total number of values pushed into the FIFO since
the recent reset. Used for statistic collection.
Register Interface
• Packet-Based Interface:
• Commands: IDLE, READ, WRITE, READ_REPLY,
READ_ERROR, WRITE_ACK, WRITE_ERR
• Address valid only for READ and WRITE;
otherwise reserved
• Value present only for READ_REPLY and WRITE
Command
Value
Address
73 40
Property to Verify
• For all possible configurations of FIFO_DEPTH,
FIFO operation is valid.
FIFO
push pop
in out
Register Access
Property
FIFO Testbench
• Re-used between Dynamic Simulation and Formal
Analysis with Panda FV
• Parametric, with data width and FIFO depth
FIFO
push
pop
in out
Register Access
Data
Driver
Checker
Control
Driver
Control Signals Generation
Register Interface
• Goal: program FIFO depth randomly
• Use parametric cell tbs_rnum to constantly generate
random number from 2 to 16
• Capture random data for register write access
Data Generation & Checking
Generation:
– Supply increasing numbers; choose random
increment at the beginning of test:
Data check:
– Just check for data values increase with known
increment
Generate
radnom delta
0 3 6 9 12
0 2 4 6 8
0 1 2 3 4
0 4 8 12 16
…
…
…
…
Data Generation Code
Data Checking Code
Check if output data not increases with the given
increment in the working mode (tcnt > 5):
FIFO Simulation
FIFO Formal Analysis
• Run bounded model checking, 20-25 cycles
from initial state
• Formal Analysis statically covers :
– All possible configurations
– All possible data increments
– All possible push & pop timings
As a result, thorough verification of configurable
FIFO design

More Related Content

PPTX
Registers
PDF
Lecture 04 branch call and time delay
DOCX
Peripheral 8245,16550&8237 dma controller
PDF
Lecture 05 pic io port programming
PPTX
16. memory interfacing ii
PPT
Memory organization of 8051
PPTX
AVR programming - BASICS
Registers
Lecture 04 branch call and time delay
Peripheral 8245,16550&8237 dma controller
Lecture 05 pic io port programming
16. memory interfacing ii
Memory organization of 8051
AVR programming - BASICS

What's hot (20)

PDF
Lecture 06 pic programming in c
PPTX
3. Addressing Modes in 8085 microprocessor.pptx
PPTX
PPTX
Relay and AVR Atmel Atmega 16
PDF
Chapter 7 - Programming Techniques with Additional Instructions
PPTX
Microcontroller avr
PPTX
Microprocessor 8086 and Microcontoller
PDF
Hardware interfacing basics using AVR
PPTX
Flagsregistor
PPTX
memory 8051
PDF
8051 microcontroller
PPTX
PPTX
flag register of 8086
PPTX
Input Output programming in AVR microcontroller
PPT
Chapter 8
PPT
T imingdiagram
PPT
Al2ed chapter15
PPT
int 21,16,09 h
PPT
Lec20 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Da...
PPTX
block diagram of 8086
Lecture 06 pic programming in c
3. Addressing Modes in 8085 microprocessor.pptx
Relay and AVR Atmel Atmega 16
Chapter 7 - Programming Techniques with Additional Instructions
Microcontroller avr
Microprocessor 8086 and Microcontoller
Hardware interfacing basics using AVR
Flagsregistor
memory 8051
8051 microcontroller
flag register of 8086
Input Output programming in AVR microcontroller
Chapter 8
T imingdiagram
Al2ed chapter15
int 21,16,09 h
Lec20 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Da...
block diagram of 8086
Ad

Viewers also liked (17)

DOC
PRTE 640 Anejo M 1 y 2 Proyecto de Valeria
PPSX
Auditoria dugelis pirela - 19.887.016
PPTX
Олександр Лінивий — Multisite platform with continuous delivery process for m...
PDF
PDF
Rock GWT UI's with Polymer Elements
PPTX
βιομηχανικη επανασταση
PPTX
An Integrated Pipeline for Private and Public Clouds with Jenkins, Artifactor...
PDF
GWTcon 2015 - Beyond GWT 3.0 Panic
DOCX
Bảng câu hỏi - Nguyên cứu Maketing
PDF
Web Components for Java Developers
PDF
Concourse updates
PDF
Logiciels gatuits pour la gestion des connaissances
PPTX
AI & Deep Learning on AWS at CTO Night&Day 2016 Winter
PDF
From Zero to Hero with REST and OAuth2 #jjug
PDF
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
PDF
Antifragile Clojure
PPTX
Treball 11111
PRTE 640 Anejo M 1 y 2 Proyecto de Valeria
Auditoria dugelis pirela - 19.887.016
Олександр Лінивий — Multisite platform with continuous delivery process for m...
Rock GWT UI's with Polymer Elements
βιομηχανικη επανασταση
An Integrated Pipeline for Private and Public Clouds with Jenkins, Artifactor...
GWTcon 2015 - Beyond GWT 3.0 Panic
Bảng câu hỏi - Nguyên cứu Maketing
Web Components for Java Developers
Concourse updates
Logiciels gatuits pour la gestion des connaissances
AI & Deep Learning on AWS at CTO Night&Day 2016 Winter
From Zero to Hero with REST and OAuth2 #jjug
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Antifragile Clojure
Treball 11111
Ad

Similar to Configurable fifo with panda fv (20)

PPTX
Design and Implementation of Synchronous FIFO Interfaced with RAM.pptx
PDF
Design of Synthesizable Asynchronous FIFO And Implementation on FPGA
PPTX
Class 6 an 8 bit embedded platform -pic mircocontroller basics
PDF
Introduction to pic microcontroller
PDF
Microcontroller pic 16 f877 registers memory ports
PDF
regmap: The power of subsystems and abstractions
PDF
06 comunicação mestre mestre
PDF
FIFO Design
PDF
Authentication Issues between entities during protocol message exchange in SC...
PDF
Clock Domain Crossing Part 6 - Asynchronous FIFO
PDF
Registers
PDF
FPGA Based Implementation of Electronic Safe Lock
PDF
FPGA Based Implementation of Electronic Safe Lock
PPTX
PIC 16F877 micro controller by Gaurav raikar
PDF
IRJET-Assertion Based Verification Strategy for a Generic First in First Out(...
PPTX
7 Adv Host Integration 1234869680124198 3
PPT
PIC32MX5XX/6XX/7XX USB, CAN and Ethernet 32-Bit Flash Microcontrollers
PDF
FIFOPt
PDF
13402lecture3 111204134846-phpapp02
PPT
Dcs control workshop 2002
Design and Implementation of Synchronous FIFO Interfaced with RAM.pptx
Design of Synthesizable Asynchronous FIFO And Implementation on FPGA
Class 6 an 8 bit embedded platform -pic mircocontroller basics
Introduction to pic microcontroller
Microcontroller pic 16 f877 registers memory ports
regmap: The power of subsystems and abstractions
06 comunicação mestre mestre
FIFO Design
Authentication Issues between entities during protocol message exchange in SC...
Clock Domain Crossing Part 6 - Asynchronous FIFO
Registers
FPGA Based Implementation of Electronic Safe Lock
FPGA Based Implementation of Electronic Safe Lock
PIC 16F877 micro controller by Gaurav raikar
IRJET-Assertion Based Verification Strategy for a Generic First in First Out(...
7 Adv Host Integration 1234869680124198 3
PIC32MX5XX/6XX/7XX USB, CAN and Ethernet 32-Bit Flash Microcontrollers
FIFOPt
13402lecture3 111204134846-phpapp02
Dcs control workshop 2002

Recently uploaded (20)

PPTX
Bitcoin predictor project presentation
PPTX
Acoustics new a better way to learn sound science
PPT
Fire_electrical_safety community 08.ppt
PPTX
UNIT III - GRAPHICS AND AUDIO FOR MOBILE
PDF
analisis snsistem etnga ahrfahfffffffffffffffffffff
PDF
Chalkpiece Annual Report from 2019 To 2025
PPTX
2. Competency Based Interviewing - September'16.pptx
PDF
Social Media USAGE .............................................................
PDF
How Animation is Used by Sports Teams and Leagues
PDF
The Complete Guide to Buying Verified Stripe Accounts 2025.pdf
PPTX
ENG4-Q2-W5-PPT (1).pptx nhdedhhehejjedheh
PPTX
UI UX Elective Course S1 Sistem Informasi RPS.pptx
PPTX
CLASS_11_BUSINESS_STUDIES_PPT_CHAPTER_1_Business_Trade_Commerce.pptx
PDF
2025_AIFG_Akane_Kikuchi_Empathy_Design.PDF
PDF
321 LIBRARY DESIGN.pdf43354445t6556t5656
PDF
Architecture Design Portfolio- VICTOR OKUTU
PDF
Trends That Shape Graphic Design Services
PPTX
URBAN FINANCEnhynhynnnytnynnnynynyynynynyn
PPTX
Final Presentation of Reportttttttttttttttt
PPTX
22CDH01-V3-UNIT III-UX-UI for Immersive Design
Bitcoin predictor project presentation
Acoustics new a better way to learn sound science
Fire_electrical_safety community 08.ppt
UNIT III - GRAPHICS AND AUDIO FOR MOBILE
analisis snsistem etnga ahrfahfffffffffffffffffffff
Chalkpiece Annual Report from 2019 To 2025
2. Competency Based Interviewing - September'16.pptx
Social Media USAGE .............................................................
How Animation is Used by Sports Teams and Leagues
The Complete Guide to Buying Verified Stripe Accounts 2025.pdf
ENG4-Q2-W5-PPT (1).pptx nhdedhhehejjedheh
UI UX Elective Course S1 Sistem Informasi RPS.pptx
CLASS_11_BUSINESS_STUDIES_PPT_CHAPTER_1_Business_Trade_Commerce.pptx
2025_AIFG_Akane_Kikuchi_Empathy_Design.PDF
321 LIBRARY DESIGN.pdf43354445t6556t5656
Architecture Design Portfolio- VICTOR OKUTU
Trends That Shape Graphic Design Services
URBAN FINANCEnhynhynnnytnynnnynynyynynynyn
Final Presentation of Reportttttttttttttttt
22CDH01-V3-UNIT III-UX-UI for Immersive Design

Configurable fifo with panda fv

  • 2. Configurable FIFO • FIFO has two control signals: push and pop • Each time push is asserted, the design captures value present on 'in' bus and stores it in internal memory. • Each time pop is asserted, the design discards the oldest value from internal memory and drives the next (less old) value on 'out' bus. • Register Access Bus for FIFO Configuration FIFO push pop in out Register Access
  • 3. FIFO Interface Name Bits Dir Description clk 1 IN Clock rst 1 IN Active-high reset push 1 IN Push data into a FIFO pop 1 IN Pop data out from FIFO empty 1 OUT FIFO is empty full 1 OUT FIFO is full in Width IN FIFO Data In out Width IN FIFO Data out cpu_req_data 8 IN Register Interface Input cpu_rsp_data 8 OUT Register Interface Output
  • 4. FIFO Registers Name Addr Access Type Description MAX_DEPTH 0 RW Capacity of the FIFO. Valid range: from 2 to depth. Written value shall be less by one than the desired capacity. Recent written value is returned upon the read. Shall not be written while there are entries in the FIFO. RPTR 1 R Current value of a read pointer is returned upon the read. Used for diagnostic purposes. WPTR 2 R Current value of a write pointer is returned upon the read. Used for diagnostic purposes TOTAL_ENTRIES 3 R Total number of values pushed into the FIFO since the recent reset. Used for statistic collection.
  • 5. Register Interface • Packet-Based Interface: • Commands: IDLE, READ, WRITE, READ_REPLY, READ_ERROR, WRITE_ACK, WRITE_ERR • Address valid only for READ and WRITE; otherwise reserved • Value present only for READ_REPLY and WRITE Command Value Address 73 40
  • 6. Property to Verify • For all possible configurations of FIFO_DEPTH, FIFO operation is valid. FIFO push pop in out Register Access Property
  • 7. FIFO Testbench • Re-used between Dynamic Simulation and Formal Analysis with Panda FV • Parametric, with data width and FIFO depth FIFO push pop in out Register Access Data Driver Checker Control Driver
  • 9. Register Interface • Goal: program FIFO depth randomly • Use parametric cell tbs_rnum to constantly generate random number from 2 to 16 • Capture random data for register write access
  • 10. Data Generation & Checking Generation: – Supply increasing numbers; choose random increment at the beginning of test: Data check: – Just check for data values increase with known increment Generate radnom delta 0 3 6 9 12 0 2 4 6 8 0 1 2 3 4 0 4 8 12 16 … … … …
  • 12. Data Checking Code Check if output data not increases with the given increment in the working mode (tcnt > 5):
  • 14. FIFO Formal Analysis • Run bounded model checking, 20-25 cycles from initial state • Formal Analysis statically covers : – All possible configurations – All possible data increments – All possible push & pop timings As a result, thorough verification of configurable FIFO design