• verilog状态机控制led闪烁


    一、功能

    用三段式状态机控制LED,按键,按下是0.5s闪烁一次,再次按按键A是1s闪烁。

    二、状态机转移图

     

    三、连线

     led_state描述状态机,key_test检测按键信号,前者作为顶层调用后者。

     四、描述状态机要注意的问题

    此处利用三段式描述。参考如下:

    https://blog.csdn.net/scottly1/article/details/48802921

    https://www.cnblogs.com/flyuea/p/8421939.html

     1、要注意第二段组合逻辑,要用阻塞赋值。描述状态转移时的if一定要写完全。不然就会出错。WARNING什么产生了latch。一定要避免。

     2、第三段时序逻辑没有加那个if里面的rst_n复位,在modelsim里面看不出问题,但是烧到板子上就不对了。要注意不能掉了。

    计数:

    3、模块实例化的端口问题

    要注意,调用子模块时,输出端口只能用wire类型的变量进行映射,用reg型就会报错。参考如下:

    https://wenku.baidu.com/view/5fb13873ba1aa8114431d9e6.html

    https://zhidao.baidu.com/question/1447007111844219620.html

    比如我这个例子中,led_state里面接受key_tes输出端口flag_key的变量key_flag就只能是wire型,就不能对其直接赋值,这个矛盾也弄了好久。

     

    五、弄了两整天终于调成功了,,,

     
  • 相关阅读:
    API开放平台基于accessToken实现
    web记住我功能的实现
    SpringBoot整合AbstractRoutingDataSource实现读写分离
    手写简化版SpringBoot
    mybatisGenerator
    C程序编译执行过程
    用WaveX实现音频文件的录音
    java学习--数组
    Linux学习笔记--vim
    PHP常量总结
  • 原文地址:https://www.cnblogs.com/zlll/p/9610827.html
Copyright © 2020-2023  润新知