A Real World Clock Generator Class For UVM
A Real World Clock Generator Class For UVM
Frequency
Low time
parallel_data[7:0]
parallel_clk serial_data
Serializer
serial_clk
parallel_data[7:0]
serial_data parallel_clk
DeSerializer
serial_clk
par_data par_data
Channel
clk Serializer DeSerializer clk
par_data par_data
Channel
1 UI A B
Channel
1 UI A B
Channel
1 UI A B <1 UI
parallel_data[7:0]
serial_data parallel_clk
DeSerializer
serial_clk
1 UI
parallel_data[7:0]
serial_data parallel_clk
DeSerializer
serial_clk
<1 UI
Ideal clock
Ideal Stimulus
1 UI
Non- Ideal clock
Ideal clock
Ideal clock
{
𝑡 𝑜𝑏𝑠= 𝑡 0 ± 𝑤𝑎𝑛𝑑𝑒𝑟 _ 𝑎𝑚𝑜𝑢𝑛𝑡 ,∧𝑐𝑙𝑜𝑐𝑘 _ 𝑐𝑦𝑐𝑙𝑒 _ 𝑛𝑜=𝑚𝑛
𝑡 0 ,∧𝑒𝑙𝑠𝑒
where τ = x-µ
{
2
𝜏
1 −
2𝜎
2
DUT
(Module)
Base Test
Clock Generator
(Module)
DUT
(Module)
Base Test
Clock Generator
(Module)
Adding clock
control signals
Test Bench UVM Test case
(Module)
DUT
(Module)
Base Test
Clock Generator
(Module)
Adding clock
control signals
Test Bench UVM Test case
(Module)
DUT
(Module)
Base Test
Clock Generator
(Module)
Adding clock
control signals
Test Bench UVM Test case
(Module)
DUT
(Module)
Base Test
Clock Generator
(Module)
Adding clock
control signals
Test Bench UVM Test case
(Module) Interface
becoming
bulkier!
Interface
Base Test
DUT
(Module) Clock Generator
(Class)
Interface size
reduced!
Test Bench UVM Test case
(Module) Clock control
signals not
required!
• Tonal jitter