我想在Altera DE2板上用verilog制作一个时钟。截至目前,我可以使用触发器作为时钟从00:00:00到23:59:59。现在我需要能够将Switch设置为某个值,比如12:56:00然后从那里开始计数。我试图将一个wire变量设置为初始开关输入,然后将其用作我的计数器的起点。
module part3(HEX0,HEX1,HEX2,HEX3,HEX4,HEX5,HEX6,HEX7,SW,KEY,LEDR,CLOCK_50);
input [17:0] LEDR, SW;
input [3:0] KEY;
input CLOCK_50;
output [0:6] HEX0,HEX1,HEX2,HEX3,HEX4,HEX5,HEX6,HEX7;
parameter clock_speed = 50000000;
parameter clock_divisor = 8;
wire [26:0] Q,Q2,Q3,Q4;
wire [3:0] one,two,three,four;
reg SecInc,MinInc,HrInc;
one = SW[3:0];
这是我崩溃的代码。我不明白为什么
wire in = SW[0];
是合法的,但我按照我的方式分配它是不合法的。我需要将开关输入存储在寄存器或线路中,以便根据条件增加该寄存器或线路。
注意:我没有正式的verilog介绍,我们的教授给了我们一个董事会和altera大学计划实验室的链接,并说有乐趣。
答案 0 :(得分:2)
您需要使用assign
关键字。变化:
one = SW[3:0];
为:
assign one = SW[3:0];
这被称为Verilog中的连续任务。如果您正在进行程序性分配(例如,在assign
块内),则不需要always
关键字。