新手关于分频

[复制链接]
1995|8
 楼主| xins_n 发表于 2013-8-14 16:01 | 显示全部楼层 |阅读模式
module clk16x
(
    clk16x,
    CLK_3M125,
    CLK_25M,
        FPGA_nRESET_reg1
);

output clk16x ;
input CLK_3M125 ;
input CLK_25M ;
input FPGA_nRESET_reg1 ;

reg [15:0] clk16x_cnt ;
reg [7:0] cnt;
reg clk16x ;

always @(posedge CLK_3M125)
        begin
                if(!FPGA_nRESET_reg1)
                        begin
                                clk16x_cnt  <= 16'h0000;       
                                cnt <= 8'h00;
                        end
                else
                        begin
                                if(cnt == 8'h7D)
                                        begin
                                                cnt <= 8'h00 ;
                                                if(clk16x_cnt == 16'h63)
                                                        begin                                       
                                                                clk16x_cnt  <= 16'h0000;                                               
                                                        end
                                                else
                                                        clk16x_cnt <= clk16x_cnt + 1;
                                        end
                                else
                                        cnt <= cnt + 1 ;
                        end
        end

always@(posedge CLK_25M)
        begin
                if(!FPGA_nRESET_reg1)
                        begin
                                clk16x <= 16'h0000 ;
                        end
                else if(!clk16x_cnt)
                        begin
                                clk16x <= ~clk16x ;
                        end
        end

代码有什么错误嘛?
仿真不出想要的结果呢?clk16x_cnt和cnt 两个量始终没数,新手求解答,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
Backkom80 发表于 2013-8-14 16:14 | 显示全部楼层
1,复位时间太短
2,仿真3M125时间太短
 楼主| xins_n 发表于 2013-8-14 16:40 | 显示全部楼层
Backkom80 发表于 2013-8-14 16:14
1,复位时间太短
2,仿真3M125时间太短

仿真时间我试过很长时间,还是没有。复位时间太短是什么意思,复位0的时间再长一点?
Backkom80 发表于 2013-8-14 16:45 | 显示全部楼层
是,你这是同步复位,复位时间都没有一个时钟,没起作用
 楼主| xins_n 发表于 2013-8-14 17:08 | 显示全部楼层
Backkom80 发表于 2013-8-14 16:45
是,你这是同步复位,复位时间都没有一个时钟,没起作用

:lol   谢谢
 楼主| xins_n 发表于 2013-8-15 08:55 | 显示全部楼层
Backkom80 发表于 2013-8-14 16:45
是,你这是同步复位,复位时间都没有一个时钟,没起作用

我的逻辑有什么问题嘛    麻烦给看一眼 谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| xins_n 发表于 2013-8-15 09:16 | 显示全部楼层
Backkom80 发表于 2013-8-14 16:45
是,你这是同步复位,复位时间都没有一个时钟,没起作用

知道了
 楼主| xins_n 发表于 2013-8-15 16:54 | 显示全部楼层
Backkom80 发表于 2013-8-14 16:45
是,你这是同步复位,复位时间都没有一个时钟,没起作用

同样的问题,再问一下,clk16x 8MS   
always@(posedge clk16x or posedge FPGA_nRESET_reg1)        begin
                if(!FPGA_nRESET_reg1)
                        begin
                                clkdiv <= 4'b0000 ;
                        end
                else if(clk1x_enable)
                        begin
                                clkdiv <= clkdiv + 1 ;
                        end
        end

assign clk1x = clkdiv[3] ;

不论是clk1x驱动还是clk16x驱动的    初值都没有附上,复位给的时间也足够长了,
不知道还有什么要注意的,大虾给点指点,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| xins_n 发表于 2013-8-27 13:23 | 显示全部楼层
头像  :victory:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

61

帖子

1

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