module fa(a,b,cin,cout,sum);
input a;
input b;
wire bxor;
input cin;
output cout;
output sum;
assign bxor = b^cin;
assign sum = ((a^bxor)^(cin));
assign cout = ((a&bxor)|((a^bxor)&cin));
endmodule
module rca(a,b,cin,cout,sum);
input cin;
output cout;
output [7:0] sum;
input [7:0] a, b;
wire c[6:0];
fa first(a[0],b[0],cin,c[0],sum[0]);
fa second(a[1],b[1],c[0],c[1],sum[1]);
fa third(a[2],b[2],c[1],c[2],sum[2]);
fa fourth(a[3],b[3],c[2],c[3],sum[3]);
fa fifth(a[4],b[4],c[3],c[4],sum[4]);
fa sixth(a[5],b[5],c[4],c[5],sum[5]);
fa seventh(a[6],b[6],c[5],c[6],sum[6]);
fa eighth(a[7],b[7],c[6],cout,sum[7]);
endmodule
module alu_op(a,b,op,out);
input [7:0] a, b;
input [2:0] op;
output [7:0] out;
output reg out1;
always @ (op or a or b)
case (op)
3'b000 : out1 = fa(a, b, op[0], op[0], out);
3'b001 : out1 = fa(a,b,op[0], op[0], out);
//3'b010 : out = shift shifter (a[7:0],b[7:0],out[7:0]);
3'b011 : out1 = a^b;
3'b100 : out1 = a | b;
3'b101 : out1 = a & b;
endcase
endmodule
사례 진술에서 함수를 호출 할 수 없기 때문에 문제라고 생각합니다. 나는 이것에 완전히 새롭고 무엇을 해야할지 전혀 모른다. 나는 기본적으로 alu를 만들고 있는데, 처음 두 사례는 add와 sub를 사용하기로되어있다. 내가 컴파일 할 때Verilog이 내 기능을 보지 못했습니다.
내가 얻을 :
alutester.vl:66: error: No function fa in this context (alu.utt).
alutester.vl:67: error: No function rca in this context (alu.utt).
내가 왜 아무 생각이 없습니다. 누군가 나를 도와 줄 수 있니?
나는 거기에있는 리플 캐리 가산기를 사용하려고 시도했지만, 나는 단지 전체 가산기를 어떻게 사용했는지 파악할 수 없었다. rca가 나에게 알려주는 경우 – user2197126