M
MRFGUY
Guest
Aku hanya mencoba untuk merancang bcd counter (00-66) dengan menggunakan Verilog.Aku menulis kode Verilog di bangku Xilinx dan menguji gelombang menunjukkan dengan benar.Lalu aku mencoba untuk mendownload ke xc9572 cpld.Setelah men-download, ketika saya mencoba untuk menguji itu mulai menghitung 00-66 pada pertama kalinya.Kemudian kembali 08 (bukannya kembali ke 00) dan kemudian meja menunjukkan hanya 08-66.Dari 00-07 adalah hanya menghilang setelah 1 loop.
di sini adalah program saya:
modul berisi (vc, ttl, qx, qy);
masukan vc, ttl;
output [3:0] qx, qy;
kawat a, b, c, d, a1, b1, c1, d1;
kawat reseta, resetc;
assign resetc = ((a & b & c) & (b1 & c1));
assign reseta = ((b & d) | ((a & b & c) & (b1 & c1)));
ls7493 x1 (vc, ttl, reseta, reseta, a, b, c, d);
ls7493 x2 (vc, d, resetc, resetc, a1, b1, c1, d1);
menetapkan qx = (d, c, b, a);
menetapkan qy = (d1, c1, b1, a1);
endmodule
---------
modul ls7493 (VCC, AA, reset0, reset1, QA, QB, QC, QD);
masukan AA, reset0, reset1, VCC;
output QA, QB, QC, QD;
kawat QA, QB, QC, QD;
reg ulang;
selalu @ (reset0 atau reset1)
mulai
reset = reset0 & reset1;
akhir
Jika A (VCC, reset, AA, QA);
Jika B (VCC, reset, QA, QB);
Jika C (VCC, reset, QB, QC);
Jika D (VCC, reset, QC, QD);
endmodule
-------
modul dst (t, terlebih dulu, in_t, output_t);
masukan t, terlebih dulu, in_t;
output output_t;
reg output_t;
output_t awal = 1;
selalu @ (negedge in_t atau posedge terlebih dulu)
mulai
if (terlebih dulu == 1)
output_t <= 0;
else if (t == 0)
output_t <= in_t;
lain
output_t <= ~ output_t;
akhir
endmodule
di sini adalah program saya:
modul berisi (vc, ttl, qx, qy);
masukan vc, ttl;
output [3:0] qx, qy;
kawat a, b, c, d, a1, b1, c1, d1;
kawat reseta, resetc;
assign resetc = ((a & b & c) & (b1 & c1));
assign reseta = ((b & d) | ((a & b & c) & (b1 & c1)));
ls7493 x1 (vc, ttl, reseta, reseta, a, b, c, d);
ls7493 x2 (vc, d, resetc, resetc, a1, b1, c1, d1);
menetapkan qx = (d, c, b, a);
menetapkan qy = (d1, c1, b1, a1);
endmodule
---------
modul ls7493 (VCC, AA, reset0, reset1, QA, QB, QC, QD);
masukan AA, reset0, reset1, VCC;
output QA, QB, QC, QD;
kawat QA, QB, QC, QD;
reg ulang;
selalu @ (reset0 atau reset1)
mulai
reset = reset0 & reset1;
akhir
Jika A (VCC, reset, AA, QA);
Jika B (VCC, reset, QA, QB);
Jika C (VCC, reset, QB, QC);
Jika D (VCC, reset, QC, QD);
endmodule
-------
modul dst (t, terlebih dulu, in_t, output_t);
masukan t, terlebih dulu, in_t;
output output_t;
reg output_t;
output_t awal = 1;
selalu @ (negedge in_t atau posedge terlebih dulu)
mulai
if (terlebih dulu == 1)
output_t <= 0;
else if (t == 0)
output_t <= in_t;
lain
output_t <= ~ output_t;
akhir
endmodule