verilog 中顶层文件引用其他模块出现错误,怎么修改?

单单从这个错误上看,很可能问题是因为你把某个输出端口定义曾为寄存器了而不是wire类型,在实例化count_60时,端口列表中的out端口实例化成了sec_n,而在这里你把sec_n定义成了寄存器,这个是不允许的。可以将reg [7:0] hou_n,min_n,sec_n,hou_a,min_a;中的sec_n改为wire[7:0]sec_n,其他变量也可能会出现这个问题,我没有细看,但是粗看一下有很多问题。这里给你指出一个,在count_60模块你应该是想定义60的计数器,但是其中8‘h59应该是表示16进制的59,换算成十进制的值应该是89,应该写成8’d59。