• Verilog有什么奇技淫巧?


    奇技淫巧我不会,但我这有一些我工作后才学到的一些Verilog写法。数字电路设计主要就是,选择器、全加器、比较器,几个常用逻辑门,再加个D触发器,电路基本都能实现了。写代码其实是个体力活,电路和时序图应该在设计阶段就已经到了你的文档里或在脑子里没来得及写出来。组合逻辑+时序逻辑

    assign或always@(*)always@(posedge clk or negedge rst_n)

    有人说掌握Verilog 20%的语法就可以描述 90%以上的电路,说的对。

    casez

     这样的case有优先级选择,可综合,实际项目可以使用,不过我个人习惯上还是,有优先用if-else,没有直接用case。synopsys的EDA工具有关于full case与parallel case可以查看下面博客链接。https://blog.csdn.net/li_hu/article/details/10336511

     

    generate+for

    合理使用generate+for循环可以提高编码效率,同样的赋值语句需要赋值多次。

     同一个模块需要实例化多次:

     当然这样写debug会有一些困扰,Verdi会显示每一个generate块,选中对应的块,加进去的波形就会是对应的bit信号。

    generate if/case

    做一些通用IP的方法,随便举个例子比如要做一个选择器通用IP,支持二选一,三选一,四选一。

     generate case可以写更多的分支

    调用的时候只需要:

     

     

     

     

    布线太密的原因

    寄存器位宽太大。

    reg [10000-1:0] data;

     

     

     

  • 相关阅读:
    我的Java学习路线图
    请求重定向和请求转发的区别
    PHP代码审计学习-php安全基础
    无密码正向直连内网linux目标机复现
    Windows API 学习
    Http请求走私
    免杀手法-tcp套字节传递shellcode学习
    自启动模块构造-计划任务
    自启动模块构造-快速启动目录
    进程注入免杀学习
  • 原文地址:https://www.cnblogs.com/lelin/p/12772351.html
Copyright © 2020-2023  润新知