Ich weiß nicht, was mit meinem Code falsch ist, wahrscheinlich eine Menge Dinge. Im Moment kann ich nicht herausfinden, wie ich meinen En-Ausgängen Registerwerte zuweisen kann. Ich bin jetzt verpflichtet, den Verilog-Code für einen digitalen Kurs zu verwenden. Ich habe es ein bisschen satt.Verilog Fragen
`timescale 1ns/1ps
///////////////////////////////////////////////////////////////////////////////// /
// Company:
// Engineer:
//
// Create Date: 13:57:18 03/15/2016
// Design Name:
// Module Name: Moving7Seg
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module Moving7Seg(B, C, Rst, ClkIn, D6, D5, D4, D3, D2, D1, D0, En3, En2, En1, En0);
input B, C, Rst, ClkIn;
output D6, D5, D4, D3, D2, D1, D0, En3, En2, En1, En0;
//wire D6, D5, D4, D3, D2, D1, D0, En3, En2, En1, En0;
reg ClkOut = 0;
reg bLast = 0;
reg cLast = 0;
//reg rstLast = 0;
reg [3:0]count = 0;
reg [3:0]enable = 4'b0001;
clockdivider getClk(ClkIn, ClkOut);
seg7 convert(count[3], count[2], count[1], count[0], D6, D5, D4, D3, D2, D1, D0);
always @(posedge ClkOut) begin
if(Rst == 1) begin
count = 0;
enable = 4'b0001;
end
if(B != bLast && B == 0) begin
case(enable)
4'b0001: enable = 4'b0010;
4'b0010: enable = 4'b0100;
4'b0100: enable = 4'b1000;
default: enable = 4'b0001;
endcase
end
if(C != cLast && C == 0) begin
count = count + 1;
end
bLast = B;
cLast = C;
//rstLast = Rst;
end
En3 <= enable[3];
En2 <= enable[2];
En1 <= enable[1];
En0 <= enable[0];
convert;
endmodule
Ändern Sie den Ausgang D6, D5, D4, D3, D2, D1, D0, En3, En2, En1, En0; 'auf' Ausgang D6, D5, D4, D3, D2, D1, D0; 'und eine andere Zeile 'output reg En3, En2, En1, En0;' – Greg
Alle Zuordnungen wie 'En3 <= enable [3];' sollten in prozeduralen Blöcken liegen. Keine Notwendigkeit, eine Modulinstanz aufzurufen ('convert' am Ende). Instanzen werden bei jedem Zeitschritt automatisch ausgeführt. – rahulcodesinverilog
Ich hatte die Zuweisungen wie 'En3 <= aktivieren [3];' am Ende des immer Block, aber das wurde immer noch nicht erkannt. "Verweis auf skalaren Draht 'En3' ist keine legale reg oder Variable lvalue" – Raisintoe