查看: 888|回复: 0

FPGA入门篇———Verilog计数器

[复制链接]
  • TA的每日心情
    开心
    2023-1-4 10:25
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2022-6-13 11:57:24 | 显示全部楼层 |阅读模式
    分享到:
    一.Verilog介绍
    Verilog HDL是一种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。Verilog HDL和VHDL是世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由Gateway Design Automation公司(该公司于1989年被Cadence公司收购)开发。两种HDL均为IEEE标准。

    二.Verilog计数器




    我们用 明德杨《至简设计法》--八部计数法来分析此题

    1). 明确目标:找输入输出并绘画I/O表
    ① 输入输出:
    1.模块时钟,D触发器中clk和rst_n为输入,位宽默认为1。
    2.题目给出输出为dout,位宽和时钟默认为1。
    ② I/O表:


    2). 画波形图
    ① 根据题目分析绘画波形图
    先看第一个阶段a部分:




    完成第一阶段后继续后面的内容:




    3). 计数框架
    ① 计数结构:
    以该题为例,题目要求多次收到en的信号,多个阶段的信号处理,所以
    我们可以优先考虑使用两个计数器,命名为cnt_0和cnt_1,分别来记录en=1
    后dout处于哪个阶段。




    4). 加一结束条件



    u cnt_0加1条件:收到en的信号后,利用变量flag_add辅助来持续周期,所以cnt_0=flag_add为
    加1条件。
    u cnt_1加1条件:当cnt_0完成一个阶段计数后,每收到en的信号,cnt_1就开始计数,完成一个阶段cnt_1加1,所以 cnt_1=end_cnt_0 为加1条件。


    5). 定义特殊点



    a 整个功能的开始点:en;
    b cnt_0的结束条件:cnt _0= x-1,定为end_cnt_0;
    c cnt_1的结束条件:cnt_1= 3-1,定为end_cnt_1;
    d dout变高条件:en==1。

    6). 完整性检查
    保证每个信号的变化条件已经清晰明确,并且变化条件要用信号表示。
    a. cnt_0
    cnt_0 cnt_0初始值:0;
    cnt_0的加1条件:flag_add==1;
    cnt_0的结束条件:计数至cnt==x-1;
    b. cnt_1
    cnt_1初始值:0;
    cnt_1的加1条件:cnt_1=end_cnt_1;
    cnt_1的结束条件:cnt_3-1;
    c. dout
    dout由0→1:en = 1;
    dout由1→0:end_cnt_0;
    d. flag_add
    flag_add由0→1:en==1
    flag_add由1→0:end_cnt_1
    e. x与z
    cnt_1 == 0: cnt_1 == 1:
    x = 5; x = 7;
    z = 1; z = 2;
    cnt_1 == 2;
    x = 2;
    z = 3;
    x为时钟周期,z是数值
    7). 计数器代码


    Ø 计数器框架、加1条件
    和结束条件代码

    8). 功能代码



    Ø 按照完整性检查,写
    出计数器之外的代码。

    最后仿真检测一下代码:

    第一次接收到en信号


    第二次接收到en信号



    想领取FPGA学习资料进群交流可加易老师微信:13112063618

    温馨提示:明德扬除了培训学习还有元器件一站式配单业务,人工服务的模式采购,采购客服人员联系方式:明德扬元器件一站式配单服务咨询:易老师
    明德扬科技教育

    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-5-20 20:00 , Processed in 0.109939 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.