OpenCores
URL https://opencores.org/ocsvn/nnARM/nnARM/trunk

Subversion Repositories nnARM

[/] [nnARM/] [web_uploads/] [News.htm] - Rev 6

Compare with Previous | Blame | View Log

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Welcome to nnARM home site</TITLE>
<META content="MSHTML 5.00.3103.1000" name=GENERATOR></HEAD>
 
<body bgcolor=#0080ff>
 
<table border=0 cellPadding=0 cellSpacing=0 width=550>
<tbody>
 
<tr>
<td>
<p>
<center>
<font color=#000000 face=Verdana,Arial,Helvetica,helvetica size=4>
News
</font>
</center>
</p>
</td>
</tr>
 
<tr>
<td align=left>
<font color=#ffffff face=Verdana,Arial,Helvetica,helvetica size=3>
<b>
2001.6.3 nnARM moved to Opencores<br>
</b>
</font>
</td>
</tr>
 
<tr>
<td align=left>
<font color=#000000 face=Verdana,Arial,Helvetica,helvetica size=2>
<b>
<br>I have just got this account, and I will try to learn how to use CVS and other rules and procedures of Opencores.<br><br>
Now it is more convenient for anyone interested in this project to take part in it. Please refer to the Introduction page for what types of help we need.
<br><br><br><br>
</b>
</font>
</td>
</tr>
 
 
 
<tr>
<td align=left>
<font color=#ffffff face=Verdana,Arial,Helvetica,helvetica size=3>
<b>
2001.6.2 Some sections of documentation v1.10 are released<br>
</b>
</font>
</td>
</tr>
 
<tr>
<td align=left>
<font color=#000000 face=Verdana,Arial,Helvetica,helvetica size=2>
<b>
<br>Because I will be busy in the following 2 weeks for other things, I can not find time to write the full documentation.  However, I think a partial document is better than no documentation.<br>
<br>A full version will be released later.
<br><br><br><br>
</b>
</font>
</td>
</tr>
 
 
 
<tr>
<td align=left>
<font color=#ffffff face=Verdana,Arial,Helvetica,helvetica size=3>
<b>
2001.5.30 I need help on memory system.  Cache system and memory bus.<br>
</b>
</font>
</td>
</tr>
 
<tr>
<td align=left>
<font color=#000000 face=Verdana,Arial,Helvetica,helvetica size=2>
<b>
<br> The memory and cache system of my design are not very suitable for this processor.  Because I want to devote myself to the design of the processor itself, I have used a VERY SIMPLE model of cache and memory. <br>
<br>Whoever can help me to develop a better model please<a href="mailto:skli@nudt.edu.cn">contact me</a><br><br><br><br>
</b>
</font>
</td>
</tr>
 
 
<tr>
<td align=left>
<font color=#ffffff face=Verdana,Arial,Helvetica,helvetica size=3>
<b>
2001.5.29 It runs some complex asembly source code from ARM SDT 2.5<br>
</b>
</font>
</td>
</tr>
 
<tr>
<td align=left>
<font color=#000000 face=Verdana,Arial,Helvetica,helvetica size=2>
<b>
<br> I used some assembly source code with ARM SDT 2.5.  It runs very well and obtains good results.  For more detail,please refer to <a href="./Testbench/Testbench.htm">TestBench</a><br><br><br><br>
</b>
</font>
</td>
</tr>
 
 
<tr>
<td align=left>
<font color=#ffffff face=Verdana,Arial,Helvetica,helvetica size=3>
<b>
2001.5.24 The PC can now be used as a source and/or target register.<br>
</b>
</font>
</td>
</tr>
 
<tr>
<td align=left>
<font color=#000000 face=Verdana,Arial,Helvetica,helvetica size=2>
<b>
<br>Because the PC is not a general register, when an instruction reaches the EXE and MEM stage, the current PC is ahead of the PC of the current instruction by 8 or 12 bytes.  So it can not be read to the EXE stage as a general register.  Therefore, it is read at the decoder stage and then adjusted the proper amount and at last sent to the EXE stage as an immediate value.<br>
<br>For the case of a write to the PC, it is treated as a Branch instruction.<br><br><br><br>
</b>
</font>
</td>
</tr>
 
<tr>
<td align=left>
<font color=#ffffff face=Verdana,Arial,Helvetica,helvetica size=3>
<b>
2001.5.23 Support for Multiply and Multiply-Accumulate (MUL, MLA)<br>
</b>
</font>
</td>
</tr>
 
 
<tr>
<td align=left>
<font color=#000000 face=Verdana,Arial,Helvetica,helvetica size=2>
<b>
<br>These two instructions can do multiply and multiply and then add operations.<br><br><br><br>
</b>
</font>
</td>
</tr>
 
<tr>
<td align=left>
<font color=#ffffff face=Verdana,Arial,Helvetica,helvetica size=3>
<b>
2001.5.21 Support for branch and branch with link<br>
</b>
</font>
</td>
</tr>
 
 
<tr>
<td align=left>
<font color=#000000 face=Verdana,Arial,Helvetica,helvetica size=2>
<b>
<br>These two instructions change the PC, and the later can write the next instruction address to R14 for return from subrutine.<br><br><br><br>
</b>
</font>
</td>
</tr>
 
<tr>
<td align=left>
<font color=#ffffff face=Verdana,Arial,Helvetica,helvetica size=3>
<b>
2001.5.20 Support for MRS and MSR instruction<br>
</b>
</font>
</td>
</tr>
 
<tr>
<td align=left>
<font color=#000000 face=Verdana,Arial,Helvetica,helvetica size=2>
<b>
<br>These two instructions write CPSR/SPSR to and from general registers.<br><br><br><br>
</b>
</font>
</td>
</tr>
 
<tr>
<td align=left>
<font color=#ffffff face=Verdana,Arial,Helvetica,helvetica size=3>
<b>
2001.5.17 Support for CPSR and SPSR read/write<br>
</b>
</font>
</td>
</tr>
 
<tr>
<td align=left>
<font color=#000000 face=Verdana,Arial,Helvetica,helvetica size=2>
<b>
<br>The two registers (actually six registers,including cpsr spsr_fiq spsr_und spsr_svc spsr_irq spsr_abt) can now be read/written, and the pipeline can use the condition code from cpsr to decide if an instruction can be executed.<br><br><br><br>
</b>
</font>
</td>
</tr>
 
<tr>
<td align=left>
<font color=#ffffff face=Verdana,Arial,Helvetica,helvetica size=3>
<b>
2001.5.16 Brand New Architecture and support for Load/Store<br>
</b>
</font>
</td>
</tr>
 
<tr>
<td align=left>
<font color=#000000 face=Verdana,Arial,Helvetica,helvetica size=2>
<b>
<br>Since the last update a month ago, I am working hard to change the architecture of nnARM,the main reason is described as follows:<br>
<br>When I started to develop this soft core,I thought that the ARM instruction set is very similar to the typical risc machine (such as DLX and MIPS.) Thus, I thought I could develop a RISC core to run various RISC instruction sets.  This idea is not wrong for a typical RISC architecture, but it is wrong for ARM. When I pushed forward with the development, I found that the ARM instruction set is very different from typical RISC.  It is difficult to run the ARM instruction set on it efficiently.  So I designed a brand new architecture for ARM.  And all functions that have been supported by the old architecture are also supported by the new architecture.<br>
<br>At the same time, I added support for load and store instructions. <br><br><br><br>
</b>
</font>
</td>
</tr>
 
 
<tr>
<td align=left>
<font color=#ffffff face=Verdana,Arial,Helvetica,helvetica size=3>
<b>
2001.4.17 Full Function ALU<br>
</b>
</font>
</td>
</tr>
 
<tr>
<td align=left>
<font color=#000000 face=Verdana,Arial,Helvetica,helvetica size=2>
<b>
<br>A new full function ALU has been released.  It can support all ALU operations in the ARM instruction set.  Its documentation is online now. <br><br><br><br>
</b>
</font>
</td>
</tr>
 
 
 
<tr>
<td align=left>
<font color=#ffffff face=Verdana,Arial,Helvetica,helvetica size=3>
<b>
2001.4.15 A new Barrel Shifter<br>
</b>
</font>
</td>
</tr>
 
<tr>
<td align=left>
<font color=#000000 face=Verdana,Arial,Helvetica,helvetica size=2>
<b>
<br>I have written documentation for the first release of this synthesable soft core in the last week.  Now, the documentation has been updated.  I started to push forword with this project again tonight.  I have written a new barrel shifter (in BarrelShift.v) and its test bench(in tb_BarrelShift.v).  New documentation sections about the new Barrel Shifter are also online now.<br><br><br><br>
</b>
</font>
</td>
</tr>
 
 
 
 
<tr>
<td align=left>
<font color=#ffffff face=Verdana,Arial,Helvetica,helvetica size=3>
<b>
2001.4.10 IT RUNS NOW!<br>
</b>
</font>
</td>
</tr>
 
<tr>
<td align=left>
<font color=#000000 face=Verdana,Arial,Helvetica,helvetica size=2>
<b>
<br>After 2 weeks of hard work, the processor now can run the ADD Instruction, but I know that it does have some limitations:<br>
 
<br>FIRST:the tomasulo structure still can not tell the decoder that an instruction has completed, so that the decoder can clear the register usage.<br>
 
<br>SECOND:the ALUWrapper still can not read from the write bus,so it can only get results from within ALUWrapper, only from the other entry.<br>
 
<br>Except the above two limitations,it runs fairly well. <br><br><br><br>
</b>
</font>
</td>
</tr>
 
</tbody>
</table>
</td>
</tr>
 
 
 
 
</tbody>
</table>
</body>
</html>

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.