FPGA学习笔记之——设计方法(1)计数器架构法

1.Verilog HDL模块结构

        模块是Verilog的基本描述单位,用于描述每个设计的功能和结构,以及与其他模块通信的外部接口。模块有五个主要部分:端口定义、参数定义(可选)、I/O说明、内部信号说明、功能定义。

一般语法结构如下:

module module_name(
        clk,    //端口1,时钟
        rst_n,  //端口2,复位                            端口定义
        dout    //其他信号
);

parameter DATA_W=8;                                    //参数定义

input clk;    //    输入信号定义
input rst_n;  //    输入信号定义                         I/O说明
output[DATA_W-1:0] dout;    //输出信号定义

reg[DATA_W-1:0] dou;    //信号类型(reg、wire)定义
reg signal1;    //信号类型(reg、wire)定义               内部信号说明

//功能描述部分
//组合逻辑写法
always(*)begin
end
                                                        //功能定义
//时序逻辑写法
always@(posedge clk or negedge rst_n)begin
    if(rst_n==1'b0)begin
    end
    else begin
    end

endmodule

2.计数器架构八步法

2.1计数器规则

计数器规则1:计数器逐一考虑三要素——初值、加一条件和结束值;

计数器规则2:计数器初值必须为0;

计数器规则3:使用某一计数值,必须同时满足加1条件;

计数器规则4:结束条件必须同时满足加1条件,且结束值必须是x-1的模式;

计数器规则5:当取某个数时,assign的形式必须为:(加一条件)&&(cnt==计数值-1);

计数器规则6:结束后必须回到0;

计数器规则7:若要限定范围,则推荐使用">="和"<"两种符号;

计数器规则8:设计步骤是,先写计数器的always段,条件用名字代替,然后用assign写出加1条件;最后用assign写出结束条件;

计数器规则9:加1条件必须与计数器严格对齐,其他信号一律向计数器对齐;

计数器规则10:命名规则必须符合规范,比如:add_cnt表示加1条件;end_cnt表示结束条件;

计数器规则11:减1计数器暂时不用。

3.计数器八步法

第一步:功能明确

第二步:功能波形

第三步:计数结构

第四步:加1和结束条件

第五步:定义特殊点

第六步:完整性检查

第七步:计数器代码

第八步:功能代码

 


参考资料:

潘文明《至简设计法》

你可能感兴趣的:(FPGA,Verilog,FPGA学习笔记)