西安交大计算机组成_实验八
);
parameter A_NOP = 5'h00; parameter A_ADD = 5'h01; parameter A_SUB = 5'h02; parameter A_AND = 5'h03; parameter A_OR = 5'h04; parameter A_XOR = 5'h05; parameter A_NOR = 5'h06; parameter A_MUL = 5'h07; parameter A_DIV = 5'h08; parameter A_ROL = 5'h09;//循环左移 always@(posedge clk) begin case (alu_op)
4. 记录设计和调试过程。
四、实验代码及结果mFra bibliotekdule alu(
input clk,
input signed [31:0] alu_a,
input signed [31:0] alu_b,
input
[4:0] alu_op,
output reg
[31:0] alu_out,
output reg [63:0] alu_out2
a=01,b=11,分别相加,将 a 循环左移一位,相乘,相除,相乘结果保存到[63:0] alu_out2 中。
rtl 电路图:
五、调试和心得体会
由于 verilog 语言的优势,直接使用 case 语句即可完成一个 alu。
alu_out[31:0] = {alu_a[30:0],alu_a[31]}; end endcase end Endmodule
仿真代码: module sim(
); reg [31:0] alu_a; reg [31:0] alu_b; reg clk; reg [4:0] alu_op; wire [31:0] alu_out; wire [63:0] alu_out2; alu t(clk,alu_a,alu_b,alu_op,alu_out,alu_out2); always begin #50 clk=~clk; end initial begin clk<=1; #55 alu_a<=32'h01; alu_b<=32'h11; alu_op<=5'h01; #55 alu_op<=5'h09; #110 alu_op<=5'h07; #110 alu_op<=5'h08; end Endmodule
实验八 ALU 模块的设计与调试
一、实验目的
1. 熟练掌握 VHDL/Verilog 中语句的综合应用。
2. 掌握 ALU 模块的设计与应用。
二、实验内容
1. 设计一个基本的算术逻辑运算模块。
三、实验要求
1. 分析各模块的的程序结构,画出其流程图。
2. 画出模块的电路图。
3. 分析电路的仿真波形,标出关键的数值。
A_NOP:alu_out = 32'b0; A_ADD:alu_out = alu_a + alu_b; A_SUB:alu_out = alu_a - alu_b; A_AND:alu_out = alu_a & alu_b; A_OR :alu_out = alu_a | alu_b; A_XOR:alu_out = alu_a ^ alu_b; A_NOR:alu_out = alu_a ~^ alu_b; A_MUL:alu_out2 = alu_a * alu_b; A_DIV:alu_out = alu_a / alu_b; A_ROL:begin