Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

verilog syntax error near "reg" execting a direction

Status
Not open for further replies.

Luchete 1

Newbie
Joined
May 7, 2023
Messages
1
Helped
0
Reputation
0
Reaction score
0
Trophy points
0
Activity points
18
Hi, i'm learning about verilog and recently bought a max II CPLD kit, i was doing a verilog program trying to make a 7 segment display go form 0 to f on hex in a 1s delay (max II internal clk is 50MHz) between digits. i can't find the error in the syntaxis in that part of the code

Error (10170): Verilog HDL syntax error at Hex_7seg.v(3) near text: "reg"; expecting a direction.

Code:
module Hex_7seg(
    input clk,
    reg sig,
    reg [6:0] seg_data,
    output [6:0] seg
);

 reg [25:0] contador;
 reg [3:0] hex = 4'h0;

always @(posedge clk) begin
     if (contador == 25000000)
     begin
        contador <= 0;
        sig <= ~sig;
     end
     else begin
        contador <= contador + 1;
    end
end

//primer bloque me da en sig un clk de 1Hz

always @(negedge sig) begin
    case (hex)
        4'h0: seg_data = 7'b1000000; // 0
        4'h1: seg_data = 7'b1111001; // 1
        4'h2: seg_data = 7'b0100100; // 2
        4'h3: seg_data = 7'b0110000; // 3
        4'h4: seg_data = 7'b0011001; // 4
        4'h5: seg_data = 7'b0010010; // 5
        4'h6: seg_data = 7'b0000010; // 6
        4'h7: seg_data = 7'b1111000; // 7
        4'h8: seg_data = 7'b0000000; // 8
        4'h9: seg_data = 7'b0011000; // 9
        4'ha: seg_data = 7'b0001000; // A
        4'hb: seg_data = 7'b0000011; // B
        4'hc: seg_data = 7'b1000110; // C
        4'hd: seg_data = 7'b0100001; // D
        4'he: seg_data = 7'b0000110; // E
        4'hf: seg_data = 7'b0001110; // F
        default : seg_data = 7'b1110110; // U en caso de error
    endcase
    if (hex == 4'hf)
        begin
        hex <= 4'h0;
        end
    else
        begin
        hex <= hex +1;
        end
end
seg <= seg_data;

endmodule
 
Last edited by a moderator:

Verilog does not allow the reg datatype applied to an input port. SystemVerilog would allow this. You can remove the reg keyword
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top