ÔÆÌ⺣ - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

µ±Ç°Î»ÖãºÊ×Ò³ > MIPSÁ÷Ë®ÏßCPUµÄverilogʵÏÖ - ͼÎÄ

MIPSÁ÷Ë®ÏßCPUµÄverilogʵÏÖ - ͼÎÄ

  • 62 ´ÎÔĶÁ
  • 3 ´ÎÏÂÔØ
  • 2026/4/24 19:20:13

Instruction_id = 32'h01e85022; //sub $t2,$t1,$t0

²âÊԼĴæÆ÷¼Ä´æ¹¦ÄÜ¡£¶¨Òå¿ØÖÆÐźÅRegWrite_wb=1£»RegWriteAddr_wb=5'b01111£»RegWriteData_wb=32'b1111¡£

¿É¿´µ½Á¢¼´ÊýImm£¬SaÔÚ²»Í¬Ö¸ÁîÖж¼½øÐÐÁËÎÞ·ûºÅÀ©Õ¹£»Rs¡¢Rt¼Ä´æÆ÷µÄÊý¾ÝºÍµØÖ·¶¼¿ÉÒԵõ½¼Ä´æ£¬¿ÉÒÔ±£³ÖÖ±µ½Êý¾ÝµØÖ·±ØÐë¸ü¸Ä¡£Óɴ˵óö¼Ä´æÆ÷¶ÑÄ£¿éRegistersÉè¼Æ·ûºÏÒªÇó¡£

c)¹Û²ìBrandAddrÐźţ¬¿ÉÒÔ·¢ÏÖÆäÂú×ã

BranchAddr=NextPC_id+(sign-extend(Imm_id)<<2)

d)¹Û²ìZÐźſɷ¢ÏÖÆäÂú×ãʽ×Ó

RsData[31] || ~ (| RsData[31: 0]) £» ALUCode=alu _blez RsData[31] £» ALUCode=alu _bltz ~ RsData[31] && (| RsData[31: 0]) £» ALUCode=alu _bgtz Z= ~ RsData[31]£» ALUCode=alu _bgez

| ( RsData[31: 0] ^ RtData[31: 0]) £» ALUCode=alu_bne & ( RsData[31: 0] ~^ RtData[31: 0] )£» ALUCode=alu_beq 0£» ALUCode=OTHER

e) ¹Û²ìStallÐźźÍPC_IFWriteÐźſɷ¢ÏÖÆäÂú×ã¹ØÏµÊ½£º

Stall=((RegWriteAddr_ex==RsAddr_id)||

(RegWriteAddr_ex==RtAddr_id))&&MemRead_ex PC_IFWrite=~Stall

25

ID¼¶Éè¼Æ·ûºÏÒªÇó¡£

2. EX¼¶·ÂÕæ

(1) ALU×ÓÄ£¿é·ÂÕæ

¶ÔÕÕALU¹¦ÄÜ±í£¬·ÂÕæ½á¹ûÕýÈ·¡£ËµÃ÷ALU×ÓÄ£¿éÉè¼Æ·ûºÏÒªÇó¡£

(2) EXÄ£¿é·ÂÕæ

ALU×ÓÄ£¿é¹¦ÄÜÒѲâÊÔÍê±Ï£¬Ö»ÐèÈ·ÈÏÊý¾ÝÑ¡ÔñÆ÷Óëת·¢µç·ForwardingµÄ¹¦ÄÜ¡£

26

Ïȹ۲ìForwardingת·¢µç·µÄÐźţº

ÐźÅÖ®¼äµÄÂß¼­¹ØÏµ·ûºÏForwardingAÓëForwardingBµÄ¶¨Òå¹ØÏµÊ½¡£

È»ºó¹Û²ì²Ù×÷ÊýAÓëBµÄÊý¾ÝÑ¡ÔñÆ÷µÄÐźţº ²Ù×÷ÊýA£º

ÆäÖÐTempAΪÊý¾ÝÑ¡ÔñÆ÷Êä³öÐźţ»AΪRsData¡£ ²Ù×÷ÊýB£º

ÆäÖÐTempBΪÊý¾ÝÑ¡ÔñÆ÷Êä³öÐźţ»BΪRTData¡£ ²¨ÐÎÂú×ãForwardingµÄ¹¦ÄÜÒªÇó¡£

27

¹Û²ìALU_AÓëALU_BÊý¾ÝÑ¡ÔñÆ÷¹¦ÄÜ£º

TempAÓëTempB·Ö±ðÊDzÙ×÷ÊýAÓëB¡£´Ó²¨ÐÎÉϿɿ´³öÑ¡ÔñÆ÷·ûºÏÉè¼ÆÒªÇó¡£

EX¼¶Éè¼Æ·ûºÏÒªÇó¡£

3. IF¼¶·ÂÕæ

JR¡¢J¡¢Z¶¼Îª0£¬PCÊäÈëÖ» ΪNextPC=PC+4£¬·ûºÏÒªÇó¡£ {JR¡¢J¡¢Z}=100 PC=JrAddr {JR¡¢J¡¢Z}=010 PC=JumpAddr {JR¡¢J¡¢Z}=001 PC=branchAddr ·ûºÏÉè¼ÆÒªÇó

IF¼¶·ûºÏÉè¼ÆÒªÇó¡£

PC_IFWrite=0£¬PC±£³Ö¡£ ·ûºÏÉè¼ÆÒªÇó 28

ËÑË÷¸ü¶à¹ØÓÚ£º MIPSÁ÷Ë®ÏßCPUµÄverilogʵÏÖ - ͼÎÄ µÄÎĵµ
  • ÊÕ²Ø
  • Î¥¹æ¾Ù±¨
  • °æÈ¨ÈÏÁì
ÏÂÔØÎĵµ10.00 Ôª ¼ÓÈëVIPÃâ·ÑÏÂÔØ
ÍÆ¼öÏÂÔØ
±¾ÎÄ×÷Õߣº...

¹²·ÖÏí92ƪÏà¹ØÎĵµ

Îĵµ¼ò½é£º

Instruction_id = 32'h01e85022; //sub $t2,$t1,$t0 ²âÊԼĴæÆ÷¼Ä´æ¹¦ÄÜ¡£¶¨Òå¿ØÖÆÐźÅRegWrite_wb=1£»RegWriteAddr_wb=5'b01111£»RegWriteData_wb=32'b1111¡£ ¿É¿´µ½Á¢¼´ÊýImm£¬SaÔÚ²»Í¬Ö¸ÁîÖж¼½øÐÐÁËÎÞ·ûºÅÀ©Õ¹£»Rs¡¢Rt¼Ä´æÆ÷µÄÊý¾ÝºÍµØÖ·¶¼¿ÉÒԵõ½¼Ä´æ£¬¿ÉÒÔ±£³ÖÖ±µ½Êý¾ÝµØÖ·±ØÐë¸ü¸Ä¡£Óɴ˵óö¼Ä´æÆ÷¶ÑÄ£¿éRegistersÉè¼Æ·ûºÏÒªÇó¡£ c)¹Û²ìBrandAddrÐźţ¬¿ÉÒÔ·¢ÏÖÆäÂú×ã BranchAddr=NextPC_id+(sign-extend(Imm_id)<<2) d)¹Û²ìZÐźſɷ¢ÏÖÆäÂú×ãʽ×Ó RsData[31] |

¡Á ÓοͿì½ÝÏÂÔØÍ¨µÀ£¨ÏÂÔØºó¿ÉÒÔ×ÔÓɸ´ÖƺÍÅŰ棩
µ¥Æª¸¶·ÑÏÂÔØ
ÏÞÊ±ÌØ¼Û£º10 Ôª/·Ý Ô­¼Û:20Ôª
VIP°üÔÂÏÂÔØ
ÌØ¼Û£º29 Ôª/Ô ԭ¼Û:99Ôª
µÍÖÁ 0.3 Ôª/·Ý ÿÔÂÏÂÔØ150·Ý
ȫվÄÚÈÝÃâ·Ñ×ÔÓɸ´ÖÆ
VIP°üÔÂÏÂÔØ
ÌØ¼Û£º29 Ôª/Ô ԭ¼Û:99Ôª
µÍÖÁ 0.3 Ôª/·Ý ÿÔÂÏÂÔØ150·Ý
ȫվÄÚÈÝÃâ·Ñ×ÔÓɸ´ÖÆ
×¢£ºÏÂÔØÎĵµÓпÉÄÜ¡°Ö»ÓÐĿ¼»òÕßÄÚÈݲ»È«¡±µÈÇé¿ö£¬ÇëÏÂÔØÖ®Ç°×¢Òâ±æ±ð£¬Èç¹ûÄúÒѸ¶·ÑÇÒÎÞ·¨ÏÂÔØ»òÄÚÈÝÓÐÎÊÌ⣬ÇëÁªÏµÎÒÃÇЭÖúÄã´¦Àí¡£
΢ÐÅ£ºfanwen365 QQ£º370150219
Copyright © ÔÆÌ⺣ All Rights Reserved. ËÕICP±¸16052595ºÅ-3 ÍøÕ¾µØÍ¼ ¿Í·þQQ£º370150219 ÓÊÏ䣺370150219@qq.com