久久久国产精品视频袁燕,99re久久精品国产,亚洲欧美日韩国产综合v,天天躁夜夜躁狠狠久久,激情五月婷婷激情五月婷婷

  • 回復(fù)
  • 收藏
  • 點(diǎn)贊
  • 分享
  • 發(fā)新帖

數(shù)字信號(hào)Delay模型的MAST建模

Dear All:

  用Saber有段時(shí)間了,發(fā)現(xiàn)其模型中少了一個(gè)數(shù)字信號(hào)的delay模型;此功能在仿真時(shí),仿真時(shí)還是會(huì)用到的;雖然saber有buffer模型可以進(jìn)行delay,但其是同時(shí)對(duì)上升沿和下降沿進(jìn)行delay的;對(duì)于一些只對(duì)單邊延時(shí)的需要,此模型就愛莫能助了。因此我利用MAST語言寫了一個(gè)delay模型,此模型可對(duì)上升沿、下降沿、雙沿delay進(jìn)行單獨(dú)配置,方便實(shí)際應(yīng)用。有需要的朋友,可以試一下,以下為MAST代碼。

//  ..................................//

template delay_mast in out=Td,type

state logic_4 in,out

enum {Rising,Falling,Dual} type=Dual

number Td=0 #Define delay time

{

  number del_ID=0 # Identifier of delay type: 1--Rising;-1--Falling;0--Dual

  parameters {

   if(Td<0) {

     error("%:Td should be not less than 0:Td=%",instance(),Td) # error information for Td<0

   }

   if(type==Rising) {

del_ID=1

}

else if(type==Falling) {

del_ID=-1

}

else {

del_ID=0

}

  }

  when(dc_init){

    schedule_event(time,out,in) #Setting out=in at DC analysis

  }

  when(event_on(in)){

    if(del_ID==0) {

      schedule_event(time+Td,out,in)

}

else if(del_ID==1){

 if(in==l4_1) {

   schedule_event(time+Td,out,in)

 }

 else {

   schedule_event(time,out,in)

 }

}

else {

 if(in==l4_0){

   schedule_event(time+Td,out,in)

 }

 else {

    schedule_event(time,out,in)

 }

}

  }

}

//..........................................................// 
有關(guān)如何使用代碼生成模型并在saber中使用,就不多說了;記得domono兄之前的文章提到用法,大家可以參考一下。

全部回復(fù)(16)
正序查看
倒序查看
bingyuytp
LV.3
2
2012-06-08 22:47

好東東,多謝大俠,學(xué)習(xí)中

0
回復(fù)
2012-06-13 11:01
@bingyuytp
好東東,多謝大俠,學(xué)習(xí)中
看看這個(gè)效果 是否是你想要的?\
0
回復(fù)
bingyuytp
LV.3
4
2012-06-13 11:28
@andy.zhou.nuaa
看看這個(gè)效果[圖片] 是否是你想要的?\
酷!
0
回復(fù)
bingyuytp
LV.3
5
2012-06-13 11:29
@bingyuytp
酷!

大俠 如何實(shí)現(xiàn)?

0
回復(fù)
2012-06-13 11:38
@bingyuytp
大俠如何實(shí)現(xiàn)?
template pulse_5v inp inm outp outm =td
electrical inp,inm,outp,outm
number td
{
  state time tnow=-1
  val v vin
  state v vout
  var i i
  state nu before,after

 values{
  vin=v(inp)-v(inm)  
}
    
  when(threshold(vin,2.5,before,after)){
    if((after==1)|(after==-1))  {
  schedule_event(time,vout,2.5) 
  tnow=time
  }
     }
  
  when(dc_domain | time_domain){
      
   if(vout==2.5) { 
       if(time>=(tnow+td))  {

     vout=vin
      schedule_next_time(time+td)
        }
  }
     }
  
  equations{
     i(outp)+=i
     i(outm)-=i
i:v(outp)-v(outm)=vout
  }
}
//上面是mast代碼,根據(jù)這個(gè)自己建立一個(gè)模型即可。
0
回復(fù)
bingyuytp
LV.3
7
2012-06-13 11:50
@andy.zhou.nuaa
templatepulse_5vinpinmoutpoutm=tdelectricalinp,inm,outp,outmnumbertd{ statetimetnow=-1 valvvin statevvout varii statenubefore,after values{ vin=v(inp)-v(inm) }    when(threshold(vin,2.5,before,after)){  if((after==1)|(after==-1)) { schedule_event(time,vout,2.5)  tnow=time }   }   when(dc_domain|time_domain){      if(vout==2.5){     if(time>=(tnow+td)) {   vout=vin   schedule_next_time(time+td)    } }   }   equations{   i(outp)+=i   i(outm)-=ii:v(outp)-v(outm)=vout }}//上面是mast代碼,根據(jù)這個(gè)自己建立一個(gè)模型即可。
0
回復(fù)
bingyuytp
LV.3
8
2012-06-13 23:33
@andy.zhou.nuaa
templatepulse_5vinpinmoutpoutm=tdelectricalinp,inm,outp,outmnumbertd{ statetimetnow=-1 valvvin statevvout varii statenubefore,after values{ vin=v(inp)-v(inm) }    when(threshold(vin,2.5,before,after)){  if((after==1)|(after==-1)) { schedule_event(time,vout,2.5)  tnow=time }   }   when(dc_domain|time_domain){      if(vout==2.5){     if(time>=(tnow+td)) {   vout=vin   schedule_next_time(time+td)    } }   }   equations{   i(outp)+=i   i(outm)-=ii:v(outp)-v(outm)=vout }}//上面是mast代碼,根據(jù)這個(gè)自己建立一個(gè)模型即可。
大俠您好, 
0
回復(fù)
2012-06-14 10:39
@bingyuytp
大俠您好,[圖片] 

pulse 

這是源文件,你需要更改輸入源的上升沿和下升沿時(shí)間

0
回復(fù)
bingyuytp
LV.3
10
2012-06-14 13:24
@andy.zhou.nuaa
[圖片]pulse 這是源文件,你需要更改輸入源的上升沿和下升沿時(shí)間
請(qǐng)您查看。 
0
回復(fù)
2012-06-14 13:42
@bingyuytp
請(qǐng)您查看。[圖片] 
告訴我你需要更改哪段波形
0
回復(fù)
bingyuytp
LV.3
12
2012-06-14 13:57
@andy.zhou.nuaa
告訴我你需要更改哪段波形
圖中
0
回復(fù)
2012-06-14 15:54
@bingyuytp
圖中
// 將源代碼換成下面的試試、
 when(dc_domain | time_domain){
      
   if(vout==2.5) { 
       if(time>=(tnow+td))  {

     vout=vin
      schedule_next_time(time+td)
        }
  }
    else vout=vin 
     }
0
回復(fù)
2012-06-20 13:57
@bingyuytp
圖中
 
0
回復(fù)
qingq40
LV.1
15
2012-07-09 02:38
@andy.zhou.nuaa
//將源代碼換成下面的試試、 when(dc_domain|time_domain){      if(vout==2.5){     if(time>=(tnow+td)) {   vout=vin   schedule_next_time(time+td)    } }  elsevout=vin    }
o
0
回復(fù)
qingq40
LV.1
16
2012-07-09 02:38
@qingq40
o[圖片]
0
回復(fù)
2014-11-01 22:23
@andy.zhou.nuaa
//將源代碼換成下面的試試、 when(dc_domain|time_domain){      if(vout==2.5){     if(time>=(tnow+td)) {   vout=vin   schedule_next_time(time+td)    } }  elsevout=vin    }

大神,求教如何把MAST語言編寫的模型導(dǎo)入到saber的仿真界面??!找不到相關(guān)教程,急哭了啊

0
回復(fù)
發(fā)