见鬼了,verilog 调用子模块出错 ?

[复制链接]
3602|2
 楼主| 将军令 发表于 2008-8-25 16:29 | 显示全部楼层 |阅读模式
verilog&nbsp;调用子模块出错&nbsp;<br /><br />我有一个verilog&nbsp;代码这样写,调用了2个子模块OEH_OEV_CKV、Phase_3_Generator<br />按照下面的写法编译器不会出现警告<br /><br /><br />`define&nbsp;AP_FREQ_SCALE&nbsp;96<br /><br />module&nbsp;Analog_panel_timming(&nbsp;CLK,RST&nbsp;,OEH,OEV,CKV,VCOM,AnalogBegin,STH_LR,P&nbsp;);<br /><br />input&nbsp;&nbsp;CLK;<br />input&nbsp;&nbsp;RST;<br />output&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[2:0]P&nbsp;,&nbsp;STH_LR;<br />output&nbsp;&nbsp;&nbsp;&nbsp;OEH;<br />output&nbsp;&nbsp;&nbsp;&nbsp;OEV;<br />output&nbsp;&nbsp;&nbsp;&nbsp;CKV;<br />output&nbsp;&nbsp;&nbsp;&nbsp;VCOM;<br />output&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AnalogBegin;&nbsp;//analog&nbsp;signal&nbsp;begin&nbsp;output<br /><br />integer&nbsp;i;<br />reg&nbsp;&nbsp;&nbsp;&nbsp;LineRst;<br /><br /><br />initial&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;i=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;//LineRst=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;end<br /><br />always&nbsp;&nbsp;&nbsp;&nbsp;@&nbsp;(posedge&nbsp;CLK)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;if(RST)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(i%`AP_FREQ_SCALE==0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;end<br />&nbsp;&nbsp;&nbsp;&nbsp;OEH_OEV_CKV&nbsp;&nbsp;&nbsp;&nbsp;U1(CLK,RST,OEH,OEV,CKV,VCOM,,AnalogBegin);<br />&nbsp;&nbsp;&nbsp;&nbsp;Phase_3_Generator&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P3G1(LineRst,CLK,STH_LR,P&nbsp;);<br />endmodule<br /><br />但是我如果写成以下文字,编译器就会有错误提示:<br />但是我如果写成以下文字,编译器就会有错误提示:<br />但是我如果写成以下文字,编译器就会有错误提示:<br />但是我如果写成以下文字,编译器就会有错误提示:<br />但是我如果写成以下文字,编译器就会有错误提示:<br />Starting:&nbsp;analyse&nbsp;source&nbsp;files&nbsp;hierarchy&nbsp;on&nbsp;16:20:47&nbsp;August&nbsp;25,&nbsp;2008<br />--&nbsp;Analyzing&nbsp;Verilog&nbsp;file&nbsp;C:/ispTOOLS7_1/ispcpld/../cae_library/synthesis/verilog/ec.v<br />--&nbsp;Analyzing&nbsp;Verilog&nbsp;file&nbsp;Untitled.h<br />--&nbsp;Analyzing&nbsp;Verilog&nbsp;file&nbsp;phase_3_generator.v<br />--&nbsp;Analyzing&nbsp;Verilog&nbsp;file&nbsp;pinassign_pll.v<br />--&nbsp;Analyzing&nbsp;Verilog&nbsp;file&nbsp;ec_pll.v<br />--&nbsp;Analyzing&nbsp;Verilog&nbsp;file&nbsp;oeh_oev_ckv.v<br />--&nbsp;Analyzing&nbsp;Verilog&nbsp;file&nbsp;analog_panel_timming.v<br />analog_panel_timming.v(34):&nbsp;ERROR:&nbsp;syntax&nbsp;error&nbsp;near&nbsp;U1<br />analog_panel_timming.v(36):&nbsp;ERROR:&nbsp;syntax&nbsp;error&nbsp;near&nbsp;P3G1<br />analog_panel_timming.v(47):&nbsp;ERROR:&nbsp;module&nbsp;Analog_panel_timming&nbsp;ignored&nbsp;due&nbsp;to&nbsp;previous&nbsp;errors<br />--&nbsp;Verilog&nbsp;file&nbsp;analog_panel_timming.v&nbsp;ignored&nbsp;due&nbsp;to&nbsp;errors<br />Fail&nbsp;to&nbsp;analyse&nbsp;source&nbsp;files&nbsp;hierarchy.<br />--------以下是更改后的源文件,为什么会出错呀?---------<br />--------以下是更改后的源文件,为什么会出错呀?---------<br />--------以下是更改后的源文件,为什么会出错呀?---------<br />--------以下是更改后的源文件,为什么会出错呀?---------<br />--------以下是更改后的源文件,为什么会出错呀?---------<br />--------以下是更改后的源文件,为什么会出错呀?---------<br />`define&nbsp;AP_FREQ_SCALE&nbsp;96<br /><br />module&nbsp;Analog_panel_timming(&nbsp;CLK,RST&nbsp;,OEH,OEV,CKV,VCOM,AnalogBegin,STH_LR,P&nbsp;);<br /><br />input&nbsp;&nbsp;CLK;<br />input&nbsp;&nbsp;RST;<br />output&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[2:0]P&nbsp;,&nbsp;STH_LR;<br />output&nbsp;&nbsp;&nbsp;&nbsp;OEH;<br />output&nbsp;&nbsp;&nbsp;&nbsp;OEV;<br />output&nbsp;&nbsp;&nbsp;&nbsp;CKV;<br />output&nbsp;&nbsp;&nbsp;&nbsp;VCOM;<br />output&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AnalogBegin;&nbsp;//analog&nbsp;signal&nbsp;begin&nbsp;output<br /><br />integer&nbsp;i;<br />reg&nbsp;&nbsp;&nbsp;&nbsp;LineRst;<br /><br /><br />initial&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;i=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;//LineRst=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;end<br /><br />always&nbsp;&nbsp;&nbsp;&nbsp;@&nbsp;(posedge&nbsp;CLK)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;if(RST)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(i%`AP_FREQ_SCALE==0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OEH_OEV_CKV&nbsp;&nbsp;&nbsp;&nbsp;U1(CLK,RST,OEH,OEV,CKV,VCOM,,AnalogBegin);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Phase_3_Generator&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P3G1(LineRst,CLK,STH_LR,P&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;end<br />endmodule&nbsp;<br />&nbsp;<br />
songchao01 发表于 2008-8-26 23:03 | 显示全部楼层

没见过在always块中实例化的

在always块中实例化这种方式应该不行吧,我个人看法。因为实际的硬件电路还做不到:满足某一个条件就把模块加进去,不满足就不加。如果你真要实现类似的功能的话,可以考虑添加一个使能信号,使条件满足时,这部分电路工作,不满足时电路不工作。
birenai 发表于 2008-8-29 18:06 | 显示全部楼层

注意信号的连接

光有一个模块的端口怎么调用啊,呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

180

主题

937

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部