实验1运算器组成实验
看到有好多小伙伴想要ALU181的HDL代码,我就找了找以前做的实验,翻出了代码,希望可以帮到各位哦
module ALU181a (S, A, B, F, M, CN, CO, FZ);
input[3:0] S; input[7:0] A,B; input M, CN;
output[7:0] F; output CO, FZ;
//wire[7:0] F; wire CO;
wire[8:0] A9, B9; reg FZ; reg[8:0] F9; reg [7:0] F; reg CO;
assign A9 = {1'b0, A} ; assign B9 = {1'b0, B} ;
always @(M or CN or A9 or B9 or S) begin
case (S)
4'b0000 : if (M==0) F9<=A9+CN ; else F9<=~A9 ;
4'b0001 : if (M==0) F9 <= (A9 |B9) + CN ; else F9<=~(A9 | B9) ;
4'b0010 : if (M==0) F9 <= (A9 |((~B9)&9'b011111111))+ CN; else F9<=(~A9) & B9 ;
4'b0011 : if (M==0) F9 <= 9'b000000000-CN; else F9<=9'b000000000;
4'b0100 : if (M==0) F9 <=A9+(A9 & ((~B9)&9'b011111111))+CN; else F9<=~(A9 & B9) ;
4'b0101 : if (M==0) F9<=(A9|B9)+(A9& ((~B9)&9'b011111111))+CN;

本次实验介绍了如何利用Verilog实现8位ALU,目标包括理解运算器数据通路、验证其组合功能,并通过Quartus17.1平台进行仿真。实验内容涉及算术和逻辑运算,最终通过波形图验证了设计的正确性。
最低0.47元/天 解锁文章
4万+





