参数化

Localparam :与prameter一样,但不能被重写。

Verilog-2001 格式,

module mult_acc

#(parameter size = 8 )

(...);

数字格式:size、tick、letter和实际数字本身。

可以增加s,表示数字的符号或者2元互补。

Signed(‘s’or ‘S’) 16’shFA = -16’h06

负数:

-8‘d3

算术运算符:

逐位运算符:

Ain&cin = 3’b000

Reduction操作:将矢量缩短为一个比特

关系运算符:

如果任何一个运算符含有‘Z’或者‘X’,结果都是不可知的。

相等运算符:

Equality运算符只支持‘1’和‘0’,如果有Z或X,结果是不可知的。

Case Equality支持所有数值的对比。X和Z被认为完全不同的数值,必须完全匹配。通常用于仿真环境。

逻辑运算符:

支持一元或者二进制。

返回一个比特。

如果’Z’或者’X’出现在操作数中,将导致结果不可知。

移位运算符:

左移:空位填充。

右移:逻辑和算术无符号移位被0填充,算术有有符号移位以符号位填充。

条件运算符、连接运算符和复制运算符。

运算符优先级:

Always 和Initial 进程中有两类分配,Blocking和Nonblocking。

敏感度表

Always @( a,b,sel)

always@ *

*是对所有输入的简写。

case声明会把X和Z当做逻辑什,将基与条件列表中的X和Z对比。问号字符表示不重要。

casez声明把表达式或者条件中的所有Z值当作不重要。

casex把X和Z值当做不重要,面是不是逻辑值

casez(encoder )                      

'b1??? : high_lvl = 3;              

'b01?? : high_lvl = 2;              

'b001? : high_lev = 1;              

'b0001 : high_lel = 0;              

default : high_lev = ;              

endcase   
//if encoder = 4'b1z0x,then high_lvl = 3
casex(encoder )                      

'b1xxx: high_lvl = 3;               

'b01xx: high_lvl = 2;               

'b001x: high_lvl = 1;               

'b0001: high_lvl = 0;               

default: high_lvl = ;               

endcase                              

if encoder = 'b1z0x,then high_lvl = 3

For Loop

always @( inp,cnt)begin                      

    result[:] = ;                         

    result[:] = inp;                       

    if( cnt ==  )begin                      

        for( i = ; i <= ;i = i + ) begin  

            result[i] = result[i-];         

        end                                  

        result[:] = ;                     

    end                                      

end         

同步与异步

同步预设和清除

D触发器

时钟使能(Clock Enable)

两类子程序

函数

  由上面的逻辑左移只可以看出左移之后高位截取掉了。但上面的程序中r = r + b << i中,b是8位要进行先

移位再求和的操作,但乘法运算中高位是肯定没有截取的。所以个人认为在运算中,是以位宽最宽的为基础进行

运算的,也就是把8位扩展到了16位来运算。

任务

1) 函数返回分配给函数名称的数值,因此函数中的最后一次运算通常会把一个数值分配给函数名。

2) 函数只能调用其他函数,而任务可以调用函数或者任务

3) 函数是组合逻辑,而任务没有这一限制

4) 函数至少要有一路输入,任务不需要有任何输入,但是可以有

5) 函数必须恰好返回一个变量,任务可以返回0,或者使用输出变量的更多变量

6) 函数不能有in-out或者output变量

verilog基础--altera培训的更多相关文章

  1. 【第一季】CH06_FPGA设计Verilog基础(三)

    [第一季]CH06_FPGA设计Verilog基础(三) 一个完整的设计,除了好的功能描述代码,对于程序的仿真验证是必不可少的.学会如何去验证自己所写的程序,即如何调试自己的程序是一件非常重要的事情. ...

  2. 【第一季】CH05_FPGA设计Verilog基础(二)Enter a post title

    [第一季]CH05_FPGA设计Verilog基础(二) 5.1状态机设计 状态机是许多数字系统的核心部件,是一类重要的时序逻辑电路.通常包括三个部分:一是下一个状态的逻辑电路,二是存储状态机当前状态 ...

  3. 【第一季】CH04_FPGA设计Verilog基础(一)Enter a post title

    [第一季]CH04_FPGA设计Verilog基础(一) 4.1 Verilog HDL 代码规范 u 项目构架设计 项目的构架用于团队的沟通,以及项目设计的全局把控 u 接口时序设计规范 模块和模块 ...

  4. Altera培训SignalTap II的使用--笔记

    培训的内容有点多(啰嗦)(笔记为截图) 听课笔记:Altera培训SignalTap II的使用--笔记

  5. Verilog基础入门——Vivado工程创建(三)

    Verilog基础入门--Vivado工程创建(三) Vivado是Verilog语言的一个集成环境,目前使用的版本为英文版,简单介绍一下在Vivado中创建一个工程并写入源文件 [配置] win10 ...

  6. System Verilog基础(二)

    这一篇笔记主要记录Procedural,Process,Task and function,Interface和Communication中值得注意的点. 1.Procedural 写testbenc ...

  7. Verilog 基础回顾 (一)

    Verilog 大小写敏感,且所有关键字都是小写 1  寄存器 register = storage,是数据存储单元的抽象,可视为能够存储数值的变量 (variable that can hold v ...

  8. System Verilog基础(一)

    学习文本值和基本数据类型的笔记. 1.常量(Literal Value) 1.1.整型常量 例如:8‘b0 32'd0 '0 '1 'x 'z 省略位宽则意味着全位宽都被赋值. 例如: :] sig1 ...

  9. verilog 基础知识

    mealy型状态机的下一状态和输出取决于当前状态和当前输入: moore型状态机的下一状态和输出取决于当前状态和当前输入,但其输出仅取决于现在的状态: 基本门原语的输出端口必须写在端口列表的前面,基本 ...

随机推荐

  1. nginx-----惹不起的端口修改

    1,查看端口是否被占用 打开CMD,输入输入netstat -aon | findstr :80 出现: TCP    0.0.0.0:80             0.0.0.0:0        ...

  2. destoon 分页

    php: global $pagesize,$page; $pagesize = 10;//分页改为10条一页 $offset or $offset = ($page-1)*$pagesize; $t ...

  3. Null Hypothesis and Alternate Hypothesis

    1.Null Hypothesis Overview 零假设,H0是普遍接受的事实;这与备择假设(alternate hypothesis)正好相反.研究人员努力否定.驳斥零假设.研究人员提出了另一种 ...

  4. Gradle with Android

    [Gradle with Android] The Android Studio build system is based on Gradle, and the Android plugin for ...

  5. python,遍历文件的方法

    在做验证码识别时,识别时需要和库里的图片对比,找到最接近的那个图片,然后就行到了用与图片一致的字符命名,获取文件的名称,去将图片的名称读出来作为验证码.以下是我通过网上的资料总结的三种文件遍历的方式, ...

  6. dreamwave基础

    WEBcs架构需要在客户段安装程序, 需要安装程序, 工作量会比较大, 需要安装和维护, 比如以后系统升级, 会很麻烦. 优点是一些业务逻辑可以在客户端, 可以减少服务器的一些压力, 客户端的界面操作 ...

  7. php拓展安装

    Yaf安装配置:http://www.laruence.com/manual/yaf.install.html#yaf.installation.linux 下载Yaf的最新版本, 解压缩以后, 进入 ...

  8. 42. Trapping Rain Water (Array,stack; DP)

    Given n non-negative integers representing an elevation map where the width of each bar is 1, comput ...

  9. Pie(浮点数二分)

    Pie http://poj.org/problem?id=3122 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2454 ...

  10. 关于jni调用报UnsatisfiedLinkError的可能

    一.说明 最近在做一个项目,需要使用java去调本地动态连接库,之前做测试的时候直接用pojo进行测试,是能够正常调用的.后面项目需要将接口封装为REST api,所以在spring boot上面开发 ...