写出4位串入、串出移位寄存器的verilog HDL描述(要准确答案,正确的话,我把所有分都给你!)

1、写出4位串入、串出移位寄存器的verilog HDL描述。
2、写出一个算术逻辑单元(ALU)的verilog HDL描述。该电路能进行两个算术运算和两个逻辑运算,且由一个2位的输入来选择操作。四个运算为加、减、与和或。

1. shift reg

module shift_4(clk,rst,in,out)

input clk,rst;
input in;
output out;

wire out;
reg [3:0] shiftreg;

always@(posedge clk or negedge rst) // 异步清零
if(!rst)
shiftreg<=0;
else begin
shiftreg[0]<=in;
shiftreg[1]<=shiftreg[0];
shiftreg[2]<=shiftreg[1];
shiftreg[3]<=shiftreg[2];
end

assign out=shiftreg[3];

endmodule

2.ALU

`define ADD 2'h0
`define SUB 2'h1
`define AND 2'h2
`define OR 2'h3

module ALU(a,b,f,s)

parameter N=16;

input [N-1:0] a,b;
input [1:0] f;
output [N-1:0] s;

reg [N-1:0] s;

always@(a or b or f)
case(f)
`ADD: s<=a+b;
`SUB: s<=a-b;
`AND: s<=a & b;
`OR: s<=a | b;
default: s<=s;
endcase

endmodule
温馨提示:答案为网友推荐,仅供参考
相似回答