日期:2014-05-18  浏览次数:20499 次

用底层代码说话:龙芯不是“中国心”
所谓   发明自己的CPU   我想应该是这样:1.自己老老实实自己用VHDL或VERILOG写
                                                                        ip   core   (其实ip   core几十个VHD或V文件)
                                                                      2.用综合器一步步综合成自己的标准单元电路
                                                                      3.布线制版
一。龙芯的ip   core由来
首先看一段代码(设置好福珑上的编程环境)

.data
mess:   .asciiz   “\n   hello   world   ”
.globl   main
.text
main:
li   $v0,   4   #   打印的系统中断号
la   $a0,   mess#   要打印的字符串的地址
syscall   #   调中断
.end       main      

这是在福珑机子(基于龙芯2E)上简单的一段HELLO   WORLD汇编代码,可以看出所有指令(li   la   还有这个程序没有包含的龙芯指令都和MIPS指令完全一样)都是MIPS指令,代码段和数据段和系统调用的约定都是MIPS指令集约定,为进一步确定龙芯指令集就是MIPS指令集,我查看连接后的二进制代码,再和MIPS手册指令的opcode对比,结果完全一样。连指令的名称到OPCODE都一样,我真是无语了。

cpu的各模块

                                                    ROM <-------|                                         |-----> decode单元
                                                                            -----央控制单元-----
                                                    RAM <-------|                                         |-----> ALU单元

1。中央处理单元从ROM(指令寄存器与内存统一编址)取指令              
2。然后通过decode单元译码(指令---> opcode)
3。ALU单元执行decode单元译出来的码(opcode)
4.   访RAM取数据等操作数
5。回写

我们都知道CPU的IP   CORE基本都是由VHDL或VERILOG写成,而其中必然有一decode模块将指令转化为OPCODE,例如8051的ip   core的i8051_dec.vhd文件中的decode模块:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
--decode单元
--i8051_dec.vhd文件

entity   I8051_DEC   is
        port(rst           :   in     STD_LOGIC;
                  op_in       :   in     UNSIGNED   (7   downto   0);
                  op_out     :   out   UNSIGNED   (8   downto   0));
end   I8051_DEC;

architecture   DFL   of   I8051_DEC   is