Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module micromachine(rst, clk, areg[4..0], breg[4..0], dreg[4..0], cmd_ual[5..0], oe_num[1..0], write, monitor[31..0], switch[7..0], swClk, ssgClk, pwmClk :
- dbus[31..0], N, Z, V, C, ir[31..0], break, leds[7..0], ssegs[7..0], anodes[3..0], pwm_out)
- //Parsage des adresses
- csRam = /abus[31]*/abus[30]*/abus[29]*/abus[28]; //0
- csSw = abus[31]*/abus[30]*/abus[29]*abus[28]; //9
- csSeg = abus[31]*/abus[30]*abus[29]*/abus[28]; //10
- csLd = abus[31]*/abus[30]*abus[29]*abus[28]; //11
- csPwm = abus[31]*abus[30]*/abus[29]*/abus[28]; //12
- //Decode de oe_num
- oe_ual = /oe_num[1]*oe_num[0];
- oe_mem = oe_num[1]*/oe_num[0];
- oe_mon = oe_num[1]*oe_num[0];
- //gestion des registres
- registres(rst, clk, areg[4..0], breg[4..0], dreg[4..0],dbus[31..0] : abus[31..0], bbus[31..0], ir[31..0], break);
- //gestion de l'Ual
- ual(abus[31..0], bbus[31..0], cmd_ual[5..0] : sual[31..0], enN, enZ, enVC, dN, dZ, dV, dC);
- dbus[31..0] = sual[31..0] : oe_ual;
- //gestion des valeurs de sortie de l'UAL
- N:=dN; N.clk = clk; N.rst = rst; N.ena = enN;
- Z:=dZ; Z.clk = clk; Z.rst = rst; Z.ena = enZ;
- V:=dV; V.clk = clk; V.rst = rst; V.ena = enVC;
- C:=dC; C.clk = clk; C.rst = rst; C.ena = enVC;
- //gestion de la ram
- rams_asyn_read512x32(clk, writeram, abus[8..0], dbus[31..0] : doutram[31..0]);
- writeram = write*csRam;
- dbus[31..0] = doutram[31..0] : rampassedebus;
- rampassedebus = oe_mem*csRam;
- //Gestion des switch
- reg8(rst, swClk, 1, switch[7..0] : switchsortie[7..0]);
- //gestion de la sortie des switch
- dbus[7..0] = switchsortie[7..0] : switchdansbus;
- switchdansbus = oe_mem*csSW;
- //Gestion des leds
- reg8(rst, clk, ecritureLed, dbus[7..0] : leds[7..0]);
- ecritureLed = write*csLd;
- //gestion de l'afficheur 7 segments
- segs7(rst, clk, ssgClk, ss7en, abus[0], dbus[15..0] : anodes[3..0], ssegs[7..0]);
- ss7en = write * csSeg;
- //gestion du module PWN
- pwm_module(rst, clk, pwmClk, enPWN, abus[0], dbus[15..0] : pwm_out);
- enPWN = write * csPwm;
- //gestion du moniteur
- dbus[31..0] = monitor[31..0] : oe_mon;
- end module
Add Comment
Please, Sign In to add comment