- 爱易网页
 
                        - 
                            MSSQL教程
 
                        - 用底层代码说话:龙芯不是“中国心”解决方法 
 
                         
                    
                    
                    日期:2014-05-18  浏览次数:20633 次 
                    
                        
                         用底层代码说话:龙芯不是“中国心”
所谓   发明自己的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