The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Modeling >> Behavioral Models >> cannot filter out short pulses
https://designers-guide.org/forum/YaBB.pl?num=1280217006

Message started by Pavel on Jul 27th, 2010, 12:50am

Title: cannot filter out short pulses
Post by Pavel on Jul 27th, 2010, 12:50am

Hello,

I want my latch to filter out short pulses (shorter than 0.15ns).
But in spite of standard it doesn't. Here is code:


Code:
`timescale 1 ns / 1 ps

module Latch(nD, nGate, Q);
 input nD, nGate;
 output reg Q;
 
 always @(nGate, nD)
     if(nGate == 0) Q <= ~nD;
     else Q <= Q;
       
 specify
     specparam tRise_nGate_Q = 0.15, tFall_nGate_Q = 0.2;
     (negedge nGate *> (Q+:nD)) = (tRise_nGate_Q, tFall_nGate_Q);
 endspecify

endmodule


Where is my mistake ?

Thanks,

Pavel.

Title: Re: cannot filter out short pulses
Post by Marq Kole on Aug 3rd, 2010, 7:17am

You might want to have a look at the PATHPULSE$ specparam (section 14.6.1 of the 1364-2005 IEEE Verilog LRM) which explains how to filter out short pulses with the specify block.

Cheers,
Marq

Title: Re: cannot filter out short pulses
Post by Ken Kundert on Aug 3rd, 2010, 10:37am

I tend to use the inertial delay of the continuous assignment statement to filter out short pulses. You might want to try that.

-Ken

The Designer's Guide Community Forum » Powered by YaBB 2.2.2!
YaBB © 2000-2008. All Rights Reserved.