Verilog基础语法

Mixed Model(混合设计模型)

System Tasks(系统任务,系统函数)

  • 用随机数驱动验证
fd = $fopen("文件路径及文件名")

// 将含有参数的字符串写到fd打开的文件中
$fdisplay(fd,"xxx",arg1,arg2,arg3...) // 关闭文件
$fclose(fd)
$random 返回32bit 有符号随机整数

// 范围 -(b-1) - (b-1)
num = $random % b // 范围:0 - (b-1)
// num = {$random} % b;

格式化输出

parameter

  • 参数化定义,比如设计一个四位的DFF和2位的DFF,位宽不同,可以将位宽写成参数形式,在下次进行设计的时候只需要修改位宽就可以了。



  • 使用参数化设计



Testbench

FFs & latch











  • DFF和Latch建模区别
always @(posedge)  // 参数列表有上升沿
if(rst_n)
Q <= 0;
else
Q <= D; always @(rst_n,Q,d,g) // 参数列表没有上升沿
if(rst_n)
Q <= 0;
else if(g) // if g == 1的时候数据通过,g != 1的时候数据锁存,就形成了锁存器
Q <= d;

  • 同步复位信号,同步在Clk的上升沿上

  • 移位寄存器

upper counter with load value

FSM(有限状态机)





  • 有限状态机一般写为三段式







Blocking and Non-Blocking Assignments(阻塞赋值和非阻塞赋值)



05-Verilog基础语法_4的更多相关文章

  1. Verilog基础语法总结

    去年小学期写的,push到博客上好了 Verilog 的基本声明类型 wire w1; // 线路类型 reg [-3:4] r1; // 八位寄存器 integer mem[0:2047]; // ...

  2. Verilog HDL基础语法讲解之模块代码基本结构

    Verilog HDL基础语法讲解之模块代码基本结构   本章主要讲解Verilog基础语法的内容,文章以一个最简单的例子"二选一多路器"来引入一个最简单的Verilog设计文件的 ...

  3. 073 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 05 综合案例-数组移位-主方法功能1和2的实现

    073 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 05 综合案例-数组移位-主方法功能1和2的实现 本文知识点:综合案例-数组移位-主方法功能1和2的实现 说 ...

  4. 067 01 Android 零基础入门 01 Java基础语法 08 Java方法 05 数组作为方法参数

    067 01 Android 零基础入门 01 Java基础语法 08 Java方法 05 数组作为方法参数 本文知识点:数组作为方法参数 说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进 ...

  5. 058 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 05 案例:求数组元素的最大值

    058 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 05 案例:求数组元素的最大值 本文知识点:求数组元素的最大值 案例:求数组元素的最大值 程序代码及其执行过程 ...

  6. 053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结

    053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结 本文知识点: 流程控制知识总结 流程控制知识总结 选择结构语句 循环结构语句 ...

  7. 052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试——debug2 多断点调试程序

    052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试--debug2 多断点调试程序 本文知识点: Eclipse下程序调 ...

  8. 051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试——debug入门1

    051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试--debug入门1 本文知识点: 程序调试--debug入门1 程序 ...

  9. 050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句

    050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句 本文知识点:continue语句 continue语句 continue ...

  10. 049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句

    049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句 本文知识点:break语句 break语句 break语句前情回顾 1.swi ...

随机推荐

  1. 一文掌握 Kubernetes 证书

    如果你正在自己的环境中运行 Kubernetes,那么了解证书的工作原理以及如何管理它们以确保集群的安全性和完整性至关重要.在本文中,我们将解释什么是 Kubernetes 证书.其重要性,以及如何检 ...

  2. storeToRefs()的作用和使用

    store 是一个用 reactive 包装的对象,这意味着不需要在 getters 后面写 .value,就像 setup 中的 props 一样,如果你写了,我们也不能解构它: <scrip ...

  3. 华企盾DSC导入离线客户端没有获取到信息

    安装客户端的时候禁用了网卡,导致导入离线客户端获取不到信息. 解决方法: 1.启用网卡,重启电脑 2.启用网卡,重装客户端

  4. 华企盾DSC防泄密软件:svn、git更新后有感叹号常见处理方法

    1.查看客户端日志检查TSVNcache.exe进程是否是legal:1 2.TSVNcache.exe进程是否允许访问未配置加密进程的后缀 3.svn服务器不是加密进程也未装网络驱动,或者加密类型未 ...

  5. 开源数据血缘和元数据管理框架DataHub的血缘摄取 V0.12.1版本

    DataHUb的安装很简单:你有绿色上网就soeasy 前置条件,你已经运行好DataHub整个Docker-Compse服务 打开地址:http://host:9002/ 输入账号DataHub 密 ...

  6. Python——第三章:函数的返回值

    函数的返回值: 函数执行之后. 会给调用方一个结果. 这个结果就是返回值 关于return:        函数只要执行到了return. 函数就会立即停止并返回内容. 函数内的return的后续的代 ...

  7. zabbix常用监控项

    https://blog.csdn.net/xkjcf/article/details/78559273?locationNum=10&fps=1 agent.ping  #agent是否在线 ...

  8. Java 如何在PPT中设置形状组合、取消组合、编辑组合形状

    PPT中支持插入多达9种不同类型的形状,每种类型下又包含数十种形状样式.针对如此多种类型的形状,为页面元素设计需要.方便形状操作管理的目的,可通过形状"组合"的方式来固定多个形状的 ...

  9. 一文让你彻底掌握ThreadLocal

    本文分享自华为云社区<[高并发]一文带你彻底搞懂ThreadLocal>,作者: 冰 河. 我们都知道,在多线程环境下访问同一个共享变量,可能会出现线程安全的问题,为了保证线程安全,我们往 ...

  10. vue3溢出文本tooltip或title展示解决方案—如何获取文本宽度

    vue3溢出文本tooltip或title展示解决方案-如何获取文本宽度 Author:zhoulujun Date:2023-03-06 Hits:5 解决文本溢出,鼠标悬浮展示tooltips,要 ...