-- -- Rcsid[] = "$Id: pc_cntrl.vhd,v 2.1 1993/10/06 01:04:36 alex Exp $"; -- --------------------------------------------- -- pc_cntrl.vhd -- June 19, 1993 --------------------------------------------- entity pc_cntrl is port(WRPC,LOADLATCH,INCRLATCH,PCOUT,LOADMAR,CALL,PCHOUT,PCLOUT, WRPCL,WRPCH,LOADZ,LOADW,ENWZOUT,WRWZINLATCH: out bit; ID0,ID1,ID2,ID3,ID4,ID5,ID6,ID7,ID8,ID9,ID10,ID11, ID13,ID16,ID19,I3,I5,M1,M2,M3,M4,M5,T2,T3,T4,T6,CC6,LASTMC, RETURNBAR,CCBAR,INA,T1,LHLD: in bit); end; architecture structure of pc_cntrl is signal n0, n1, n2, n3, n4, n5, LXI: bit; signal n11, n12, n15, n18: bit; signal n23, n24, n25, n26, n27, n29: bit; signal n30, n31, n36, n37, RST, n39: bit; signal n40, n46, n47, n49, n56, n59: bit; signal JUMP, JUMPCOND, JUMPCOND_CC: bit; signal CALLWRWZINLAT, JUMPWRWZINLAT: bit; signal JMPCALL, WRPCVEC : bit; signal CALL_buf, CALLCOND, LOADMAR_buf, LOADLATCH_buf: bit; signal WRWZINLATCH_buf, INCRLATCH_buf, LOADW_buf: bit; signal n20b,n20c,n20d: bit; signal M2T3: bit; signal n9, n21a,n21d: bit; signal RET,RET_COND: bit; signal JMPCALL1: bit; begin U0 : or_gate generic map(1,1) port map(n0,ID16,ID6); U1 : or_gate generic map(1,1) port map(n1,ID19,ID6); U2 : or_gate generic map(1,1) port map(n2,ID16,ID2,n3); U3 : inv_gate generic map(1,1) port map(n3,I5); U4 : or_gate generic map(1,1) port map(n4,ID19,ID3,n5); U5 : and_gate generic map(1,1) port map(n5,ID11,ID10); U6 : or_gate generic map(1,1) port map(LXI,ID16,I3,ID1); U7 : or_gate generic map(1,1) port map(JUMP,ID19,ID8,ID3); U8 : or_gate generic map(1,1) port map(CALL_buf,ID19,ID9,ID5); U8a : buf_gate port map (CALL,CALL_buf); U9 : or_gate generic map(1,1) port map(JUMPCOND,ID19,ID2); U9b : or_gate generic map(1,1) port map(JUMPCOND_CC,JUMPCOND,CCBAR); U9a : or_gate port map(n9,ID19,ID4); -- Conditional Call: True or False U10 : or_gate generic map(1,1) port map(CALLCOND,n9,CCBAR); U11 : and_gate generic map(1,1) port map(n11,n0,n1,n4,n12); U12 : and_gate generic map(1,1) port map(n12,n2,LXI,JUMP,JUMPCOND,CALL_buf,n9); U15 : nor_gate generic map(1,1) port map(n15,n12,M2T3); U16 : nor_gate generic map(1,1) port map(LOADLATCH_buf,ID19,ID13,ID1,M1,T1); -- PCHL U16a : buf_gate port map (LOADLATCH,LOADLATCH_buf); U18 : nor_gate generic map(1,1) port map(n18,n11,M1,n25); U19 : or_gate generic map(1,1) port map(WRPC,LOADLATCH_buf,INCRLATCH_buf,WRPCVEC); U20 : NOR_gate generic map(1,1) port map(INCRLATCH_buf,T2,n20b); U20b : AND_gate generic map(1,1) port map(n20b,M1,n20c,n20d); U20c : OR_gate port map(n20c,M2,n11); U20d : OR_gate port map(n20d,M3,n12); U20a : buf_gate port map (INCRLATCH,INCRLATCH_buf); U21 : or_gate generic map(1,1) port map(PCOUT,n18,n15,n59,n49,n21a); -- reload 16bit counter on 1st clock of next inst. --u21a : NOR_gate generic map (1,1) port map(n21a,M1,T1,ID19,ID9,ID1); u21a : NOR_gate generic map (1,1) port map(n21a,M1,T1,n21d); u21b : OR_gate generic map(1,1) port map(RET,ID19,ID9,ID1); -- Return u21c : OR_gate generic map(1,1) port map(RET_COND,ID19,ID0,CCBAR); -- Return Conditional u21d : AND_gate generic map(1,1) port map(n21d,RET,RET_COND); U23 : inv_gate generic map(1,1) port map(n23,CC6); U24 : or_gate generic map(1,1) port map(n24,n23,T6); U25 : and_gate generic map(1,1) port map(n25,n24,n26); U26 : or_gate generic map(1,1) port map(n26,CC6,T4); U27 : or_gate generic map(1,1) port map(n27,M1,n25,LASTMC); U28 : nand_gate generic map(1,1) port map(LOADMAR_buf,n27,n29); U28a : buf_gate port map (LOADMAR,LOADMAR_buf); U29 : or_gate generic map(1,1) port map(n29,T3,LASTMC,n30); U30 : inv_gate generic map(1,1) port map(n30,M1); -- FOR ENABLING THE PCH AND PCL ON TO THE 8 BIT BUS U31 : INV_gate generic map(1,1) port map(n31,RST); U36 : or_gate generic map(1,1) port map(n36,n56,M4,T2); -- PUT PCH ON 8 BIT BUS U37 : or_gate generic map(1,1) port map(n37,n56,M5,T2); -- PUT PCL ON 8 BIT BUS U38 : or_gate generic map(1,1) port map(RST,ID19,ID7); -- FOR RSTn U39 : or_gate generic map(1,1) port map(n39,RST,M2,T2); -- PUT PCH ON 8 BIT BUS U40 : or_gate generic map(1,1) port map(n40,RST,M3,T2); -- PUT PCL ON 8 BIT BUS U41 : nand_gate generic map(1,1) port map(PCHOUT,n39,n36); U42 : nand_gate generic map(1,1) port map(PCLOUT,n40,n37); U43 : nor_gate generic map(1,1) port map(WRPCL,RETURNBAR,M2T3); -- WRITE IN PCL U45 : nor_gate generic map(1,1) port map(WRPCH,RETURNBAR,M3,T3); -- WRITE IN PCH U46 : nor_gate generic map(1,1) port map(n46,M3,T2); -- TO WRITE VECTOR IN RSTn INSTRUCTION U47 : or_gate generic map(1,1) port map(n47,n31,INA); U48 : and_gate generic map(1,1) port map(WRPCVEC,n47,n46); -- WRITE IN M3,T2 -- To load latch for LHLD instr. in M5.T2 with PC contents U49 : nor_gate generic map(1,1) port map(n49,LHLD,M5,T2); U51 : and_gate generic map(1,1) port map(JMPCALL,JUMP,CALL_buf,CALLCOND); U51a : and_gate generic map(1,1) port map(JMPCALL1,JMPCALL,JUMPCOND_CC); U52 : nor_gate generic map(1,1) port map(LOADZ,JMPCALL1,M2T3); U53 : nor_gate generic map(1,1) port map(LOADW_buf,JMPCALL1,M3,T3); U54 : buf_gate port map(LOADW,LOADW_buf); U56 : and_gate generic map(1,1) port map(n56,CALL_buf,CALLCOND); U57 : or_gate generic map(1,1) port map(WRWZINLATCH_buf,CALLWRWZINLAT,JUMPWRWZINLAT); U57a : buf_gate port map (WRWZINLATCH,WRWZINLATCH_buf); U58 : or_gate generic map(1,1) port map(ENWZOUT,LOADW_buf,WRWZINLATCH_buf); U59 : and_gate generic map(1,1) port map(n59,JMPCALL1,LOADMAR_buf); U60 : nor_gate generic map(1,1) port map(CALLWRWZINLAT,n56,M5,T3); U61 : nor_gate generic map(1,1) port map(JUMPWRWZINLAT,JMPCALL1,M1,T1); U62 : OR_gate port map(M2T3,M2,T3); end structure; <div align="center"><br /><script type="text/javascript"><!-- google_ad_client = "pub-7293844627074885"; //468x60, Created at 07. 11. 25 google_ad_slot = "8619794253"; google_ad_width = 468; google_ad_height = 60; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script><br /> </div>