请教verilog hdl调试问题

[复制链接]
2539|1
 楼主| llx 发表于 2009-5-24 18:17 | 显示全部楼层 |阅读模式
用altera的EPM7128做地址译码和IO扩展,代码如下:<br /><br />`define&nbsp;&nbsp;IOCADDR&nbsp;&nbsp;&nbsp;9'h1f8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;IO_C地址,&nbsp;(0x1F800-0x1F8FF),&nbsp;input<br />`define&nbsp;&nbsp;IOFADDR&nbsp;&nbsp;&nbsp;9'h1f9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;IO_F地址,&nbsp;(0x1F900-0x1F9FF),&nbsp;input<br />`define&nbsp;&nbsp;IOAADDR&nbsp;&nbsp;&nbsp;9'h1fa&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;IO_A地址,&nbsp;(0x1FA00-0x1FAFF),&nbsp;output<br />`define&nbsp;&nbsp;IOBADDR&nbsp;&nbsp;&nbsp;9'h1fb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;IO_B地址,&nbsp;(0x1FB00-0x1FBFF),&nbsp;output<br />`define&nbsp;&nbsp;IODADDR&nbsp;&nbsp;&nbsp;9'h1fc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;IO_D地址,&nbsp;(0x1FC00-0x1FCFF),&nbsp;output<br />`define&nbsp;&nbsp;IOEADDR&nbsp;&nbsp;&nbsp;9'h1fd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;IO_E地址,&nbsp;(0x1FD00-0x1FDFF),&nbsp;output<br /><br />`define&nbsp;&nbsp;CSRAM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9'h1f8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;外部扩展RAM选通信号,&nbsp;126k空间&nbsp;(0x00000-0x1F7FF)<br /><br /><br />module&nbsp;Main&nbsp;(lowAddrData,&nbsp;highAddr,&nbsp;lowAddr,&nbsp;ale,&nbsp;wr,&nbsp;rd,&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;csRAM,&nbsp;ioaVector,&nbsp;iobVector,&nbsp;iocVector,&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iodVector,&nbsp;ioeVector,&nbsp;iofVector)&nbsp;;<br />&nbsp;&nbsp;inout&nbsp;[7:0]&nbsp;lowAddrData&nbsp;;<br />&nbsp;&nbsp;input&nbsp;[16:8]&nbsp;highAddr&nbsp;;<br />&nbsp;&nbsp;input&nbsp;ale,&nbsp;wr,&nbsp;rd&nbsp;;<br />&nbsp;&nbsp;output&nbsp;[7:0]&nbsp;lowAddr&nbsp;=&nbsp;8'hff&nbsp;;<br />&nbsp;&nbsp;output&nbsp;csRAM&nbsp;=&nbsp;'b1&nbsp;;<br />&nbsp;&nbsp;output&nbsp;[7:0]&nbsp;ioaVector&nbsp;=&nbsp;8'hff&nbsp;;<br />&nbsp;&nbsp;output&nbsp;[7:0]&nbsp;iobVector&nbsp;=&nbsp;8'hff&nbsp;;<br />&nbsp;&nbsp;input&nbsp;[7:0]&nbsp;iocVector&nbsp;;<br />&nbsp;&nbsp;output&nbsp;[7:0]&nbsp;iodVector&nbsp;=&nbsp;8'hff&nbsp;;<br />&nbsp;&nbsp;output&nbsp;[7:0]&nbsp;ioeVector&nbsp;=&nbsp;8'hff&nbsp;;<br />&nbsp;&nbsp;input&nbsp;[7:0]&nbsp;iofVector&nbsp;;<br /><br />&nbsp;&nbsp;wire&nbsp;[7:0]&nbsp;lowAddrData&nbsp;;<br />&nbsp;&nbsp;reg&nbsp;[7:0]&nbsp;lowAddrData_Input&nbsp;;<br />&nbsp;&nbsp;reg&nbsp;csRAM&nbsp;;<br />&nbsp;&nbsp;reg&nbsp;[7:0]&nbsp;lowAddr&nbsp;;<br />&nbsp;&nbsp;reg&nbsp;[7:0]&nbsp;ioaVector&nbsp;;<br />&nbsp;&nbsp;reg&nbsp;[7:0]&nbsp;iobVector&nbsp;;<br />&nbsp;&nbsp;wire&nbsp;[7:0]&nbsp;iocVector&nbsp;;<br />&nbsp;&nbsp;reg&nbsp;[7:0]&nbsp;iodVector&nbsp;;<br />&nbsp;&nbsp;reg&nbsp;[7:0]&nbsp;ioeVector&nbsp;;<br />&nbsp;&nbsp;wire&nbsp;[7:0]&nbsp;iofVector&nbsp;;<br /><br />&nbsp;&nbsp;always&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;锁存低8位地址<br />&nbsp;&nbsp;&nbsp;&nbsp;@&nbsp;(negedge&nbsp;ale)<br />&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lowAddr&nbsp;=&nbsp;lowAddrData&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;end<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;always&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;地址译码,RAM&nbsp;CS为低电平&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;@&nbsp;(ale&nbsp;or&nbsp;highAddr)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;电平触发<br />&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;ale&nbsp;==&nbsp;1&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;csRAM&nbsp;=&nbsp;'b1&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;highAddr&nbsp;&lt&nbsp;`CSRAM&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;csRAM&nbsp;=&nbsp;'b0&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;csRAM&nbsp;=&nbsp;'b1&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;end<br /><br />&nbsp;&nbsp;always&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;写数据<br />&nbsp;&nbsp;&nbsp;&nbsp;@&nbsp;(negedge&nbsp;wr)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;下降沿触发<br />&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;highAddr&nbsp;&gt=&nbsp;`IOEADDR&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ioeVector[7:0]&nbsp;=&nbsp;lowAddrData[7:0]&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(&nbsp;highAddr&nbsp;&gt=&nbsp;`IODADDR&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iodVector[7:0]&nbsp;=&nbsp;lowAddrData[7:0]&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(&nbsp;highAddr&nbsp;&gt=&nbsp;`IOBADDR&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iobVector[7:0]&nbsp;=&nbsp;lowAddrData[7:0]&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(&nbsp;highAddr&nbsp;&gt=&nbsp;`IOAADDR&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ioaVector[7:0]&nbsp;=&nbsp;lowAddrData[7:0]&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;end<br /><br />&nbsp;&nbsp;assign&nbsp;lowAddrData[7:0]&nbsp;=&nbsp;lowAddrData_Input[7:0]&nbsp;;<br /><br />&nbsp;&nbsp;always&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;read&nbsp;data<br />&nbsp;&nbsp;&nbsp;&nbsp;@&nbsp;(negedge&nbsp;rd)&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;negedge&nbsp;trig<br />&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;highAddr&nbsp;&gt=&nbsp;`IOFADDR&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lowAddrData_Input[7:0]&nbsp;=&nbsp;iofVector[7:0]&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(&nbsp;highAddr&nbsp;&gt=&nbsp;`IOCADDR&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lowAddrData_Input[7:0]&nbsp;=&nbsp;iocVector[7:0]&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;end<br /><br /><br />endmodule&nbsp;<br /><br /><br />用quartus&nbsp;5.0时正常,但在quartus&nbsp;7.1中出现很多警告,大家看看有没有问题?<br /><br />
Fourier00 发表于 2009-5-24 20:50 | 显示全部楼层

这个是与单片机

这个是与单片机接口,异步时序的话会有告警的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

llx

17

主题

48

帖子

0

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