关于xc9572xl 的相当困惑的问题

[复制链接]
3188|4
 楼主| wyuanq 发表于 2008-3-12 16:16 | 显示全部楼层 |阅读模式
本想将CLK信号分频1/256,然后去让一个LED等闪烁。可是示波器测出来的记过是只分频到了1/2。<br />随便将count的哪一位赋给ledr都是一样的。ISE的综合报告上已经显示出有一个8位的计数器了。<br />器件是XC9572XL。<br /><br />相当困惑,哪位朋友遇到过类似问题,指点一下!!<br /><br />module&nbsp;pcicfg72(pclk,rst,ledr);<br />input&nbsp;pclk;<br />input&nbsp;rst;<br />output&nbsp;ledr;<br />wire&nbsp;clk;<br />wire&nbsp;n_rst;<br />reg&nbsp;ledr;<br />reg[7:0]&nbsp;count;<br /><br />always&nbsp;@(posedge&nbsp;clk)<br />&nbsp;&nbsp;&nbsp;&nbsp;if(~n_rst)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count&nbsp;&lt=&nbsp;8'b00000000;<br />&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count&nbsp;&lt=&nbsp;count&nbsp;+&nbsp;8'b00000001;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ledr&nbsp;&lt=&nbsp;count[7];<br />&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />IBUF&nbsp;IBUF_inst(&nbsp;.O(n_rst),&nbsp;.I(rst)&nbsp;);<br />BUFG&nbsp;BUFG_inst(&nbsp;.O(clk),&nbsp;.I(pclk)&nbsp;);&nbsp;//Clock&nbsp;buffer&nbsp;input<br />endmodule&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 楼主| wyuanq 发表于 2008-3-14 11:07 | 显示全部楼层

没人回,自己顶

  
zgl7903 发表于 2008-3-15 14:16 | 显示全部楼层

先试试用这个看看?

module&nbsp;pcicfg72(pclk,rst,ledr);<br />&nbsp;&nbsp;input&nbsp;pclk;<br />&nbsp;&nbsp;input&nbsp;rst;<br />&nbsp;&nbsp;output&nbsp;ledr;<br /><br />&nbsp;&nbsp;reg&nbsp;[7:0]count;<br />&nbsp;&nbsp;always&nbsp;@(posedge&nbsp;pclk&nbsp;or&nbsp;posedge&nbsp;rst)<br />&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(rst)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count&nbsp;=&nbsp;count&nbsp;+&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;end<br />&nbsp;&nbsp;assign&nbsp;ledr&nbsp;=&nbsp;count[7];<br />endmodule
zpk 发表于 2008-5-4 09:12 | 显示全部楼层

关于xc9572xl 的相当困惑的问题

我想要实现1/256的分频,应该写成<br />ledr&lt=~ledr;
cbutterfly 发表于 2008-5-4 16:23 | 显示全部楼层

可能rst有问题

本想将CLK信号分频1/256,然后去让一个LED等闪烁。可是示波器测出来的记过是只分频到了1/2。<br />随便将count的哪一位赋给ledr都是一样的。ISE的综合报告上已经显示出有一个8位的计数器了。<br />器件是XC9572XL。&nbsp;<br /><br />IBUF&nbsp;IBUF_inst(&nbsp;.O(n_rst),&nbsp;.I(rst)&nbsp;);<br />BUFG&nbsp;BUFG_inst(&nbsp;.O(clk),&nbsp;.I(pclk)&nbsp;);&nbsp;//Clock&nbsp;buffer&nbsp;input<br /><br />上边这个模块引用可能有问题。因为首先程序应该没什么问题。<br />而你说无论哪个位接到led都是二分频,那么问题可能就在哪个~n_rst上了<br /><br />要不就是你的电路有问题,复位联到时钟上了吧???<br /><br />具体还是看看仿真吧,仿真没问题那就找找个个输入是不是有问题了<br /><br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

29

帖子

1

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