パルス発生器

周波数とデュティーを変えられるパルス発生器です。 1の期間を4ビット、0の期間を4ビットで設定することで 周波数とデュティーを変えています。

file: sample13
topic10a.jpg(19226 byte)

論理譜

logicname yahoo14

entity main
input  reset;
input  dhno[4];
input  dlno[4];

output q;

bitr   dhcount[4];
bitr   dlcount[4];
bitr   wv;

output T0P[4]; T0P=dhcount;
output T1P[4]; T1P=dlcount;

   if (reset)
      dhcount=dhno;
   else
      if (wv)
         if (dhcount==0)
            dhcount=dhcount;
         else
            dhcount=dhcount-1;
         endif
      else
         dhcount=dhno;
      endif
   endif

   if (reset)
      dlcount=dlno;
   else
      if (!wv)
         if (dlcount==0)
            dlcount=dlcount;
         else
            dlcount=dlcount-1;
         endif
      else
         dlcount=dlno;
      endif
   endif

   if (reset)
      wv=0;
   else
      switch(wv)
         case 0:
            if (dlcount==0)
               wv=1;
            else
               wv=wv;
            endif
         case 1:
            if (dhcount==0)
               wv=0;
            else
               wv=wv;
            endif
      endswitch
   endif

   q=wv;
ende

entity sim
output reset;
output dhno[4];
output dlno[4];
output q;

bitr   tc[8];

   part main(reset,dhno,dlno,q)

   tc=tc+1;

   if (tc<5) reset=1; endif

   if (tc<50)
      dhno=5;
      dlno=10;
   else
      dhno=3;
      dlno=2;
   endif

ende

endlogic