Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --++Svaka instrukcija se izvršava u tri takta,
- --------------------------------------------------------------------------
- zbog toga što procesor ima tri registarska stepena –
- u prvom taktu se upisuju operandi u registre A i B,
- u drugom taktu se računa operacija i rezultat upisuje u registar C,
- a u trećem taktu se rezultat iz C smešta u jedan od registara opšte namene.
- Dakle, svaka instrukcija koju budete realizovali
- treba biti realizovana u tri stanja automata,
- po jedan za svaki od ovih koraka.
- Dakle, vaš automat treba da ima bar
- 9 stanja, a funkcija prelaza je jednostavna, linearno se prelazi od početnog do krajnjeg stanja.
- -----------------------------------------------------------
- ====================================================
- R1 + R2 - > R3
- process (iCLK, inRST) begin
- if iCLK, nrst
- if (inrsta)
- trenutnStanje <= STANJE1_UCITAJ_R1_R2_U_A_I_B;
- if(clk='1'
- trenutnoStanje <= SledeceStanje
- ==================
- process (sTrenutnoStanje)
- Case is
- When STANJE1_UCITAJ_R1_R2_U_A_I_B =>
- sWE_A = '1';
- sWE_B = '1';
- sMUX_SEl_A <= "0001";
- sMUX_SEL_B <= "0010";
- sWE_C <= '0';
- sALU_SEL <= "000000001"
- oREG_WE <="0000000";
- sledeceStanje <= SABERI_A_I_B_UPISI_U_C;
- when SABERI_A_I_B_UPISI_U_C =>
- sWE_A = '0';
- sWE_B = '0';
- sMUX_SEl_A <= "0000";
- sMUX_SEL_B <= "0000";
- sWE_C <='1';
- ALU <= "1001"; -- saberi
- sledecenjeStanje <= USPISI_REZ_IZ_C_u_NEKI_R3;
- when USPISI_REZ_IZ_C_u_NEKI_R3 =>
- sWE_A = '0'
- sWE_B = '0'
- sMUX_SEL_A <= "0000";
- sMUX_SEL_B <= "0000";
- ALU <= "000001"
- sREG_WE <= "0001000"; -- upisi u R3
- slecestanje <= UPSISI_A_I_B_2;
- WHEN UPSISI_A_I_B_2 =>
- when ODUZMI_A_OD_
- When USPISI_REZ_iz_C_u NEki_Reg4
- WHEN UPSISI_A_I_B_2 =>
- when ODUZMI_A_OD_
- When USPISI_REZ_iz_C_u NEki_Reg4
- iWE_A <= sWE_A;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement