OpenCores
Issue List
MEM_CONTROL #39
Closed clould365 opened this issue almost 11 years ago
clould365 commented almost 11 years ago

Dear rhoads: Plasma is an excellent project. I am enjoying hacking it. I have understood all the modules of mlite_cpu except mem_control.vhd. Assume the pipeline is two stage. Can it output opcode every clk cycle? Will memory read/write take two cycles? when input pause_in can get its value and what's its function in FSM? Can you give me a description about how a LW instruction works? um, in fact I have got tangled in them for many days, help! Thank you!

clould365 commented almost 11 years ago

Ok, I think my questions make you confused. Let me make it clear.

Question 1: Assume the pipeline is two stages. The first instruction in the ram is LW $1,50($0) and What I want to know is how it works especially in the mem_control part.

I have done some analysis as follow: First, the pc_next module output a pc address(X'00000000). Then the pc address pass to mem_control's address_pc. Because the control output MEM_FETCH at the beginning, address_pc is assigned to address_next which passes to ram and ram retures value data_r. Data_r is the first opcode(LW) and would be in opcode_reg from the next rising clock edge(let's call it the first rising clock edge). The FSM becomes STATE_ADDR.

Then I confused. The FSM becomes STATE_ADDR, which means address_next get value form address_in. Because of this, data_r get the data in address 50. However, you store is the next_opcode_reg! In the next rising cycle edge (the second cycle rising edge), FSM become state_access, in this state, next_opcode_reg would be assigned to opcode_next and opcode_next would be outputted as opcode. But, it the data in address 50, not the second instruction we need.

Where I went wrong?

Question 2: what's the function of pause_in and pause_out in your entire design. I think this is another bottleneck for me to understand your project.

Thank you for your time.

clould365 commented almost 11 years ago

Corrections:

However, you store is the next_opcode_reg! == However, you store it in the next_opcode_reg!

But, it the data in address 50, not the second instruction we need. == But, it is the data in address 50, not the second instruction we need.

sorry for my typing errors.

rhoads was assigned almost 11 years ago
rhoads commented almost 11 years ago

The section "Bus Interface" on the overview page shows the signals when doing a write. The memory accesses are confusing because of the pipeline. Lets assume that each memory location contains the value of its address plus 0xab000000.

Program: address opcode 00000000 ab000000 //add $1,$2,$3 00000004 ab000004 //lw $1,0x50($0) 00000008 ab000008 //add $2,$3,$4 0000000c ab00000c 00000010 ab000010

cycle stage-1 stage-1 stage0 stage0 stage0 stage1 pc_next address_next address data_r next_opcode opcode 1 00000000 00000000 ???????? ???????? ???????? ????????
2 00000004 00000004 00000000 ab000000 ab000000 ???????? 3 00000008 00000008 00000004 ab000004 ab000004 ab000000 //add 4 0000000c 00000050 00000008 ab000008 ab000008 ab000004 //lw 5 0000000c 0000000c 00000050 ab000050 ab000008 ab000004 //paused 6 00000010 00000010 0000000c ab00000c ab00000c ab000008 //add

The address_next signal is valid before the clock rising edge and address is valid after the clock.

Lets follow the "lw" opcode through the different stages. The pc_next is requesting the address in cycle 2. In cycle 3, the SRAM returns the opcode. In cycle 4, the opcode after the "lw" is fetched and stored in next_opcode_reg and the "lw" opcode is executed and the address to fetch is calculated and placed into signal address_next. In cycle 5 the address is used to fetch the data. In cycle 6, the next_opcode_reg is used as the opcode.

The pipeline stages pc_next and opcode were paused between cycles 4 and 5 so that the address and data bus could do the read.

Different blocks can cause a pause_out signal. For example a memory read or write can pause the pipeline. Accessing external memory can cause the pipeline. Reading the result of a multiplication can pause the pipeline.

Did I answer the question?

clould365 commented almost 11 years ago

Thank you! Your explanation is very clear. I have understood most of them.

I added mem_Source mem_State_reg and mem_state next, can you help me check them? Program: address opcode 00000000 ab000000 //add $1,$2,$3 00000004 ab000004 //lw $1,0x50($0) 00000008 ab000008 //add $2,$3,$4 0000000c ab00000c 00000010 ab000010

cycle stage-1 stage-1 stage0 stage0 stage0 stage1 pc_next address_next address data_r next_opcode opcode mem_source mem_state_reg mem_state_next 1 00000000 00000000 ???????? ???????? ???????? ???????? MEM_FETCH STATE_ADDR STATE_ADDR 2 00000004 00000004 00000000 ab000000 ab000000 ???????? MEM_FETCH STATE_ADDR STATE_ADDR 3 00000008 00000008 00000004 ab000004 ab000004 ab000000 MEM_FECTH STATE_ADDR STATE_ADDR //add 4 0000000c 00000050 00000008 ab000008 ab000008 ab000004 MEM_READ32 STATE_ADDR STATE_ACCESS //lw 5 0000000c 0000000c 00000050 ab000050 ab000008 <strong>ab000004</strong> MEM_READ32 STATE_ACCESS STATE_ADDR //paused 6 00000010 00000010 0000000c ab00000c ab00000c ab000008 <strong>??????????</strong> STATE_ADDR ?????????? //add

Questions: 1. In every clk rising edge, opcode_next would be assigned to opcode. So,I think the opcode in cycle 5 should be the value of opcode_next in cycle 4(ab000008). why the opcode didn't change in your table?

  1. In cycle 6, the instruction is add. There is no mem_source assignment in control.vhd. Will the mem_source holds the value MEM_READ32??

  2. If mem_source holds the value MEM_READ32, will add(cycle 6) work in FSM?

clould365 commented almost 11 years ago

Thank you! Your explanation is very clear. I have understood most of them.

I added mem_Source mem_State_reg and mem_state next, can you help me check them? Program: address opcode 00000000 ab000000 //add $1,$2,$3 00000004 ab000004 //lw $1,0x50($0) 00000008 ab000008 //add $2,$3,$4 0000000c ab00000c 00000010 ab000010

cycle stage-1 stage-1 stage0 stage0 stage0 stage1 pc_next address_next address data_r next_opcode opcode mem_source mem_state_reg mem_state_next 1 00000000 00000000 ???????? ???????? ???????? ???????? MEM_FETCH STATE_ADDR STATE_ADDR 2 00000004 00000004 00000000 ab000000 ab000000 ???????? MEM_FETCH STATE_ADDR STATE_ADDR 3 00000008 00000008 00000004 ab000004 ab000004 ab000000 MEM_FECTH STATE_ADDR STATE_ADDR //add 4 0000000c 00000050 00000008 ab000008 ab000008 ab000004 MEM_READ32 STATE_ADDR STATE_ACCESS //lw 5 0000000c 0000000c 00000050 ab000050 ab000008 ab000004 MEM_READ32 STATE_ACCESS STATE_ADDR //paused 6 00000010 00000010 0000000c ab00000c ab00000c ab000008 ?????????? STATE_ADDR ?????????? //add

Questions: 1. In every clk rising edge, opcode_next would be assigned to opcode. So,I think the opcode in cycle 5 should be the value of opcode_next in cycle 4(ab000008). why the opcode didn't change in your table?

  1. In cycle 6, the instruction is add. There is no mem_source assignment in control.vhd. Will the mem_source holds the value MEM_READ32??

  2. If mem_source holds the value MEM_READ32, will add(cycle 6) work in FSM?

rhoads commented almost 11 years ago

I tried to add dashes to keep the columns aligned.

Program: address- opcode 00000000 ab000000 //add $1,$2,$3 00000004 ab000004 //lw $1,0x50($0) 00000008 ab000008 //add $2,$3,$4 0000000c ab00000c 00000010 ab000010

cycle stage-1- stage-1 ---- stage0-- stage0-- stage1----- stage1 ----- pc_next- address_next address- data_r-- next_opcode opcode-- mem_source mem_state_reg mem_state_next ----1 00000000 00000000 --- ???????? ???????? ???????? -- ???????? MEM_FETCH- STATE_ADDR--- STATE_ADDR ----2 00000004 00000004 --- 00000000 ab000000 ???????? -- ???????? MEM_FETCH- STATE_ADDR--- STATE_ADDR ----3 00000008 00000008 --- 00000004 ab000004 ab000000 -- ab000000 MEM_FETCH- STATE_ADDR--- STATE_ADDR //add ----4 0000000c 00000050 --- 00000008 ab000008 ab000004 -- ab000004 MEM_READ32 STATE_ADDR--- STATE_ACCESS //lw ----5 0000000c 0000000c --- 00000050 ab000050 ab000008 -- ab000004 MEM_READ32 STATE_ACCESS- STATE_ADDR //paused ----6 00000010 00000010 --- 0000000c ab00000c ab000008 -- ab000008 MEM_FETCH- STATE_ADDR--- STATE_ADDR //add

Questions: 1. In every clk rising edge, opcode_next would be assigned to opcode. So, I think the opcode in cycle 5 should be the value of opcode_next in cycle 4(ab000008). Why the opcode didn't change in your table?

Answer: I think that I should have shown next_opcode_reg in stage 1 instead of stage 0. This means that normally next_opcode_reg will normally change at the same time that opcode changes and will have the same value. If there is a memory read or write, the next_opcode_reg will be updated but the opcode won't change until after the read or write:

opcode_next := opcode_reg; //nothing changes the signal opcode_next in this case

  1. In cycle 6, the instruction is add. There is no mem_source assignment in control.vhd. Will the mem_source holds the value MEM_READ32??

Answer: Since the opcode doesn't change from cycle 5 to 6, mem_source should stay at MEM_READ32.

  1. If mem_source holds the value MEM_READ32, will add (cycle 6) work in FSM?

Answer: The opcode_next := opcode_next_reg in line 151 should provide the correct opcode.

clould365 commented almost 11 years ago
<style> <!-- /* Font Definitions */ @font-face {font-family:??; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 680460288 22 0 262145 0;} @font-face {font-family:??; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 680460288 22 0 262145 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-520092929 1073786111 9 0 415 0;} @font-face {font-family:"\@??"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 680460288 22 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:??; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-font-kerning:1.0pt;} p.MsoHeader, li.MsoHeader, div.MsoHeader {mso-style-priority:99; mso-style-link:"?? Char"; margin:0cm; margin-bottom:.0001pt; text-align:center; mso-pagination:none; tab-stops:center 207.65pt right 415.3pt; layout-grid-mode:char; border:none; mso-border-bottom-alt:solid windowtext .75pt; padding:0cm; mso-padding-alt:0cm 0cm 1.0pt 0cm; font-size:9.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:??; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-font-kerning:1.0pt;} p.MsoFooter, li.MsoFooter, div.MsoFooter {mso-style-priority:99; mso-style-link:"?? Char"; margin:0cm; margin-bottom:.0001pt; mso-pagination:none; tab-stops:center 207.65pt right 415.3pt; layout-grid-mode:char; font-size:9.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:??; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-font-kerning:1.0pt;} p.MsoAcetate, li.MsoAcetate, div.MsoAcetate {mso-style-noshow:yes; mso-style-priority:99; mso-style-link:"????? Char"; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:9.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:??; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-font-kerning:1.0pt;} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; text-indent:21.0pt; mso-char-indent-count:2.0; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:??; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-font-kerning:1.0pt;} span.Char {mso-style-name:"????? Char"; mso-style-noshow:yes; mso-style-priority:99; mso-style-unhide:no; mso-style-locked:yes; mso-style-link:?????; mso-ansi-font-size:9.0pt; mso-bidi-font-size:9.0pt;} span.apple-converted-space {mso-style-name:apple-converted-space; mso-style-unhide:no;} span.Char0 {mso-style-name:"?? Char"; mso-style-priority:99; mso-style-unhide:no; mso-style-locked:yes; mso-style-link:??; mso-ansi-font-size:9.0pt; mso-bidi-font-size:9.0pt;} span.Char1 {mso-style-name:"?? Char"; mso-style-priority:99; mso-style-unhide:no; mso-style-locked:yes; mso-style-link:??; mso-ansi-font-size:9.0pt; mso-bidi-font-size:9.0pt;} span.SpellE {mso-style-name:""; mso-spl-e:yes;} span.GramE {mso-style-name:""; mso-gram-e:yes;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-family:"Calibri","sans-serif"; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no; mso-footnote-separator:url("mem_control.files/header.htm") fs; mso-footnote-continuation-separator:url("mem_control.files/header.htm") fcs; mso-endnote-separator:url("mem_control.files/header.htm") es; mso-endnote-continuation-separator:url("mem_control.files/header.htm") ecs;} @page WordSection1 {size:841.9pt 595.3pt; mso-page-orientation:landscape; margin:1.0cm 1.0cm 1.0cm 1.0cm; mso-header-margin:42.55pt; mso-footer-margin:49.6pt; mso-paper-source:0; layout-grid:15.6pt;} div.WordSection1 {page:WordSection1;} /* List Definitions */ @list l0 {mso-list-id:1159544610; mso-list-type:hybrid; mso-list-template-ids:1743543794 -264064130 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 {mso-level-tab-stop:none; mso-level-number-position:left; margin-left:18.0pt; text-indent:-18.0pt;} @list l0:level2 {mso-level-number-format:alpha-lower; mso-level-text:"%2\)"; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:42.0pt; text-indent:-21.0pt;} @list l0:level3 {mso-level-number-format:roman-lower; mso-level-tab-stop:none; mso-level-number-position:right; margin-left:63.0pt; text-indent:-21.0pt;} @list l0:level4 {mso-level-tab-stop:none; mso-level-number-position:left; margin-left:84.0pt; text-indent:-21.0pt;} @list l0:level5 {mso-level-number-format:alpha-lower; mso-level-text:"%5\)"; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:105.0pt; text-indent:-21.0pt;} @list l0:level6 {mso-level-number-format:roman-lower; mso-level-tab-stop:none; mso-level-number-position:right; margin-left:126.0pt; text-indent:-21.0pt;} @list l0:level7 {mso-level-tab-stop:none; mso-level-number-position:left; margin-left:147.0pt; text-indent:-21.0pt;} @list l0:level8 {mso-level-number-format:alpha-lower; mso-level-text:"%8\)"; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:168.0pt; text-indent:-21.0pt;} @list l0:level9 {mso-level-number-format:roman-lower; mso-level-tab-stop:none; mso-level-number-position:right; margin-left:189.0pt; text-indent:-21.0pt;} @list l1 {mso-list-id:2069496702; mso-list-type:hybrid; mso-list-template-ids:-1816391690 1908581372 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l1:level1 {mso-level-tab-stop:none; mso-level-number-position:left; margin-left:18.0pt; text-indent:-18.0pt;} @list l1:level2 {mso-level-number-format:alpha-lower; mso-level-text:"%2\)"; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:42.0pt; text-indent:-21.0pt;} @list l1:level3 {mso-level-number-format:roman-lower; mso-level-tab-stop:none; mso-level-number-position:right; margin-left:63.0pt; text-indent:-21.0pt;} @list l1:level4 {mso-level-tab-stop:none; mso-level-number-position:left; margin-left:84.0pt; text-indent:-21.0pt;} @list l1:level5 {mso-level-number-format:alpha-lower; mso-level-text:"%5\)"; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:105.0pt; text-indent:-21.0pt;} @list l1:level6 {mso-level-number-format:roman-lower; mso-level-tab-stop:none; mso-level-number-position:right; margin-left:126.0pt; text-indent:-21.0pt;} @list l1:level7 {mso-level-tab-stop:none; mso-level-number-position:left; margin-left:147.0pt; text-indent:-21.0pt;} @list l1:level8 {mso-level-number-format:alpha-lower; mso-level-text:"%8\)"; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:168.0pt; text-indent:-21.0pt;} @list l1:level9 {mso-level-number-format:roman-lower; mso-level-tab-stop:none; mso-level-number-position:right; margin-left:189.0pt; text-indent:-21.0pt;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} --> </style><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:????; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.5pt; mso-bidi-font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-font-kerning:1.0pt;} </style> <![endif]--><!--[if gte mso 9]><xml>

<o:shapedefaults v:ext="edit" spidmax="2049"/> </xml><endif--><!--[if gte mso 9]><xml> <o:shapelayout v:ext="edit"> <o:idmap v:ext="edit" data="1"/> </o:shapelayout></xml><![endif]-->

</head><div class=WordSection1 style='layout-grid:15.6pt'><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'>I edited them in html, so we can see them clear, which can also help those who is confusing~ <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span class=GramE><span lang=EN-US style='font-size:11.0pt; font-family:"Times New Roman","serif"'>address---</span></span><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'> opcode</span><span lang=EN-US style='font-size:11.0pt'>&nbsp;</span><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'><br> 00000000 ab000000 //add $1,$2,$3</span><span lang=EN-US style='font-size:11.0pt'>&nbsp;</span><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'><br> 00000004 ab000004 //<span class=SpellE>lw</span> $1,0x50($0)</span><span lang=EN-US style='font-size:11.0pt'>&nbsp;</span><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'><br> 00000008 ab000008 //add $2,$3,$4</span><span lang=EN-US style='font-size:11.0pt'>&nbsp;</span><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'><br> 0000000c ab00000c</span><span lang=EN-US style='font-size:11.0pt'>&nbsp;</span><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'><br> 00000010 ab000010</span><span lang=EN-US style='font-size:11.0pt'>&nbsp;<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'><o:p>&nbsp;</o:p></span></p><table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 style='border-collapse:collapse;mso-yfti-tbllook:1184;mso-padding-alt:0cm 0cm 0cm 0cm'> <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes'> <td valign=top style='border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><a name="OLE_LINK5"></a><a name="OLE_LINK6"></a><span style='mso-bookmark:OLE_LINK5'><span lang=EN-US style='font-size:10.0pt; font-family:"Times New Roman","serif"'>cycle</span></span><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'><o:p></o:p></span></p> </td> <td valign=top style='border:solid windowtext 1.0pt;border-left:none; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>stage1<o:p></o:p></span></p> </td> <td valign=top style='border:solid windowtext 1.0pt;border-left:none; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>stage1<o:p></o:p></span></p> </td> <td valign=top style='border:solid windowtext 1.0pt;border-left:none; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>stage0<o:p></o:p></span></p> </td> <td valign=top style='border:solid windowtext 1.0pt;border-left:none; mso-border-top-alt:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt; mso-border-right-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>stage0<o:p></o:p></span></p> </td> <td valign=top style='border:solid windowtext 1.0pt;border-left:none; mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0cm 0cm 0cm 0cm'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'><o:p>&nbsp;</o:p></span></p> </td> <td valign=top style='border:solid windowtext 1.0pt;border-left:none; mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>Stage1<o:p></o:p></span></p> </td> <td valign=top style='border:solid windowtext 1.0pt;border-left:none; mso-border-left-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>stage1<o:p></o:p></span></p> </td> <td valign=top style='border:solid windowtext 1.0pt;border-left:none; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border:solid windowtext 1.0pt;border-left:none; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border:solid windowtext 1.0pt;border-left:none; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>&nbsp;<o:p></o:p></span></p> </td> </tr> <tr style='mso-yfti-irow:1'> <td valign=top style='border:solid windowtext 1.0pt;border-top:none; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>pc_next<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>address_next<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>address<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt; mso-border-right-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>data_r<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt; mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0cm 0cm 0cm 0cm'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>next_op_reg<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt; mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>opcode_next<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-left-alt:solid windowtext .5pt; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>opcode<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>mem_src<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>mem_stage_reg<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>mem_state_next<o:p></o:p></span></p> </td> </tr> <tr style='mso-yfti-irow:2'> <td valign=top style='border:solid windowtext 1.0pt;border-top:none; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>1<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>00000000<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>00000000<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>????????<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt; mso-border-right-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>????????<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt; mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0cm 0cm 0cm 0cm'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>???????<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt; mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><a name="OLE_LINK3"></a><a name="OLE_LINK4"></a><span style='mso-bookmark:OLE_LINK3'><span lang=EN-US style='font-size:10.0pt; font-family:"Times New Roman","serif"'>????????</span></span><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'><o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-left-alt:solid windowtext .5pt; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>????????<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>MEM_FETCH<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>STATE_ADDR<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>STATE_ADDR<o:p></o:p></span></p> </td> </tr> <tr style='mso-yfti-irow:3'> <td valign=top style='border:solid windowtext 1.0pt;border-top:none; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>2<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><a name="OLE_LINK1"></a><a name="OLE_LINK2"></a><span style='mso-bookmark:OLE_LINK1'><span lang=EN-US style='font-size:10.0pt; font-family:"Times New Roman","serif"'>00000004</span></span><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'><o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>00000004<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>00000000<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt; mso-border-right-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>ab000000&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt; mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0cm 0cm 0cm 0cm'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>???????<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt; mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>ab000000&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-left-alt:solid windowtext .5pt; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>????????<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>MEM_FETCH<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>STATE_ADDR<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>STATE_ADDR<o:p></o:p></span></p> </td> </tr> <tr style='mso-yfti-irow:4'> <td valign=top style='border:solid windowtext 1.0pt;border-top:none; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>3//add<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>00000008&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>00000008&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>00000004&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt; mso-border-right-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>ab000004&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt; mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0cm 0cm 0cm 0cm'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>ab000000&nbsp;<span style='color:red'><o:p></o:p></span></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt; mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>ab000004&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-left-alt:solid windowtext .5pt; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>ab000000 &nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>MEM_FETCH<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>STATE_ADDR<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>STATE_ADDR<o:p></o:p></span></p> </td> </tr> <tr style='mso-yfti-irow:5'> <td valign=top style='border:solid windowtext 1.0pt;border-top:none; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>4//<span class=SpellE>lw</span><o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>0000000c&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>00000050&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>00000008&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt; mso-border-right-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>ab000008&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt; mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0cm 0cm 0cm 0cm'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>ab000004&nbsp;<span style='color:red'><o:p></o:p></span></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt; mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>ab000008&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-left-alt:solid windowtext .5pt; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>ab000004&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>MEM_READ32&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>STATE_ADDR<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>STATE_ACCESS&nbsp;<o:p></o:p></span></p> </td> </tr> <tr style='mso-yfti-irow:6'> <td valign=top style='border:solid windowtext 1.0pt;border-top:none; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>5//pause<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>0000000c&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>0000000c&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>00000050<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt; mso-border-right-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>ab000050&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt; mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0cm 0cm 0cm 0cm'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>ab000008&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt; mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>ab000008&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-left-alt:solid windowtext .5pt; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>ab000004&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>MEM_READ32&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>STATE_ACCESS&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>STATE_ADDR<o:p></o:p></span></p> </td> </tr> <tr style='mso-yfti-irow:7;mso-yfti-lastrow:yes'> <td valign=top style='border:solid windowtext 1.0pt;border-top:none; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>6//add<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>00000010&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>00000010&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>0000000c&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt; mso-border-right-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>ab00000c&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt; mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0cm 0cm 0cm 0cm'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>ab000008<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt; mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>ab00000c&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;mso-border-left-alt:solid windowtext .5pt; padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>ab000008&nbsp;<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>MEM_FETCH<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>STATE_ADDR<o:p></o:p></span></p> </td> <td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt; border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Times New Roman","serif"'>STATE_ADDR<o:p></o:p></span></p> </td> </tr> </table><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal style='text-indent:5.5pt;mso-char-indent-count:.5'><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'>The opcode in cycle 6 is ab000008 //add $2<span class=GramE>,$</span>3,$4</span><span lang=EN-US style='font-size:11.0pt'>&nbsp;</span><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'>. <o:p></o:p></span></p><p class=MsoListParagraph style='margin-left:18.0pt;text-indent:0cm;mso-char-indent-count: 0'><span class=SpellE><span lang=EN-US style='font-size:11.0pt;font-family: "Times New Roman","serif"'>Control.vhd</span></span><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'> decodes this instruction and only output this: <o:p></o:p></span></p><p class=MsoListParagraph style='margin-left:18.0pt;text-indent:22.1pt'><span class=GramE><b style='mso-bidi-font-weight:normal'><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'>when</span></b></span><b style='mso-bidi-font-weight:normal'><span lang=EN-US style='font-size:11.0pt; font-family:"Times New Roman","serif"'> &quot;100000&quot; =&gt;<span style='mso-spacerun:yes'>&nbsp;&nbsp; </span>--ADD<span style='mso-spacerun:yes'>&nbsp;&nbsp; </span>r[<span class=SpellE>rd</span>]=r[<span class=SpellE>rs</span>]+r[<span class=SpellE>rt</span>];<o:p></o:p></span></b></p><p class=MsoListParagraph style='margin-left:18.0pt;text-indent:22.1pt'><span class=SpellE><b style='mso-bidi-font-weight:normal'><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'>c_<span class=GramE>source</span></span></b></span><span class=GramE><b style='mso-bidi-font-weight:normal'><span lang=EN-US style='font-size:11.0pt; font-family:"Times New Roman","serif"'> :</span></b></span><b style='mso-bidi-font-weight: normal'><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'>= C_FROM_ALU;<o:p></o:p></span></b></p><p class=MsoListParagraph style='margin-left:18.0pt;text-indent:22.5pt; mso-char-indent-count:0'><span class=SpellE><b style='mso-bidi-font-weight: normal'><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'>alu_<span class=GramE>function</span></span></b></span><span class=GramE><b style='mso-bidi-font-weight:normal'><span lang=EN-US style='font-size:11.0pt; font-family:"Times New Roman","serif"'> :</span></b></span><b style='mso-bidi-font-weight: normal'><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'>= ALU_ADD;<o:p></o:p></span></b></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'><span style='mso-spacerun:yes'>&nbsp;&nbsp; </span>Then how mem_src becomes MEM_FETCH??<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'><span style='mso-spacerun:yes'>&nbsp;&nbsp; </span><span class=GramE>The result of pipeline pause?</span> <o:p></o:p></span></p><p class=MsoListParagraph style='margin-left:18.0pt;text-indent:0cm;mso-char-indent-count: 0'><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'><o:p>&nbsp;</o:p></span></p></div>
rhoads commented almost 11 years ago

Line 73 in control.vhd sets the variable mem_source to MEM_FETCH. If the opcode is a load or store then mem_source is set to something else.

clould365 commented almost 11 years ago

Thank you very much! I understand. The mem_source is a variable instead of a register, so it can't store the value of last time. Thank you!

rhoads closed this almost 11 years ago

Assignee
rhoads
Labels
Request