chipsalliance / Cores-VeeR-EL2

VeeR EL2 Core
https://chipsalliance.github.io/Cores-VeeR-EL2/html/
Apache License 2.0
246 stars 74 forks source link

CDC Error #160

Closed Syed-mudabbir-ahsan closed 5 months ago

Syed-mudabbir-ahsan commented 7 months ago

Hi

We are facing CDC issue as shown below: image

Please check below schematic : image

We have added below constraints as mentioned in integration spec but still facing same issue: image

Do we need to add a synchronizer in the path, could you please help us to check?

algrobman commented 7 months ago

1) you can't use simple synchronizers to pass a bus to another clocking domain. You'll get bit divergence. 2) there is no need in the synchronizers for buses passing between TCK and CLK clocks domains. TAP controller and Debug Module (DM) logical designs guarantee that flops from both sides sample other side buses when they are stable. Read and Write control signals from TCK clock domain to DM are synchronized to the CPU CLK clock.

Specifically for this path dmi_reg_rdata from CLK clock domain is latched at one TCK clock, but sampled by JTAG SR register in different TCK clock. (TCK clock should be at least 2 times slower than CLK to make this circuit work reliably, which is normally a case - CPU is clocked by 100s MHz clock while TCK is 10MHz or less )