SlideShare a Scribd company logo
1 of 8
Download to read offline
TDHD: Staroletov, Fedorov
An Application of Test-Driven Development
Methodology into the Process of
Hardware Creation
(a View from a Software Perspective)
Sergey Staroletov (PhD), Vladimir Fedorov (student)
Polzunov Altai State Technical University,
Lenin avenue 46, Barnaul, 656038, Russia
Email: serg soft@mail.ru ** vladimir.fodorow@gmail.com 1 / 8
TDHD: Staroletov, Fedorov
Some notable differences of device testing
The testing process of the code running on a device is quite
different from the testing used in Software Engineering. We
identified the following main differences:
1 The time parameter is added, the tests should check not
just the correspondence of the output value according to a
given input, but the correspondence of the output signals
over time according to specified input signals
2 A rather long synthesis time, project deployment, a large
number of signals, a short device response time lead to the
fact that static testing methods (simulation) become very
important during the development
3 The complexity of determining a current state of the
working code on the device.
4 Dynamic testing is carried out by connecting external logic
analyzers
2 / 8
TDHD: Staroletov, Fedorov
FPGA
FPGA (field-programmable gate array) is a device (a special
processor) that contains developer-reconfigurable blocks with
inputs and outputs, and their configuration code is written in a
special language for describing integrated circuit hardware
(HDL, hardware description language).
The advantage of using FPGAs while working with external
equipment to the microcontrollers (such as, for example,
Arduino or STM32 and especially to devices with an operating
system like Raspberry Pi) is that the processor here does not
run some compiled machine code, and its logic is programmed
especially to solve a given task.
3 / 8
TDHD: Staroletov, Fedorov
Verilog
Verilog language is a high-level C- and Pascal-like at the
level of operations, conditions, and cycles, which is then
synthesized into logical elements of the FPGA.
Verilog program describes modules connected by inputs
and outputs, and one can declare memory registers in the
form of bitwise data and their arrays, connections, and
control structures.
The programs are written according to the event-oriented
pattern, usually at a positive or negative front of a change
of frequency clock or some other signal. The code
always@(posedge clock 50M )
begin
dacclk a <=dacclk ;
end
is performed at a f = 50 MHz. And NO delay loops in code. 4 / 8
TDHD: Staroletov, Fedorov
TDD (Test-Driven Development)
Usual developing paradigm
TDD developing paradigm (Kent Beck)
5 / 8
TDHD: Staroletov, Fedorov
A TDD Process in HD (TDHD)
1 Create a project for the target hardware. Create a
git-repository and commit. Use git commit at each step
2 Define the external interface according using MDD in a
graphical editor, then generate a test containing a link to
the main program block with these signals and the code of
this block. Start adding low-level blocks.
3 Next, it’s time to implement the code only to pass the test
4 Using the component development model, integrate an IP
(IP or Intellectual Property, similar to the components) and
integrate at the block layer when needs, write trivial tests.
5 Manually determine the signals by drawing them on a
timing diagram, or use a logic analyzer and record the real
signals and generate tests
6 Refactor and create more tests for blocks. Add more blocks
6 / 8
TDHD: Staroletov, Fedorov
Hardware sound player from an SD card developing
using the TDHD process
7 / 8
TDHD: Staroletov, Fedorov
Our demo software for the TDHD process
8 / 8

More Related Content

What's hot

Testing, black ,white and gray box testing
Testing, black ,white and gray box testingTesting, black ,white and gray box testing
Testing, black ,white and gray box testingAamir Shakir
 
formal verification
formal verificationformal verification
formal verificationToseef Aslam
 
White box & black box testing
White box & black box testingWhite box & black box testing
White box & black box testingSaket Khopkar
 
XINTscope
XINTscopeXINTscope
XINTscopeNplusT
 
An Empirical Study of Adoption of Software Testing in Open Source Projects
An Empirical Study of Adoption of Software Testing in Open Source ProjectsAn Empirical Study of Adoption of Software Testing in Open Source Projects
An Empirical Study of Adoption of Software Testing in Open Source ProjectsPavneet Singh Kochhar
 
A survey of software testing
A survey of software testingA survey of software testing
A survey of software testingTao He
 
SE2_Lec 21_ TDD and Junit
SE2_Lec 21_ TDD and JunitSE2_Lec 21_ TDD and Junit
SE2_Lec 21_ TDD and JunitAmr E. Mohamed
 
An Insight into the Black Box and White Box Software Testing
An Insight into the Black Box and White Box Software Testing An Insight into the Black Box and White Box Software Testing
An Insight into the Black Box and White Box Software Testing BugRaptors
 
01 software test engineering (manual testing)
01 software test engineering (manual testing)01 software test engineering (manual testing)
01 software test engineering (manual testing)Siddireddy Balu
 
New software testing-techniques
New software testing-techniquesNew software testing-techniques
New software testing-techniquesFincy V.J
 

What's hot (20)

Testing, black ,white and gray box testing
Testing, black ,white and gray box testingTesting, black ,white and gray box testing
Testing, black ,white and gray box testing
 
formal verification
formal verificationformal verification
formal verification
 
White box & black box testing
White box & black box testingWhite box & black box testing
White box & black box testing
 
XINTscope
XINTscopeXINTscope
XINTscope
 
UNIT testing
UNIT testingUNIT testing
UNIT testing
 
@#$@#$@#$"""@#$@#$"""
@#$@#$@#$"""@#$@#$"""@#$@#$@#$"""@#$@#$"""
@#$@#$@#$"""@#$@#$"""
 
Black box & white-box testing technique
Black box & white-box testing techniqueBlack box & white-box testing technique
Black box & white-box testing technique
 
An Empirical Study of Adoption of Software Testing in Open Source Projects
An Empirical Study of Adoption of Software Testing in Open Source ProjectsAn Empirical Study of Adoption of Software Testing in Open Source Projects
An Empirical Study of Adoption of Software Testing in Open Source Projects
 
A survey of software testing
A survey of software testingA survey of software testing
A survey of software testing
 
White box testing
White box testingWhite box testing
White box testing
 
SE2_Lec 21_ TDD and Junit
SE2_Lec 21_ TDD and JunitSE2_Lec 21_ TDD and Junit
SE2_Lec 21_ TDD and Junit
 
An Insight into the Black Box and White Box Software Testing
An Insight into the Black Box and White Box Software Testing An Insight into the Black Box and White Box Software Testing
An Insight into the Black Box and White Box Software Testing
 
Notes on teaching software testing
Notes on teaching software testingNotes on teaching software testing
Notes on teaching software testing
 
01 software test engineering (manual testing)
01 software test engineering (manual testing)01 software test engineering (manual testing)
01 software test engineering (manual testing)
 
3.software testing
3.software testing3.software testing
3.software testing
 
Unit testing
Unit testing Unit testing
Unit testing
 
testing
testingtesting
testing
 
Transactionflow
TransactionflowTransactionflow
Transactionflow
 
New software testing-techniques
New software testing-techniquesNew software testing-techniques
New software testing-techniques
 
H testing and debugging
H testing and debuggingH testing and debugging
H testing and debugging
 

Similar to An Application of Test-Driven Development Methodology into the Process of Hardware Creation (a View from a Software Perspective)

6 article azojete vol 9 51 67
6 article azojete vol 9 51 676 article azojete vol 9 51 67
6 article azojete vol 9 51 67Oyeniyi Samuel
 
1unit--Embedded Systems
1unit--Embedded Systems1unit--Embedded Systems
1unit--Embedded SystemsDhana Laxmi
 
Optimization of Latency of Temporal Key Integrity Protocol (TKIP) Using Graph...
Optimization of Latency of Temporal Key Integrity Protocol (TKIP) Using Graph...Optimization of Latency of Temporal Key Integrity Protocol (TKIP) Using Graph...
Optimization of Latency of Temporal Key Integrity Protocol (TKIP) Using Graph...ijcseit
 
Optimization of latency of temporal key Integrity protocol (tkip) using graph...
Optimization of latency of temporal key Integrity protocol (tkip) using graph...Optimization of latency of temporal key Integrity protocol (tkip) using graph...
Optimization of latency of temporal key Integrity protocol (tkip) using graph...ijcseit
 
System verilog important
System verilog importantSystem verilog important
System verilog importantelumalai7
 
Michael_Joshua_Validation
Michael_Joshua_ValidationMichael_Joshua_Validation
Michael_Joshua_ValidationMichaelJoshua
 
Software development for the COMPASS experiment
Software development for the COMPASS experimentSoftware development for the COMPASS experiment
Software development for the COMPASS experimentbodlosh
 
SE2023 0401 Software Coding and Testing.pptx
SE2023 0401 Software Coding and Testing.pptxSE2023 0401 Software Coding and Testing.pptx
SE2023 0401 Software Coding and Testing.pptxBharat Chawda
 
Microcontroller Based Testing of Digital IP-Core
Microcontroller Based Testing of Digital IP-CoreMicrocontroller Based Testing of Digital IP-Core
Microcontroller Based Testing of Digital IP-CoreVLSICS Design
 
Performance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL ModelsPerformance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL ModelsSpace Codesign
 

Similar to An Application of Test-Driven Development Methodology into the Process of Hardware Creation (a View from a Software Perspective) (20)

6 article azojete vol 9 51 67
6 article azojete vol 9 51 676 article azojete vol 9 51 67
6 article azojete vol 9 51 67
 
Bhavani HS
Bhavani HSBhavani HS
Bhavani HS
 
1unit--Embedded Systems
1unit--Embedded Systems1unit--Embedded Systems
1unit--Embedded Systems
 
Optimization of Latency of Temporal Key Integrity Protocol (TKIP) Using Graph...
Optimization of Latency of Temporal Key Integrity Protocol (TKIP) Using Graph...Optimization of Latency of Temporal Key Integrity Protocol (TKIP) Using Graph...
Optimization of Latency of Temporal Key Integrity Protocol (TKIP) Using Graph...
 
Optimization of latency of temporal key Integrity protocol (tkip) using graph...
Optimization of latency of temporal key Integrity protocol (tkip) using graph...Optimization of latency of temporal key Integrity protocol (tkip) using graph...
Optimization of latency of temporal key Integrity protocol (tkip) using graph...
 
Ensuring code quality
Ensuring code qualityEnsuring code quality
Ensuring code quality
 
System verilog important
System verilog importantSystem verilog important
System verilog important
 
Michael_Joshua_Validation
Michael_Joshua_ValidationMichael_Joshua_Validation
Michael_Joshua_Validation
 
I04425457
I04425457I04425457
I04425457
 
Praveen Kumar S S.docx(1)
Praveen Kumar S S.docx(1)Praveen Kumar S S.docx(1)
Praveen Kumar S S.docx(1)
 
Software development for the COMPASS experiment
Software development for the COMPASS experimentSoftware development for the COMPASS experiment
Software development for the COMPASS experiment
 
Resume
ResumeResume
Resume
 
SE2023 0401 Software Coding and Testing.pptx
SE2023 0401 Software Coding and Testing.pptxSE2023 0401 Software Coding and Testing.pptx
SE2023 0401 Software Coding and Testing.pptx
 
Microcontroller Based Testing of Digital IP-Core
Microcontroller Based Testing of Digital IP-CoreMicrocontroller Based Testing of Digital IP-Core
Microcontroller Based Testing of Digital IP-Core
 
Cocomo
CocomoCocomo
Cocomo
 
Rashmi_Palakkal_CV
Rashmi_Palakkal_CVRashmi_Palakkal_CV
Rashmi_Palakkal_CV
 
Surya resume
Surya resumeSurya resume
Surya resume
 
Performance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL ModelsPerformance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL Models
 
Prasad_Meduri
Prasad_MeduriPrasad_Meduri
Prasad_Meduri
 
Cocomo models
Cocomo modelsCocomo models
Cocomo models
 

More from Sergey Staroletov

Distributed Systems Presentation for Business informatics students (Staroletov)
Distributed Systems Presentation for Business informatics students (Staroletov)Distributed Systems Presentation for Business informatics students (Staroletov)
Distributed Systems Presentation for Business informatics students (Staroletov)Sergey Staroletov
 
Теория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямТеория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямSergey Staroletov
 
Staroletov Design by Contract, verification of Cyber-physical systems
Staroletov Design by Contract, verification of Cyber-physical systemsStaroletov Design by Contract, verification of Cyber-physical systems
Staroletov Design by Contract, verification of Cyber-physical systemsSergey Staroletov
 
Staroletov MBC (Model Based Checking)
Staroletov MBC (Model Based Checking)Staroletov MBC (Model Based Checking)
Staroletov MBC (Model Based Checking)Sergey Staroletov
 
Staroletov testing TDD BDD MBT
Staroletov testing TDD BDD MBTStaroletov testing TDD BDD MBT
Staroletov testing TDD BDD MBTSergey Staroletov
 
Towards a Probabilistic Extension to Non-Deterministic Transitions in Model-B...
Towards a Probabilistic Extension to Non-Deterministic Transitions in Model-B...Towards a Probabilistic Extension to Non-Deterministic Transitions in Model-B...
Towards a Probabilistic Extension to Non-Deterministic Transitions in Model-B...Sergey Staroletov
 
Applying Model Checking Approach with Floating Point Arithmetic for Verificat...
Applying Model Checking Approach with Floating Point Arithmetic for Verificat...Applying Model Checking Approach with Floating Point Arithmetic for Verificat...
Applying Model Checking Approach with Floating Point Arithmetic for Verificat...Sergey Staroletov
 

More from Sergey Staroletov (8)

Distributed Systems Presentation for Business informatics students (Staroletov)
Distributed Systems Presentation for Business informatics students (Staroletov)Distributed Systems Presentation for Business informatics students (Staroletov)
Distributed Systems Presentation for Business informatics students (Staroletov)
 
Теория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямТеория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциям
 
Staroletov Design by Contract, verification of Cyber-physical systems
Staroletov Design by Contract, verification of Cyber-physical systemsStaroletov Design by Contract, verification of Cyber-physical systems
Staroletov Design by Contract, verification of Cyber-physical systems
 
Staroletov MBC (Model Based Checking)
Staroletov MBC (Model Based Checking)Staroletov MBC (Model Based Checking)
Staroletov MBC (Model Based Checking)
 
Staroletov testing TDD BDD MBT
Staroletov testing TDD BDD MBTStaroletov testing TDD BDD MBT
Staroletov testing TDD BDD MBT
 
Towards a Probabilistic Extension to Non-Deterministic Transitions in Model-B...
Towards a Probabilistic Extension to Non-Deterministic Transitions in Model-B...Towards a Probabilistic Extension to Non-Deterministic Transitions in Model-B...
Towards a Probabilistic Extension to Non-Deterministic Transitions in Model-B...
 
Applying Model Checking Approach with Floating Point Arithmetic for Verificat...
Applying Model Checking Approach with Floating Point Arithmetic for Verificat...Applying Model Checking Approach with Floating Point Arithmetic for Verificat...
Applying Model Checking Approach with Floating Point Arithmetic for Verificat...
 
Cameroun (Francophone day)
Cameroun (Francophone day)Cameroun (Francophone day)
Cameroun (Francophone day)
 

Recently uploaded

Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 

Recently uploaded (20)

Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 

An Application of Test-Driven Development Methodology into the Process of Hardware Creation (a View from a Software Perspective)

  • 1. TDHD: Staroletov, Fedorov An Application of Test-Driven Development Methodology into the Process of Hardware Creation (a View from a Software Perspective) Sergey Staroletov (PhD), Vladimir Fedorov (student) Polzunov Altai State Technical University, Lenin avenue 46, Barnaul, 656038, Russia Email: serg soft@mail.ru ** vladimir.fodorow@gmail.com 1 / 8
  • 2. TDHD: Staroletov, Fedorov Some notable differences of device testing The testing process of the code running on a device is quite different from the testing used in Software Engineering. We identified the following main differences: 1 The time parameter is added, the tests should check not just the correspondence of the output value according to a given input, but the correspondence of the output signals over time according to specified input signals 2 A rather long synthesis time, project deployment, a large number of signals, a short device response time lead to the fact that static testing methods (simulation) become very important during the development 3 The complexity of determining a current state of the working code on the device. 4 Dynamic testing is carried out by connecting external logic analyzers 2 / 8
  • 3. TDHD: Staroletov, Fedorov FPGA FPGA (field-programmable gate array) is a device (a special processor) that contains developer-reconfigurable blocks with inputs and outputs, and their configuration code is written in a special language for describing integrated circuit hardware (HDL, hardware description language). The advantage of using FPGAs while working with external equipment to the microcontrollers (such as, for example, Arduino or STM32 and especially to devices with an operating system like Raspberry Pi) is that the processor here does not run some compiled machine code, and its logic is programmed especially to solve a given task. 3 / 8
  • 4. TDHD: Staroletov, Fedorov Verilog Verilog language is a high-level C- and Pascal-like at the level of operations, conditions, and cycles, which is then synthesized into logical elements of the FPGA. Verilog program describes modules connected by inputs and outputs, and one can declare memory registers in the form of bitwise data and their arrays, connections, and control structures. The programs are written according to the event-oriented pattern, usually at a positive or negative front of a change of frequency clock or some other signal. The code always@(posedge clock 50M ) begin dacclk a <=dacclk ; end is performed at a f = 50 MHz. And NO delay loops in code. 4 / 8
  • 5. TDHD: Staroletov, Fedorov TDD (Test-Driven Development) Usual developing paradigm TDD developing paradigm (Kent Beck) 5 / 8
  • 6. TDHD: Staroletov, Fedorov A TDD Process in HD (TDHD) 1 Create a project for the target hardware. Create a git-repository and commit. Use git commit at each step 2 Define the external interface according using MDD in a graphical editor, then generate a test containing a link to the main program block with these signals and the code of this block. Start adding low-level blocks. 3 Next, it’s time to implement the code only to pass the test 4 Using the component development model, integrate an IP (IP or Intellectual Property, similar to the components) and integrate at the block layer when needs, write trivial tests. 5 Manually determine the signals by drawing them on a timing diagram, or use a logic analyzer and record the real signals and generate tests 6 Refactor and create more tests for blocks. Add more blocks 6 / 8
  • 7. TDHD: Staroletov, Fedorov Hardware sound player from an SD card developing using the TDHD process 7 / 8
  • 8. TDHD: Staroletov, Fedorov Our demo software for the TDHD process 8 / 8