-2
module try2(p,d,q1,q2,q3,q4,q5,q6,q7,q8,c,a);
input p,c;
output [15:0]q1,q2,q3,q4,q5,q6,q7,q8,d,a;
reg [15:0] d=16'b0;//may be error
reg [15:0]a;
always @ (posedge p) begin
d<=d+1;
end
DFF dff0(q1,d,p);
DFF dff1(q2,q1,p);
DFF dff2(q3,q2,p);
DFF dff3(q4,q3,p);
DFF dff4(q5,q4,p);
DFF dff5(q6,q5,p);
DFF dff6(q7,q6,p);
DFF dff7(q8,q7,p);
always @ (posedge c)begin
a = (q1 + q2 + q3 + q4 + q5 + q6 + q7 + q8)/8;
end
endmodule
module DFF(q,d,clk);
input [15:0]d;
input clk;
output [15:0]q;
reg [15:0]q;
always @ (posedge clk)begin
q <=d;
end
endmodule
여기에서 나는 펄스 p의 최고치를 세고 16 비트 d의 값을 나타냅니다. 그리고 다른 입력 c가 0에서 1로 갈 때마다 나는 d의 마지막 8 개 값의 평균을 보여줍니다.d의 평균을 보여주는 p의 최고치 계산
문제점 : 모든 것이 잘 작동하지만 1의 편차를 보여주는 평균값과 프로그램은 자극적이지만 합성하지는 않습니다.
"프로그램이 합성되지 않습니다."- 어떤 오류가 발생했는지 알려주는 데 도움이 될 수 있습니다. –