打印
[FPGA]

想要实现通过输入信号控制任意分频,不知道是哪里问题?

[复制链接]
417|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hj19910310|  楼主 | 2019-8-26 18:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
代码如下:clk为系统时钟20MHz,rst_n为系统复位,clk_num为输入控制输出时钟频率的输入变量,clk_out为输出时钟。
不知道是思路问题还是代码问题,始终不正确

//系统时钟20MHz,单位时间为50ns

`timescale 1ns / 1ps

module max7418
(
        input       clk,
        input       rst_n,
        input       clk_num,
        output reg  clk_out
);

reg[24:0] cnt;
reg[24:0] clk_cnt;

always @(clk_num)        
begin
        if(!rst_n)
        begin
                clk_cnt <= 25'd0;
        end
        else
        begin
                clk_cnt <= 20_000_000 / clk_num;
                clk_cnt <= clk_cnt - 1;
        end
end


always @(posedge clk or negedge rst_n)        
begin
        if(!rst_n)
        begin
                cnt <= 25'd0;
        end
        else if (cnt == clk_cnt)
        begin
                cnt <= 25'd0;
        end
        else
        begin
                cnt <= cnt + 1'd1;
        end
end

always @(posedge clk or negedge rst_n)        
begin
        if(!rst_n)
        begin
                clk_out <= 0;
        end
        else if (cnt == clk_cnt)
        begin
                clk_out <= !clk_out;
        end
end

endmodule

使用特权

评论回复

相关帖子

沙发
hj19910310|  楼主 | 2019-8-26 18:47 | 只看该作者
尝试了parameter传递参数,还是不行,在实例化的时候,它只能接受整形常量数值,但实际上传递的应该是一个形式参数,。。。
有点懵逼了

使用特权

评论回复
板凳
爱上0在路上| | 2019-8-28 09:19 | 只看该作者
第一个进程就错了,clk_cnt赋值了两次

使用特权

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

本版积分规则

个人签名:我相信,只要坚持就会有成绩!

3

主题

8

帖子

0

粉丝