博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Verilog学习心得(一)
阅读量:5312 次
发布时间:2019-06-14

本文共 1489 字,大约阅读时间需要 4 分钟。

​          

     作为一个萌新,第一次让我学习Verilog我是拒绝的,连数电都没有学习过学Verilog真是一种折磨...不过自己选择的路不管怎么样都要走下去.

          硬件描述语言HDL(Hardware Description Language)是一种用文本形式描述数字电路和设计数字逻辑系统的语言.而Verilog HDL作为一种IEEE标准化的语言,正是我所学的对象.

          Verilog和C的风格很类似,反正比VHDL容易多了2333.

 

                      表1 C语言与Verilog相对应的关键字与控制结构表

C

Verilog

sub-function

module、function、task

if-then-else

if-then-else

case

case

{,}

begin、end

for

for

while

while

break

disable

define

define

int

int

printf

monitor、display、strobe

                      表2 C语言与Verilog对应运算符表

C

Verilog

功    能

*

*

/

/

+

+

-

-

%

%

取模

!

!

反逻辑

&&

&&

逻辑与

||

||

逻辑或

大于

小于

                      续表

C

Verilog

功    能

>=

>=

大于等于

<=

<=

小于等于

==

==

等于

!=

!=

不等于

位反相

&

&

按位逻辑与

|

|

按位逻辑或

^

^

按位逻辑异或

~^

~^

按位逻辑同或

>> 

>> 

右移

<< 

<< 

左移

?:

?:

相当于if-else

 

        实际上,Verilog语言与C语言最大的不同在于,C是顺序执行语句,Verilog HDL程序是并行执行语句.这应在设计时充分考虑.另外,Verilog语言可以和C语言搭配使用.

        Verilog程序的基本设计单元是模块(module)

        input 为输入端口,output为输出端口.

        每个Verilog程序包括四个部分:模块声明,I/O说明,信号类型说明和逻辑功能描述.

1. 模块声明:

        module 模块名(口1,口2,口3,.......);

        模块结束关键字:endmodule.

2. I/O说明(三种形式)

    (1) 输入口

        input 端口名1,端口名2,.....,端口名N;    //(共有N个输入口)

    (2)输出口

        output 端口名1,端口名2,.....,端口名N;    //(共有N个输出口)

    (3)输入输出口

        inout 端口名1,端口名2,.....,端口名N;    //(共有N个输入输出口)

    I/O说明也可以写在端口声明语句中.其格式如下:

    module module_name(input port1,input port2,...,output port1,output port2,...,inout port1,inout port2,...);

 3.信号类型说明

        默认为wire(网线)类型.

 4.逻辑功能描述

    (1)用assign声明例句,一般给wire类型赋值

    (2)用元件例化

    (3)用always块

        always块既可以描述组合逻辑,又可描述时序逻辑

    模块虽然是并行(同时)执行的,但是在always模块内部,逻辑是按照指定的顺序执行的. 

转载于:https://www.cnblogs.com/qrzbing/p/6940299.html

你可能感兴趣的文章
[简讯]phpMyAdmin项目已迁移至GitHub
查看>>
转载 python多重继承C3算法
查看>>
【题解】 bzoj1597: [Usaco2008 Mar]土地购买 (动态规划+斜率优化)
查看>>
css文本溢出显示省略号
查看>>
git安装和简单配置
查看>>
面向对象:反射,双下方法
查看>>
鼠标悬停提示文本消息最简单的做法
查看>>
Java面向对象重要关键字
查看>>
课后作业-阅读任务-阅读提问-2
查看>>
面向对象设计中private,public,protected的访问控制原则及静态代码块的初始化顺序...
查看>>
挑战常规--不要这样使用异常
查看>>
malloc函数的用法
查看>>
渐变的参数
查看>>
C#委托详解(3):委托的实现方式大全(续)
查看>>
RaceWeb终于可以在oracle中快速建表了
查看>>
jsp自定义标签
查看>>
多线程idhttp下载文件源代码(转)
查看>>
CSS中width和height与盒子模型的关系
查看>>
字符个数统计
查看>>
模板大集合
查看>>