私はこれに約 1 週間取り組んでおり、ビットストリームに到達することができましたが、そこで失敗し続けています。このエラーが表示されますが、試した意味がわかりません:
[DRC UCIO-1] 制約のない論理ポート: 5 つの論理ポートのうち 5 つは、ユーザーが割り当てた特定の場所の制約 (LOC) がありません。これにより、I/O の競合や、ボードの電源または接続との非互換性が発生し、パフォーマンスやシグナル インテグリティに影響を与えたり、極端な場合には、デバイスや接続先のコンポーネントに損傷を与えたりする可能性があります。この違反を修正するには、すべてのピン ロケーションを指定します。すべての論理ポートにユーザー指定のサイト LOC 制約が定義されていない限り、このデザインではビットストリームを生成できません。ピン位置が指定されていないビットストリームの作成を許可するには (推奨されません)、次のコマンドを使用します: set_property SEVERITY {Warning} [get_drc_checks UCIO-1]。注記: Vivado Runs インフラストラクチャ (launch_runs Tcl コマンドなど) を使用する場合は、このコマンドを . Tcl ファイルを作成し、そのファイルをインプリメンテーション run の write_bitstream ステップのプレフックとして追加します。問題のあるポート: Cout、W、X、Y、および Z。
これが私のコードです-
module sevenseg(
input w,
input x,
input y,
input z,
input clk,
output reg a,
output reg b,
output reg c,
output reg d,
output reg e,
output reg f,
output reg g,
output reg an3,
output reg an2,
output reg an1,
output reg an0
);
reg [18:0] count = 0;
always@(posedge(clk))
count = count +1;
always@(w,x,y,z)
if (count[18])
begin
an3=1;
an2=0;
an1=1;
an0=1;
a=~((~x&~z)|(w&~x)|(y&~z)|(~w&y)|(x&~y&z));
b=~((~y&~z)|(~w&~x)|(w&~y)|(w&x)|(x&y&z));
c=~((~y)|(z)|(~w&x)|(w&~x));
d=~((~x&~z)|(~x&y)|(y&~z)|(x&~y&z));
e=~((~x&~z)|(y&~z));
f=~((~y&~z)|(w&~x&y)|(~w&x&~y)|(~w&x&~z));
g=~((w&~z)|(x&~z)|(~x&y)|(x&~y));
end
else
begin
an3=0;
an2=1;
an1=1;
an0=1;
a=1;
b=1;
c=1;
d=1;
e=1;
f=1;
g=~w;
end
endmodule
module flipflop(
input enable,
input clk,
input a,
input b,
input c,
output q3,
output q2,
output q1,
output q0
);
and(a,clk);
and(b, clk);
and(c, clk);
xor(q3, clk);
xor(q2, clk);
xor(q1, clk);
xor(q0, clk);
endmodule
module fourflipflops(
input A,
input B,
input cc,
input D,
input count,
output Q3,
output Q2,
output Q1,
output Q0
);
wire C[7:1];
xor (C[3],Q3,A);
xor (C[2],Q2,B);
xor (C[1],Q1,cc);
xor (C[0],Q0,D);
endmodule
module package(
input A,
input B,
input cc,
input D,
input CLK,
input Cin,
output W,
output X,
output Y,
output Z,
output Cout
);
always@(W,X,Y,Z,Cout);
sevenseg(a);
sevenseg(b);
sevenseg(c);
sevenseg(d);
sevenseg(e);
sevenseg(f);
sevenseg(g);
endmodule