www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 公眾號精選 > 全棧芯片工程師
[導(dǎo)讀]本CPU設(shè)計基于16bitRISC指令集、哈佛結(jié)構(gòu)完成,架構(gòu)圖如下:CPU架構(gòu)A.MemoryAccessInstructions1.LoadWord:????????LDws,offset(rs1)ws:=Mem16[rs1offset]2.StoreWord:????????...


CPU設(shè)計基于16bit RISC指令集、哈佛結(jié)構(gòu)完成,架構(gòu)圖如下:



CPU架構(gòu)



A. Memory Access Instructions
1. Load Word:

? ? ? ? ? ? ? ?LD ws, offset(rs1) ws:=Mem16[rs1 offset]
2. Store Word:

? ? ? ? ? ? ? ?ST rs2, offset(rs1) Mem16[rs1 offset]=rs2


B. Data Processing Instructions
1. Add:

? ? ? ? ? ? ? ?ADD ws, rs1, rs2 ws:=rs1 rs2
2. Subtract:

? ? ? ? ? ? ? ?SUB ws, rs1, rs2 ws:=rs1 – rs2
3. Invert (1‘s complement):

? ? ? ? ? ? ? ?INV ws, rs1 ws:=!rs1
4. Logical Shift Left:

? ? ? ? ? ? ? ?LSL ws, rs1, rs2 ws:=rs1 << rs2
5. Logical Shift Right:

? ? ? ? ? ? ? ?LSR ws, rs1, rs2 ws:=rs1 >> rs2
6. Bitwise AND:

? ? ? ? ? ? ? ?AND ws, rs1, rs2 ws:=rs1 ? rs2
7. Bitwise OR:

? ? ? ? ? ? ? OR ws, rs1, rs2 ws:=rs1 | rs2
8. Set on Less Than:
? ? ? ? ? ? ?SLT ws, rs1, rs2 ws:=1 if rs1 < rs2; ws:=0 if rs1 ≥ rs2


C. Control Flow Instructions
1. Branch on Equal:
? ? ? ? ? ? ? ?BEQ rs1, rs2, offset
? ? ? ? ? ? ? ?Branch to (PC 2 (offset << 1)) when rs1 = rs2

2. Branch on Not Equal:
? ? ? ? ? ? ? BNE rs1, rs2, offset
? ? ? ? ? ? ? Branch to (PC 2 (offset << 1)) when rs1 != rs2

3. Jump: JMP offset Jump to {PC [15:13], (offset << 1)}




Instruction Format of the RISC



Processor Control Unit Design:

ALU Control Unit Design:


Verilog code for the RISC processor:


1. Verilog code for?Instruction Memory?:


`include "Parameter.v"// fpga4student.com // FPGA projects, VHDL projects, Verilog projects // Verilog code for RISC Processor // Verilog code for Instruction Memorymodule Instruction_Memory( input[15:0] pc, output[15:0] instruction);
reg [`col - 1:0] memory [`row_i - 1:0]; wire [3 : 0] rom_addr = pc[4 : 1]; initial begin $readmemb("./test/test.prog", memory,0,14); end assign instruction = memory[rom_addr];
endmodule

2. Verilog code for?register file:


`timescale 1ns / 1ps// fpga4student.com // FPGA projects, VHDL projects, Verilog projects // Verilog code for RISC Processor // Verilog code for register filemodule GPRs( input clk, // write port input reg_write_en, input [2:0] reg_write_dest, input [15:0] reg_write_data, //read port 1 input [2:0] reg_read_addr_1, output [15:0] reg_read_data_1, //read port 2 input [2:0] reg_read_addr_2, output [15:0] reg_read_data_2); reg [15:0] reg_array [7:0]; integer i; // write port //reg [2:0] i; initial begin for(i=0;i<8;i=i 1) reg_array[i] <= 16'd0; end always @ (posedge clk ) begin if(reg_write_en) begin reg_array[reg_write_dest] <= reg_write_data; end end? assign reg_read_data_1 = reg_array[reg_read_addr_1];?assign?reg_read_data_2?=?reg_array[reg_read_addr_2];
endmodule

3. Verilog code for Data Memory:

`include "Parameter.v"// fpga4student.com // FPGA projects, VHDL projects, Verilog projects // Verilog code for RISC Processor // Verilog code for data Memorymodule Data_Memory( input clk, // address input, shared by read and write port input [15:0] mem_access_addr, // write port input [15:0] mem_write_data, input mem_write_en, input mem_read, // read port output [15:0] mem_read_data);
reg [`col - 1:0] memory [`row_d - 1:0];integer f;wire [2:0] ram_addr=mem_access_addr[2:0];initial begin $readmemb("./test/test.data", memory); f = $fopen(`filename); $fmonitor(f, "time = %d\n", $time, "\tmemory[0] = %b\n", memory[0], "\tmemory[1] = %b\n", memory[1], "\tmemory[2] = %b\n", memory[2], "\tmemory[3] = %b\n", memory[3], "\tmemory[4] = %b\n", memory[4], "\tmemory[5] = %b\n", memory[5], "\tmemory[6] = %b\n", memory[6], "\tmemory[7] = %b\n", memory[7]); `simulation_time; $fclose(f); end always @(posedge clk) begin if (mem_write_en) memory[ram_addr] <= mem_write_data; end assign mem_read_data = (mem_read==1'b1) ? memory[ram_addr]: 16'd0;
endmodule


4. Verilog code for ALU unit:

// fpga4student.com // FPGA projects, VHDL projects, Verilog projects // Verilog code for RISC Processor // Verilog code for ALUmodule ALU( input [15:0] a, //src1 input [15:0] b, //src2 input [2:0] alu_control, //function sel output reg [15:0] result, //result output zero );
always @(*)begin case(alu_control) 3'b000: result = a b; // add 3'b001: result = a - b; // sub 3'b010: result = ~a; 3'b011: result = a< 3'b100: result = a>>b; 3'b101: result = a
本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

北京2022年10月19日 /美通社/ -- 隨著云計算、大數(shù)據(jù)的普及發(fā)展,過去的"云"是服務(wù)于大企業(yè)的計算模型,而十多年過去了,越來越多的應(yīng)用及業(yè)務(wù)走上"云端",對計算核心數(shù)需求...

關(guān)鍵字: ARM 大數(shù)據(jù) 云游戲 CPU

在這篇文章中,小編將對CPU中央處理器的相關(guān)內(nèi)容和情況加以介紹以幫助大家增進對CPU中央處理器的了解程度,和小編一起來閱讀以下內(nèi)容吧。

關(guān)鍵字: CPU 中央處理器 晶圓

在桌面級處理器上,AMD多年來一直在多核上有優(yōu)勢,不過12代酷睿開始,Intel通過P、E核異構(gòu)實現(xiàn)了反超,13代酷睿做到了24核32線程,核心數(shù)已經(jīng)超過了銳龍7000的最大16核。在服務(wù)器處理器上,AMD優(yōu)勢更大,64...

關(guān)鍵字: AMD CPU Intel EUV

華為麒麟芯片(HUAWEI Kirin)是華為技術(shù)有限公司于2019年9月6日在德國柏林和北京同時發(fā)布的一款新一代旗艦芯片。華為麒麟在3G芯片大戰(zhàn)中,扮演了“黑馬”的角色。

關(guān)鍵字: 麒麟 CPU 華為Mate 50

據(jù)業(yè)內(nèi)信息,近日ADM的一份內(nèi)部報告顯示,ADM正在計劃降低其銳龍 7000 CPU的生產(chǎn)計劃?,F(xiàn)階段全球市場PC的低迷和銷量下滑,再加上AM5平臺整體反響不佳等等一系列原因?qū)е翧DM采取這一行動計劃。

關(guān)鍵字: PC ADM 銳龍 7000 CPU

北京2022年10月17日 /美通社/ --  "天下武功、唯快不破",數(shù)字經(jīng)濟時代尤甚。 數(shù)據(jù)極富價值,堪比新時代的石油。數(shù)字經(jīng)濟時代,數(shù)據(jù)價值如何快速、高效地釋放顯得尤為重要。自20...

關(guān)鍵字: 軟件 IO SSD CPU

Linux內(nèi)核是從V2.6開始引入設(shè)備樹的概念,其起源于OF:OpenFirmware, 用于描述一個硬件平臺的硬件資源信息,這些信息包括:CPU的數(shù)量和類別、內(nèi)存基地址和大小、總線和橋、外設(shè)連接、中斷控制器和中斷使用情...

關(guān)鍵字: Linux內(nèi)核 硬件 CPU

(微控制單元 MCU(Microcontroller Unit),又稱單片機,是把中央處理器(CentralProcess Unit; CPU)的頻率與規(guī)格做適當(dāng)縮減,并將內(nèi)存(memory)、計數(shù)器(Timer)、US...

關(guān)鍵字: 單片機 芯片 CPU

日前,瀾起科技宣布其第三代津逮?CPU系列產(chǎn)品通過了VMware公司的產(chǎn)品兼容性認證,達到VMware ESXi 7.0 U3虛擬化平臺的通用兼容性及性能、可靠性要求,滿足用戶的關(guān)鍵應(yīng)用需要。

關(guān)鍵字: 瀾起科技 CPU VMware兼容性

CPU內(nèi)部自帶的定時器模塊,通過初始化、配置可以實現(xiàn)定時,定時時間到以后就會執(zhí)行相應(yīng)的定時器中斷處理函數(shù)。硬件定時器一般都帶有其它功能,比如PWM輸出、輸入捕獲等等功能。但是缺點是硬件定時器數(shù)量少??!

關(guān)鍵字: 軟件定時器 硬件定時器 CPU

全棧芯片工程師

60 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉