关于初次使用Verilog HDL语言需要懂的基本语法

1.常量

数字表达式全面的描述方式为:<位宽><进制><数字>

8’b10101100,表示位宽为8的二进制数。

2.参数

Parameter 参数名=表达式;

3.变量

reg型:通过赋值语句来改变寄存器存储值,相当于改变触发器存储的值。reg型数据常用来表示“always”模块内的指定信号,常代表触发器。通常,在设计的过程中与always模块结合使用,通过使用行为描述语句来表达逻辑关系。

注意:在“always”模块内被赋值的每一个信号都必须定义成reg型变量。

reg[3:0] regb; 定义了一个位宽为4名为regb的reg型变量。

wire型:常用来表示用以assign关键字指定的组合逻辑信号,Verilog程序模块中输入,输出信号类型默认为wire型。

wire[7:0] b; 表示定义了一个8位的wire型数据。

4.Verilog赋值方式

非阻塞式赋值方式为: b<=a;常用于编写综合的时序逻辑模块。

阻塞式赋值方式:b=a。

怎样理解呢?非阻塞式赋值就像D触发器那样,需要等到下一次always里面的敏感事件列表条件满足,再次执行always块程序的时候赋值才能成功。阻塞式赋值方式就像两个不同的信号量用同一根导线连接起来,赋值语句执行后,相应的值立刻发生变化,赋值成功。

5位拼接运算符

使用方法如下:

{ 信号1的某几位,信号2的某几位,......,信号n的某几位},此运算符可以把两个或多个信号的某些位拼接起来进行运算操作。

关于初次使用Verilog HDL语言需要懂的基本语法的更多相关文章

  1. 使用Verilog HDL语言注意事项

    1.wire和reg区别,输入输出是wire型,表示硬件线的连接,要在always模块里被赋值需要中间reg型变量,两者通过: assign 输入/输出=reg型中间变量 2.case的default ...

  2. Verilog HDL语言实现的单周期CPU设计(全部代码及其注释)

    写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...

  3. 浅谈Verilog HDL代码编写风格

    消失了好久,没有写文章,也没有做笔记,因为最近再赶一个比赛,时间很紧,昨天周六终于结束了,所以趁着周末这会儿有时间,写点东西,记录下来.首先我学习FPGA才一年多,我知道自己没有资格谈论一些比较深层次 ...

  4. 如何高效的编写Verilog HDL——进阶版

    博主之前写过一篇文章来谈论如何高效的编写Verlog HDL——菜鸟版,在其中主要强调了使用Notepad++来编写Verilog HDL语言的便捷性,为什么说是菜鸟版呢,因为对于新手来说,在还没有熟 ...

  5. 【Verilog HDL】赋值语句之阻塞赋值方式与非阻塞赋值方式

    刚开始接触Verilog HDL语言时,这种硬件描述语言有一点与软件的程序设计语言直观上的最大区别大概就是这个赋值语句了(这里只是强调直观上的最大区别,事实上的最大区别并非如此). Verilog H ...

  6. 自己动手写处理器之第二阶段(2)——Verilog HDL简单介绍

    将陆续上传本人写的新书<自己动手写处理器>(尚未出版),今天是第六篇.我尽量每周四篇 2.3 Verilog HDL简单介绍 本书实现的OpenMIPS处理器是使用Verilog HDL编 ...

  7. Verilog HDL 使用规范(一)

    本博文参考:<大规模逻辑设计指导书>,对于写出规范的代码,培养良好的代码风格颇有裨益. wire and register 一个reg变量只能在一个always语句中赋值: 这个说明至关重 ...

  8. 【黑金教程笔记之003】【建模篇】akuei2的Verilog hdl心路

    Verilog hdl不是“编程”是“建模” Verilog hdl语言是一种富有“形状”的语言. 如果着手以“建模”去理解Verilog hdl语言,以“形状”去完成Verilog hdl语言的设计 ...

  9. Verilog HDL与C语言的比较

    Verilog HDL与C语言的比较 Verilog HDL是在C语言的基础上发展起来的,因而它保留了C语言所独有的结构特点.   为便于对Verilog HDL有个大致的认识,在这里将它与C语言的异 ...

随机推荐

  1. 向JS对象添加和删除事件

    this.removeEventListener = function (obj, ename, func) { var store = obj[this.addEventListener.pre + ...

  2. 读《程序员的SQL金典》[3]--表连接、子查询

    一.表连接-JOIN 1. 自连接实例 查询类型相同的订单信息. SELECT O1 .*,O2.* FROM T_Order O1 JOIN T_Order O2 ON O1 .FTypeId= O ...

  3. zz转码问题

    http://blog.csdn.net/tge7618291/article/details/7599902 主原创文章,未经博主允许不得转载.                     <&l ...

  4. 【经典算法】——KMP,深入讲解next数组的求解

    我们在一个母字符串中查找一个子字符串有很多方法.KMP是一种最常见的改进算法,它可以在匹配过程中失配的情况下,有效地多往后面跳几个字符,加快匹配速度. 当然我们可以看到这个算法针对的是子串有对称属性, ...

  5. 001 今天开始系统学习C#

    2016-01-16 之前只是大概了解过c#语言,感觉掌握不牢靠.现在开始系统学习C#.现以该博客作为学习笔记,方便后续查看.C# 目标:系统掌握c#知识 时间:30天 范围:C#基础,Winform ...

  6. Objective-C学习笔记-第一天(1)

    .h头文件,用于声明一些公开的属性.方法.头文件一般不会放太多的东西,没必要暴露太多接口,私有和封装. .m主文件,用于实现.h文件中的方法,以及一些其它的方法. -(返回值)方法名参数1名称:(参数 ...

  7. ie 11 cookie 的值为空

    昨天碰到ie 11上运行的程序时  登录老是登录不上去 一直是登录界面 最后检查半天发现时因为 权限验证登录时 获取cookie里的用户信息时 一直为空 便在网上查询资料  发现是因为ie11 里貌似 ...

  8. php 无法连接mysql

    sql_connect,sqli_connect, 或new sqli() 无法建立mysql连接 1. php.ini 中 ; extension=php_mysql.dll 和 ; extensi ...

  9. good books

  10. SDK、MFC、QT界面生成的机制

    1.SDK进行界面设计的机制 (1)设计窗口类 (2)注册窗口类 (3)创建窗口 (4)显示及更新窗口 (5)消息循环,操作系统接收到应用程序的窗口消息,将消息投递到队列中,通过GetMessage( ...