任务是为bcd计数器创建一个7位二进制文件。但是,使用我的一个模块,我收到的错误如
错误:HDLCompiler:806 - “D:/ Xilinx Stuff / Binary_BCD / prog_counter.v”第23行:“输入”附近的语法错误。
我刚开始使用这种语言,希望能够获得语法方面的所有帮助。我四处寻找简单的错误,比如丢失了冒号,却找不到任何错误。也许第二组眼睛会有所帮助:
module prog_count_7(max_count, reset, clk, count_out)
input [6:0] max_count;
input reset, clk;
output [6:0] count_out;
// Wires/Registers required go here.
reg reset;
reg [6:0] max_count;
// 7-bit counter instance
count_7 counter_1(.enable(1'b1),
.reset(reset),
.clk(clk),
.count_out(count_out));
// logic for Counter control
always @(enable or reset or posedge clk or count_out) begin
if(reset == 1) begin // Reset Condition
if(max_count >= 99) begin
count_out = 99;
end else if(max_count<99 & count_out <99 & max_count > count_out) begin
count_out = count_out + 1;
end
end else if(reset == 0) begin
count_out = 0;
end
end
答案 0 :(得分:0)
你在第一行缺少一个半列。
module prog_count_7(max_count, reset, clk, count_out) ; //<-- here
此外,“计数器控制”的灵敏度列表没有意义。 enable
和count_out
不应该在那里。 reset should be
negedge reset`。通常如此:
always @(posedge clk or negedge reset)
建议在分配触发器时使用非阻塞(<=
)。
建议编码“反控制”
always @(posedge clk or negedge reset) begin
if (reset == 0) begin // Reset Condition
count_out <= 0;
end
else if (enable == 1) begin
if (max_count >= 99) begin
count_out <= 99;
end
else if (count_out < 99 && max_count > count_out) begin
count_out <= count_out + 1;
end
end
end