体系结构实验手册

2026/1/13 15:01:20

《高级计算机体系结构》实验

图4

三.实验环境

软件:QuartusII 6,ModelSim

硬件平台:GW48-SOPC/DSP EP1C6Q240

四.实验步骤

1.各个子模块的Verilog实现 (1)ALU模块

module alu(op,a,b,c); input op;

input [7:0] a,b; output [7:0] c;

assign c = (op==0)?(a+b):(a&b); endmodule

(2)IR模块

module ir(clk,load,din,dout); input clk,load; input [1:0] din; output [1:0] dout; reg [1:0] dout;

always @(posedge clk) begin

if(load)

dout = din; end endmodule

(3)DR模块

module dr(clk,load,din,dout); input clk,load; input [7:0] din; output [7:0] dout; reg [7:0] dout;

always @(posedge clk) begin

if(load)

dout = din;

《高级计算机体系结构》实验

end endmodule

(4)PC模块

module pc(clk,rst,load,inc,din,dout); input clk,rst,load,inc; input [5:0] din; output [5:0] dout; reg [5:0] dout;

always @(posedge clk) begin if(rst)

dout = 0; else if(inc)

dout = dout + 1; else if(load) dout = din; end endmodule

(5)AR模块

module ar(clk,load,din,dout); input clk,load; input [5:0] din; output [5:0] dout; reg [5:0] dout;

always @(posedge clk) begin

if(load)

dout = din; end endmodule

(6)AC模块

module ac(clk,rst,load,inc,din,dout); input clk,rst,load,inc; input [7:0] din; output [7:0] dout; reg [7:0] dout;

always @(posedge clk) begin if(rst)

dout = 0; else if(inc)

《高级计算机体系结构》实验

dout = dout + 1; else if(load) dout = din; end endmodule

(7)Control模块

module control(clk,rst,ir, read,membus, arload,

pcload,pcinc,pcbus, drload,drbus, alusel,

acload,acinc, irload );

parameter FETCH1 = 0; parameter FETCH2 = 1; parameter FETCH3 = 2; parameter ADD1 = 3; parameter ADD2 = 4; parameter AND1 = 5; parameter AND2 = 6; parameter INC1 = 7; parameter JMP1 = 8; input clk,rst; input [1:0] ir;

output read,membus, arload,

pcload,pcinc,pcbus, drload,drbus, alusel,

acload,acinc, irload;

reg [3:0] state,nextstate; always @(posedge clk) begin if(rst)

state <= FETCH1; else

state <= nextstate; end

always @(state or ir) begin

《高级计算机体系结构》实验

case(state)

FETCH1:nextstate <= FETCH2; FETCH2:nextstate <= FETCH3; FETCH3: begin

if(ir==0)

nextstate <= ADD1; else if(ir == 1)

nextstate <= AND1; else if(ir == 2)

nextstate <= INC1; else

nextstate <= JMP1; end

ADD1:nextstate <= ADD2; ADD2:nextstate <= FETCH1; AND1:nextstate <= AND2; AND2:nextstate <= FETCH1; JMP1:nextstate <= FETCH1; INC1:nextstate <= FETCH1; default:nextstate <= FETCH1; endcase end

assign arload = (state == FETCH1 || state== FETCH3)?1:0; assign pcload = (state == JMP1)?1:0; assign pcinc = (state == FETCH2)?1:0;

assign drload = (state == FETCH2 || state== ADD1 || state== AND1)?1:0;

assign acload = (state == ADD2 || state== AND2)?1:0; assign acinc = (state == INC1 )?1:0; assign irload = (state == FETCH3)?1:0; assign alusel = (state == AND2)?1:0;

assign membus = (state == FETCH2 || state== ADD1 || state== AND1)?1:0;

assign pcbus = (state == FETCH1)?1:0;

assign drbus = (state == FETCH3 || state== ADD2 || state== AND2 || state == JMP1)?1:0;

assign read = (state == FETCH2 || state == ADD1 || state == AND1)?1:0; endmodule

(8)三态门(6 bit)模块

module tri6(en,din,dout); input en;


体系结构实验手册.doc 将本文的Word文档下载到电脑
搜索更多关于: 体系结构实验手册 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219