verilog HDL子模块调用子模块 100

我做的是数字时钟,在clk=50Mhz下扫描三个状态,有一个是在clk1hz下计时,另外两个是调整小时和分钟的,always@(posedgeclk)begincase(... 我做的是数字时钟,在clk=50Mhz下扫描三个状态,有一个是在clk1hz下计时,另外两个是调整小时和分钟的,always@(posedge clk)
begin
case(state2)

countime: begin
timing z1(clk1hz,hour,min,sec);
end
chour: begin
if(inc1)

begin
if(hour==8'd23)
begin hour<=8'd00;end
else
begin hour<=hour+1;end
end

end
cmin: begin
if(inc1)

begin
if(min==8'd59)
begin min<=8'd0;end
else
begin min<=min+1;end
end

end
endcase
end

计时的话我又调用了另外一个模块
module timing(clk1hz,hour,min,sec);
input clk1hz;
output hour,min,sec;
reg[7:0] hour,min,sec;
always@(posedge clk1hz)
begin
if(sec==8'd59)
begin sec<='d0;
if(min==8'd59)
begin min<='d0;
if(hour==8'd23)
hour<=8'd0;
else
hour<=hour+1;
end
else
min<=min+1;
end
else
sec<=sec+1;
end
endmodule
可是编译起来有错误在这行
timing z1(clk1hz,hour,min,sec);
错误是Error (10170): Verilog HDL syntax error at inchange.v(16) near text "("; expecting ";", or ","自己改不了了,我想问问是不是可以这样实现,之前使用1hz的信号扫描按键的,烧进去之后按键不好用,现在改成这样不知道可不可以???急,在线等。
如果有人回答继续悬赏
展开
 我来答
无果等候
2012-07-17
知道答主
回答量:12
采纳率:0%
帮助的人:9.6万
展开全部
你的主模块调用,和被调用模块,都设置了hour,min,sec的判断语句和加计时,这就多余了,只要你在被调用模块中设置好hour,min,sec的计时即可,主模块直接调用,不用在定义加、减。你修改下试试
圣域暖香
2012-07-12
知道答主
回答量:7
采纳率:0%
帮助的人:4.1万
展开全部
调用子模块一般是
在主模块
reg clk1hz;
reg[7:0] hour;
reg[7:0] min;
reg[7:0] sec;
timing z1(
.clk1hz(clk1hz),
.hour(hour),
.min(min),
.sec(sec)
);
但不这样写应该也不会报错,只是参数会传不进去。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式