Ito ang command alliance-genpat na maaaring patakbuhin sa OnWorks free hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator
PROGRAMA:
NAME
genpat, Isang procedural pattern file generator
SINOPSIS
genpat [-v] [-k] [file]
DESCRIPTION
Genpat ay isang set ng mga C fonction na nagbibigay-daan sa isang procedural na paglalarawan ng input pattern file
para sa logic simulator ASIMUT. Ang Unix genpat tumatanggap ang command ng isang C file bilang input at
gumagawa ng file ng paglalarawan ng pattern bilang output. Ang extension na ".c" ay hindi dapat ibigay. Ang
file na nabuo ni genpat ay nasa pat format, kaya MAHIHIRIT NA INIREREKOMENDA NA MAKITA tapik(5)
BAGO ANG MANWAL NA ITO.
Opsyon
-v verbose mode
-k pinapanatili ang executable kasama ang compilation Makefile pagkatapos makumpleto
GENPAT FILE FORMAT
Mula sa pananaw ng gumagamit, genpat ay isang wika ng paglalarawan ng pattern gamit ang lahat ng pamantayang C
mga pasilidad (isama, tukuyin, mga variable, loop, ...). Mga fonction na ibinigay ng genpat ay upang
gamitin sa isang ibinigay na pagkakasunud-sunod. Ang paggamit sa mga ito sa ibang pagkakasunud-sunod ay hindi mag-crash sa system, ngunit ito ay
nagreresulta sa mga error sa pagpapatupad. Narito ang sumusunod sa paglalarawan ng input file.
A tapik format file ay maaaring nahahati sa dalawang bahagi: deklarasyon at paglalarawan bahagi.
Ang bahagi ng deklarasyon ay ang listahan ng mga input, output, panloob na signal at mga rehistro.
Ang mga input ay dapat pilitin sa isang tiyak na halaga at ang lahat ng iba ay dapat sundin habang
kunwa
Ang bahagi ng paglalarawan ay isang hanay ng mga pattern, kung saan tinutukoy ng bawat pattern ang halaga ng mga input
at mga output. Ang numero ng pattern ay aktwal na kumakatawan sa ganap na oras para sa simulator.
Katulad nito, a genpat file ay maaaring nahahati sa dalawang bahagi: deklarasyon at paglalarawan bahagi.
Dapat tawagan ang mga function na nauugnay sa deklarasyon bago ang anumang function na nauugnay sa
bahagi ng paglalarawan.
pagpapahayag bahagi
Ang unang bagay na dapat mong gawin sa bahaging ito ay ibigay ang pangalan ng output file
(Tingnan ang DEF_GENPAT(3)). Pagkatapos, ang bahaging ito ay nagpapahintulot sa iyo na ideklara ang mga input, ang
mga output, at panloob na mga punto ng pagmamasid (tingnan MAGDEKLARA(3)). Posible rin na
lumikha ng mga virtual na array (tingnan ARRAY(3)).
paglalarawan bahagi
Matapos ideklara ang lahat ng mga signal, maaari mong simulan upang tukuyin ang mga halaga ng input na kung saan ay
na ilalapat sa mga input ng circuit o mga halaga ng output na dapat
ihambing sa mga halaga na ginawa sa panahon ng simulation. (tingnan EPEKTO(3)). Genpat
inilalarawan ang stimulus ayon sa kaganapan : ang mga transition lamang ng signal ang inilalarawan. Ito
bahagi ay nagpapahintulot din sa iyo na magbigay ng mga tagubilin sa simulation tool upang i-save ang
estado ng circuit sa dulo ng simulation. (tingnan SAVE(3)). Huling bagay sayo
dapat gawin sa bahaging ito ay upang makabuo ng output file (tingnan SAV_GENPAT(3)).
Mga function
DEF_GENPAT() tumutukoy sa pangalan ng output file.
SAV_GENPAT() gawin ang output file na mabuo
DECLAR() nagpapahayag ng mga input, output, at ang panloob na mga punto ng pagmamasid.
ARRAY() nagbibigay-daan sa mga signal ng parehong uri na mapangkat sa isang "virtual array" sa
upang mapagaan ang kanilang pagmamanipula
SA LOOB() binabago ang mga halaga ng mga rehistro sa pagitan ng dalawang pattern.
AFFECT() nagtatalaga ng value sa isang signal, sa isang ibinigay na pattern number. Ang halagang ito ay pinananatili
sa signal hanggang sa ang isang bagong halaga ay itinalaga sa signal.
I-SAVE() nagpapaalam sa simulation tool upang i-save ang estado ng circuit sa dulo ng
kapanggapan
LABEL() nagbibigay ng label sa kasalukuyang pattern
GETCPAT() ibalik ang numero ng kasalukuyang pattern
HALIMBAWA
# isama
#include "genpat.h"
char *inttostr(buo)
int buong;
{
char *str;
str = (char *) mbkalloc (32 * sizeof (char));
sprintf (str, "%d", kabuuan);
return(str);
}
/*--------------------------------*/
/* dulo ng paglalarawan */
/*--------------------------------*/
pangunahing ()
{
int i;
int j;
int cur_vect = 0;
DEF_GENPAT("halimbawa");
/* interface */
DECLAR ("a", ":2", "X", IN, "3 pababa sa 0", "" );
DECLAR ("b", ":2", "X", IN, "3 pababa sa 0", "" );
DECLAR ("s", ":2", "X", OUT, "3 downto 0", "" );
DECLAR ("vdd", ":2", "B", IN, "", "" );
DECLAR ("vss", ":2", "B", IN, "", "" );
LABEL ("adder");
AFFECT ("0", "vdd", "0b1");
AFFECT ("0", "vss", "0b0");
para sa (i=0; i<16; i++)
{
para sa (j=0; j<16; j++)
{
AFFECT (inttostr(cur_vect), "a", inttostr(i) );
AFFECT (inttostr(cur_vect), "b", inttostr(j) );
cur_vect++;
}
}
SAV_GENPAT ();
}
Kapaligiran MGA VARIABLE
Genpat binabasa ang environment variable na VH_PATSFX para bigyan ng extension ang resultang file.
Gamitin ang alliance-genpat online gamit ang mga serbisyo ng onworks.net