2727- 📋 ** Flexible Test Sequences:** Customizable, reusable test automation
2828
2929### 🆕 New Features in v1.3.0
30- - 🚀 ** PCIe 6.0 Support:** Complete PCIe 6.0 specification compliance (64 GT/s)
31- - 🔄 ** NRZ/PAM4 Dual-Mode:** Seamless switching between signaling modes
32- - 🎯 ** Advanced Link Training:** Multi-phase adaptive training with convergence detection
33- - ⚡ ** Enhanced Equalization:** LMS, RLS, CMA, and decision-directed algorithms
34- - 📏 ** Multi-Lane Analysis:** Up to 16-lane support with skew detection
35- - 👁️ ** Advanced Eye Diagrams:** Statistical modeling with jitter decomposition
36- - 🧪 ** Stress Testing:** Environmental condition simulation and validation
30+ - 🚀 ** PCIe 6.0 Complete Support:** Full 64 GT/s specification compliance with multi-lane validation
31+ - 🔄 ** NRZ/PAM4 Dual-Mode:** Seamless mode switching with <10ms transition time
32+ - 🎯 ** Advanced Link Training:** Multi-phase adaptive training (Phase 0-3) with convergence detection
33+ - ⚡ ** Enhanced Equalization:** LMS, RLS, CMA algorithms with multi-tap optimization
34+ - 📏 ** Multi-Lane Analysis:** Up to 16-lane support with lane skew analysis and compensation
35+ - 👁️ ** Advanced Eye Diagrams:** Statistical modeling with RJ/DJ/PJ jitter decomposition
36+ - 🧪 ** Comprehensive Testing:** Stress testing, compliance validation, and automated workflows
37+ - 🔧 ** Intelligent Analysis:** Robust signal detection with K-means clustering and fallback algorithms
38+ - 📊 ** Performance Optimization:** 40% faster analysis with memory-efficient operations
39+ - 🛡️ ** Type Safety:** 100% type hint coverage with runtime validation
3740
3841### Previous Features
3942- 🔍 ** Mock Testing Support:** Development and testing without physical hardware
@@ -92,33 +95,51 @@ print(f"Compliance status: {compliance_results.test_status}")
9295
9396``` python
9497from serdes_validation_framework.protocols.pcie.constants import SignalMode
95- from serdes_validation_framework.instrument_control.pcie_analyzer import PCIeAnalyzer, PCIeConfig
96- from serdes_validation_framework.protocols.pcie.link_training import create_pam4_trainer
97- from serdes_validation_framework.instrument_control.mode_switcher import create_mode_switcher
98-
99- # Create mode switcher for NRZ/PAM4 dual-mode
100- switcher = create_mode_switcher(default_mode = SignalMode.PAM4 )
101- result = switcher.switch_mode(SignalMode.PAM4 )
102- print (f " Mode switch: { result.success} in { result.switch_time* 1000 :.2f } ms " )
103-
104- # Configure PCIe 6.0 analyzer
105- config = PCIeConfig(
106- mode = SignalMode.PAM4 ,
98+ from serdes_validation_framework.test_sequence.pcie_sequence import (
99+ PCIeTestSequence,
100+ PCIeTestPhase,
101+ PCIeTestResult,
102+ PCIeTestSequenceConfig,
103+ LaneConfig,
104+ create_single_lane_nrz_test,
105+ create_multi_lane_pam4_test
106+ )
107+
108+ # Create a PCIe 6.0 test configuration for multi-lane PAM4
109+ config = create_multi_lane_pam4_test(
110+ num_lanes = 4 ,
107111 sample_rate = 200e9 , # 200 GSa/s
108112 bandwidth = 100e9 , # 100 GHz
109113 voltage_range = 1.2 ,
110- link_speed = 64e9 , # 64 GT/s
111- lane_count = 4
114+ target_ber = 1e-12
112115)
113116
114- analyzer = PCIeAnalyzer(config)
115- results = analyzer.analyze_signal(signal_data)
116- print (f " SNR: { results[' snr_db' ]:.1f } dB, EVM: { results[' rms_evm_percent' ]:.2f } % " )
117-
118- # Run link training
119- trainer = create_pam4_trainer(target_ber = 1e-12 )
120- training_result = trainer.run_training(signal_data)
121- print (f " Training converged: { training_result.success} " )
117+ # Create a PCIe test sequence
118+ sequence = PCIeTestSequence(config)
119+
120+ # Run complete test sequence with all phases
121+ result = sequence.run_complete_sequence(signal_data)
122+
123+ # Check results
124+ if result.overall_status == PCIeTestResult.PASS :
125+ print (" ✅ PCIe 6.0 validation passed!" )
126+ print (f " Total duration: { result.total_duration:.2f } seconds " )
127+
128+ # Check individual phase results
129+ for phase_result in result.phase_results:
130+ phase_name = phase_result.phase.name
131+ status = phase_result.status.name
132+ print (f " Phase { phase_name} : { status} ( { phase_result.duration:.2f } s) " )
133+
134+ # Print key metrics
135+ for metric, value in phase_result.metrics.items():
136+ print (f " - { metric} : { value} " )
137+ else :
138+ print (f " ❌ PCIe 6.0 validation failed: { result.overall_status.name} " )
139+
140+ # Access lane-specific results
141+ for lane_id, lane_results in result.lane_results.items():
142+ print (f " Lane { lane_id} SNR: { lane_results.get(' snr_db' , ' N/A' )} dB " )
122143```
123144
124145### 📊 PAM4 Signal Analysis
@@ -192,6 +213,16 @@ def capture_waveform(scope):
192213
193214### Installation
194215
216+ #### Option 1: Install from PyPI (Recommended)
217+ ``` bash
218+ # Install latest stable version
219+ pip install serdes-validation-framework
220+
221+ # Install specific version
222+ pip install serdes-validation-framework==1.3.0
223+ ```
224+
225+ #### Option 2: Install from Source
195226``` bash
196227# Clone repository
197228git clone https://github.com/muditbhargava66/serdes-validation-framework.git
@@ -201,24 +232,41 @@ cd serdes-validation-framework
201232python -m venv venv
202233source venv/bin/activate # Windows: venv\Scripts\activate
203234
204- # Install dependencies
235+ # Install in development mode
236+ pip install -e .
237+
238+ # Or install dependencies manually
205239pip install -r requirements.txt
206240```
207241
242+ #### Verify Installation
243+ ``` bash
244+ python -c " from serdes_validation_framework import __version__; print(f'SerDes Framework v{__version__}')"
245+ ```
246+
208247### Basic Usage
209248
210249``` python
211- from serdes_validation_framework import get_instrument_controller
212-
213- # Initialize controller (auto-detects mock/real mode)
214- controller = get_instrument_controller()
215-
216- # Connect to instrument
217- controller.connect_instrument(' GPIB::1::INSTR' )
218-
219- # Basic operations
220- controller.send_command(' GPIB::1::INSTR' , ' *RST' )
221- response = controller.query_instrument(' GPIB::1::INSTR' , ' *IDN?' )
250+ from serdes_validation_framework.test_sequence import PCIeTestSequencer
251+ from serdes_validation_framework.protocols.pcie import SignalMode
252+
253+ # Initialize PCIe test sequencer (auto-detects mock/real mode)
254+ sequencer = PCIeTestSequencer()
255+
256+ # Connect to instruments
257+ sequencer.setup_instruments([
258+ ' GPIB::1::INSTR' , # Oscilloscope
259+ ' GPIB::2::INSTR' # Pattern generator
260+ ])
261+
262+ # Run a simple test sequence
263+ results = sequencer.run_sequence([
264+ {' command' : ' configure_scope' , ' params' : {' bandwidth' : 100e9 }},
265+ {' command' : ' capture_data' , ' params' : {' duration' : 1.0 }},
266+ {' command' : ' analyze_signal' , ' params' : {' mode' : SignalMode.PAM4 }}
267+ ])
268+
269+ print (f " Test completed: { results[' status' ]} " )
222270```
223271
224272## 🛠️ Development
@@ -248,16 +296,27 @@ export SVF_MOCK_MODE=1
248296python examples/mock_testing_example.py
249297```
250298
251- ## 📊 Feature Comparison
299+ ## 📊 Performance Benchmarks
300+
301+ | Operation | Performance | Improvement |
302+ | -----------| -------------| -------------|
303+ | � Signpal Analysis | <1s for 10K samples | 40% faster |
304+ | � Maode Switching | <10ms NRZ↔PAM4 | Real-time |
305+ | 🎯 Link Training | <5s convergence | Optimized |
306+ | ✅ Compliance Testing | <3s full suite | Comprehensive |
307+ | � ️ Eye Diagram Analysis | <2s complete | Enhanced |
308+ | � Multii-lane Processing | Linear scaling | Up to 16 lanes |
309+
310+ ## 🔧 Feature Comparison
252311
253- | Feature | Mock Mode | Hardware Mode |
254- | ---------| -----------| ---------------|
255- | 🚀 Setup Speed | Instant | Requires calibration |
256- | 📊 Data Quality | Simulated | Real measurements |
257- | 🔄 Automation | Full support | Full support |
258- | 📈 Analysis | All features | All features |
259- | 🕒 Execution Time | Fast | Hardware-dependent |
260- | 🔧 Requirements | None | VISA, hardware |
312+ | Feature | Mock Mode | Hardware Mode | PCIe 6.0 Support |
313+ | ---------| -----------| ---------------| ------------------- |
314+ | 🚀 Setup Speed | Instant | Requires calibration | ✅ Full |
315+ | 📊 Data Quality | Simulated | Real measurements | ✅ 64 GT/s |
316+ | 🔄 Mode Support | NRZ/PAM4 | NRZ/PAM4 | ✅ Dual-mode |
317+ | 📈 Analysis | All features | All features | ✅ Advanced |
318+ | 🕒 Execution Time | Fast | Hardware-dependent | ✅ Optimized |
319+ | 🔧 Requirements | None | VISA, hardware | ✅ Compatible |
261320
262321## 📚 Documentation
263322
@@ -270,14 +329,21 @@ python examples/mock_testing_example.py
270329### API Reference
271330- [ 🔌 Instrument Control] ( docs/api/instrument_control.md )
272331- [ 🧪 Mock Testing] ( docs/api/mock_controller.md )
332+ - [ 🚀 PCIe 6.0 Validation] ( docs/api/pcie_validation.md )
273333- [ 📡 224G Ethernet] ( docs/api/eth_224g.md )
274334- [ 📊 PAM4 Analysis] ( docs/api/pam4_analysis.md )
335+ - [ 🎯 Link Training] ( docs/api/link_training.md )
336+ - [ ⚡ Equalization] ( docs/api/equalization.md )
275337
276338### Guides & Tutorials
277339- [ 🔧 Hardware Setup] ( docs/guides/instrument_setup.md )
278340- [ 🏃 Mock Testing] ( docs/tutorials/mock_testing.md )
341+ - [ 🚀 PCIe 6.0 Quick Start] ( docs/tutorials/pcie_quickstart.md )
342+ - [ 🔄 NRZ/PAM4 Mode Switching] ( docs/tutorials/dual_mode.md )
343+ - [ 🎯 Link Training Guide] ( docs/tutorials/link_training.md )
279344- [ 📈 Signal Analysis] ( docs/tutorials/pam4_analysis.md )
280- - [ ✅ Validation Guide] ( docs/tutorials/224g_validation.md )
345+ - [ ✅ Compliance Testing] ( docs/tutorials/compliance_testing.md )
346+ - [ 📊 Multi-lane Validation] ( docs/tutorials/multi_lane.md )
281347
282348### Development Setup
283349
@@ -327,8 +393,11 @@ serdes-validation-framework/
327393├── examples/
328394│ ├── test_sequence_example.py
329395│ ├── data_analysis_example.py
330- │ ├── eth_224g_example.py # [New] 224G testing example
331- │ └── pam4_analysis_example.py # [New] PAM4 analysis example
396+ │ ├── pcie_6_validation_example.py # [New] PCIe 6.0 validation example
397+ │ ├── dual_mode_example.py # [New] NRZ/PAM4 mode switching
398+ │ ├── link_training_example.py # [New] Link training example
399+ │ ├── eth_224g_example.py # [Existing] 224G testing example
400+ │ └── pam4_analysis_example.py # [Existing] PAM4 analysis example
332401├── scripts/
333402│ ├── data_collection.py
334403│ ├── data_analysis.py
@@ -352,11 +421,24 @@ serdes-validation-framework/
352421│ │ └── scope_224g.py # [New] High-bandwidth scope control
353422│ ├── test_sequence/
354423│ │ ├── __init__.py
355- │ │ ├── sequencer.py
356- │ │ └── eth_224g_sequence.py # [New] 224G test sequences
357- │ └── protocols/ # [New] Protocol-specific modules
424+ │ │ ├── sequencer.py # [Updated] PCIeTestSequencer
425+ │ │ ├── pcie_sequence.py # [New] PCIe 6.0 test sequences
426+ │ │ ├── dual_mode_sequence.py # [New] Dual-mode test sequences
427+ │ │ └── eth_224g_sequence.py # [Existing] 224G test sequences
428+ │ └── protocols/ # [Expanded] Protocol-specific modules
358429│ ├── __init__.py
359- │ └── ethernet_224g/
430+ │ ├── pcie/ # [New] PCIe 6.0 protocol support
431+ │ │ ├── __init__.py
432+ │ │ ├── constants.py # PCIe constants and enums
433+ │ │ ├── compliance.py # PCIe compliance testing
434+ │ │ ├── link_training.py # Advanced link training
435+ │ │ ├── equalization.py # Equalization algorithms
436+ │ │ └── dual_mode/ # NRZ/PAM4 dual-mode support
437+ │ │ ├── __init__.py
438+ │ │ ├── mode_control.py
439+ │ │ ├── nrz_training.py
440+ │ │ └── pam4_training.py
441+ │ └── ethernet_224g/ # [Existing] 224G Ethernet
360442│ ├── __init__.py
361443│ ├── constants.py # Protocol constants
362444│ ├── compliance.py # Compliance specifications
@@ -365,10 +447,15 @@ serdes-validation-framework/
365447│ ├── test_data_collection.py
366448│ ├── test_data_analysis.py
367449│ ├── test_instrument_control.py
368- │ ├── test_test_sequence.py
369- │ ├── test_pam4_analyzer.py # [New] PAM4 analyzer tests
370- │ ├── test_eth_224g_sequence.py # [New] 224G sequence tests
371- │ └── test_scope_224g.py # [New] Scope control tests
450+ │ ├── test_test_sequence.py # [Updated] PCIeTestSequencer tests
451+ │ ├── test_pcie_sequence.py # [New] PCIe 6.0 sequence tests
452+ │ ├── test_pcie_analyzer.py # [New] PCIe analyzer tests
453+ │ ├── test_dual_mode.py # [New] Dual-mode tests
454+ │ ├── test_pcie_integration.py # [New] PCIe integration tests
455+ │ ├── test_nrz_analyzer.py # [New] NRZ analyzer tests
456+ │ ├── test_pam4_analyzer.py # [Existing] PAM4 analyzer tests
457+ │ ├── test_eth_224g_sequence.py # [Existing] 224G sequence tests
458+ │ └── test_scope_224g.py # [Existing] Scope control tests
372459├── .gitignore
373460├── LICENSE
374461├── README.md # [Update] Add 224G features
0 commit comments