打印

新手关于分频

[复制链接]
1265|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 两个量始终没数,新手求解答,谢谢!

QQ图片20130814155939.jpg (61.42 KB )

QQ图片20130814155939.jpg

相关帖子

沙发
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 | 只看该作者
是,你这是同步复位,复位时间都没有一个时钟,没起作用

使用特权

评论回复
5
xins_n|  楼主 | 2013-8-14 17:08 | 只看该作者
Backkom80 发表于 2013-8-14 16:45
是,你这是同步复位,复位时间都没有一个时钟,没起作用

:lol   谢谢

使用特权

评论回复
6
xins_n|  楼主 | 2013-8-15 08:55 | 只看该作者
Backkom80 发表于 2013-8-14 16:45
是,你这是同步复位,复位时间都没有一个时钟,没起作用

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

QQ.jpg (64.44 KB )

QQ.jpg

使用特权

评论回复
7
xins_n|  楼主 | 2013-8-15 09:16 | 只看该作者
Backkom80 发表于 2013-8-14 16:45
是,你这是同步复位,复位时间都没有一个时钟,没起作用

知道了

使用特权

评论回复
8
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驱动的    初值都没有附上,复位给的时间也足够长了,
不知道还有什么要注意的,大虾给点指点,谢谢!

001.JPG (180.86 KB )

001.JPG

使用特权

评论回复
9
xins_n|  楼主 | 2013-8-27 13:23 | 只看该作者
头像  :victory:

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

61

帖子

1

粉丝