tiennghe27
Newbie level 4
hi everyone, can you help me? i write this code, a pulse with period 300ms. then it delay 200ms. but when i measure, width pulse change, i got 0.001ms and 0.0001ns
this is image
Code Verilog - [expand] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 // VerilogA for baitap, ngovaox1, veriloga `include "constants.vams" `include "disciplines.vams" module ngovaox1(plus2,minus); output plus2, minus; electrical plus2, minus; parameter real period =300m; parameter real vdd=1; parameter real d=1u; real value2; analog begin /// tao cho data 2 @(timer (0, 8*period)) begin value2=0; $discontinuity (1); end @(timer (0.000000001, 8*period)) begin value2=-1; $discontinuity (1); end @(timer (0*period+d, 8*period)) begin value2=0; $discontinuity (1); end @(timer (1*period, 8*period)) begin value2=1; $discontinuity (1); end @(timer (1*period+d, 8*period)) begin value2=0; $discontinuity (1); end @(timer (2*period, 8*period)) begin value2=1; $discontinuity (1); end @(timer (2*period+d, 8*period)) begin value2=0; $discontinuity (1); end @(timer (3*period, 8*period)) begin value2=-1; $discontinuity (1); end @(timer (3*period+d, 8*period)) begin value2=0; $discontinuity (1); end @(timer (4*period, 8*period)) begin value2=1; $discontinuity (1); end @(timer (4*period+d, 8*period)) begin value2=0; $discontinuity (1); end @(timer (5*period, 8*period)) begin value2=-1; $discontinuity (1); end @(timer (5*period+d, 8*period)) begin value2=0; $discontinuity (1); end @(timer (6*period, 8*period)) begin value2=-1; $discontinuity (1); end @(timer (6*period+d, 8*period)) begin value2=0; $discontinuity (1); end @(timer (7*period, 8*period)) begin value2=1; $discontinuity (1); end @(timer (7*period+d, 8*period)) begin value2=0; $discontinuity (1); end V(plus2,minus) <+ transition (value2, 0, 0.000001n, 0.000001n); end endmodule
this is image
Last edited by a moderator: