求问一个xilinx 时钟使用的问题

2019-03-25 10:26发布

各位好!
我有一个xilinx ML506的板子,下了个简单的组合逻辑电路测试 结果OK。
然后下个时序逻辑就出错了。。。
我的代码如下:
module LED( c, my_clk
    );
         input my_clk;
         output reg c;
         wire clk;

         initial begin
                c = 1;
         end
       
         always @(posedge clk) begin
                c <= ~c;
         end
               
         div_clk uut (
                 .my_clk(my_clk),
                 .clk(clk)
                 );

endmodule

module div_clk(my_clk, clk
    );
         input my_clk;
         output reg clk;
         reg [15:0] counter;
         
         initial begin
                counter = 0;
         end
         
         always @(posedge my_clk) begin
                if (counter == 10000) begin
                        counter <= 0;
                        clk <= ~clk;
                end
                else begin
                        clk <= clk;
                        counter <= counter + 1;
                end
         end


endmodule
约束文件如下:
#" PlanAhead Generated physical constraints "
NET "c" LOC = H18
#"Created by Constraints Editor (xc5vsx50t-ff1136-1) - 2011/04/01"
NET "my_clk" TNM_NET = my_clk
TIMESPEC TS_my_clk = PERIOD "my_clk" 1 ms HIGH 50% INPUT_JITTER 10 us
#"Created by Constraints Editor (xc5vsx50t-ff1136-1) - 2011/04/02"
OFFSET = OUT 50 ns AFTER "my_clk"

结果是:c信号对应管脚的灯一直亮着!当我把counter设为500 时,灯则是闪一下就灭了!
求教了 ! thx 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
eeleader
1楼-- · 2019-03-25 13:16
 精彩回答 2  元偷偷看……
walkerinsky
2楼-- · 2019-03-25 18:52
虽然楼主的代码风格不好,但是initial好象还是支持的。我觉得有个重要问题,楼主自己没有给出,就是my_clk时候频率多少,进行10000或者500分频,分到1k 20k的时钟,你觉得自己能看到LED的灯的情况和实际出来的时钟现象是一致的吗?
eeleader
3楼-- · 2019-03-25 23:52

如果楼上兄弟提出的这个问题也有, 哪我也无话可说了!

tx_xy
4楼-- · 2019-03-26 01:22
代码里面没有复位信号 ,所有寄存器,上电后状态不固定 。

另 initial 语句应该是不可综合滴 。。。
eeleader
5楼-- · 2019-03-26 05:30

大家继续分析他的问题, 入木三分, 让楼主提高,也为后来者提供帮助!

一周热门 更多>