verilog基础--altera培训
参数化
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培训的更多相关文章
- 【第一季】CH06_FPGA设计Verilog基础(三)
[第一季]CH06_FPGA设计Verilog基础(三) 一个完整的设计,除了好的功能描述代码,对于程序的仿真验证是必不可少的.学会如何去验证自己所写的程序,即如何调试自己的程序是一件非常重要的事情. ...
- 【第一季】CH05_FPGA设计Verilog基础(二)Enter a post title
[第一季]CH05_FPGA设计Verilog基础(二) 5.1状态机设计 状态机是许多数字系统的核心部件,是一类重要的时序逻辑电路.通常包括三个部分:一是下一个状态的逻辑电路,二是存储状态机当前状态 ...
- 【第一季】CH04_FPGA设计Verilog基础(一)Enter a post title
[第一季]CH04_FPGA设计Verilog基础(一) 4.1 Verilog HDL 代码规范 u 项目构架设计 项目的构架用于团队的沟通,以及项目设计的全局把控 u 接口时序设计规范 模块和模块 ...
- Altera培训SignalTap II的使用--笔记
培训的内容有点多(啰嗦)(笔记为截图) 听课笔记:Altera培训SignalTap II的使用--笔记
- Verilog基础入门——Vivado工程创建(三)
Verilog基础入门--Vivado工程创建(三) Vivado是Verilog语言的一个集成环境,目前使用的版本为英文版,简单介绍一下在Vivado中创建一个工程并写入源文件 [配置] win10 ...
- System Verilog基础(二)
这一篇笔记主要记录Procedural,Process,Task and function,Interface和Communication中值得注意的点. 1.Procedural 写testbenc ...
- Verilog 基础回顾 (一)
Verilog 大小写敏感,且所有关键字都是小写 1 寄存器 register = storage,是数据存储单元的抽象,可视为能够存储数值的变量 (variable that can hold v ...
- System Verilog基础(一)
学习文本值和基本数据类型的笔记. 1.常量(Literal Value) 1.1.整型常量 例如:8‘b0 32'd0 '0 '1 'x 'z 省略位宽则意味着全位宽都被赋值. 例如: :] sig1 ...
- verilog 基础知识
mealy型状态机的下一状态和输出取决于当前状态和当前输入: moore型状态机的下一状态和输出取决于当前状态和当前输入,但其输出仅取决于现在的状态: 基本门原语的输出端口必须写在端口列表的前面,基本 ...
随机推荐
- JAVA发送HttpClient请求及接收请求结果过程
1.写一个HttpRequestUtils工具类,包括post请求和get请求 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...
- urllib 和urllib2 模块使用简例
一.最简单的使用 import urllib,urllib2 response = urllib2.urlopen("https://www.baidu.com") print r ...
- Winform 两个窗体通讯 一个窗体调用另一个窗体的方法
主要用到 委托 和 注册事件. 功能:点击form1的按钮,改变form2的label文本
- MySQL高级-索引
1.索引是什么 索引(Index)是帮助MySQL高效获取数据的数据结构.可以得到索引的本质:索引是数据结构. 可以理解为“排好序的快速查找数据结构” 在数据之外,数据库系统还维护着满足特定查找算法的 ...
- Matlab中插值函数汇总(上)
Matlab中插值函数汇总分上下两个部分,主要整合自matlabsky论坛dynamic发表于2009-2-21 21:53:26 的主题帖,以及豆丁网rickoon上传的教材第8章<插值,拟合 ...
- 第八章 高级搜索树 (xa1)红黑树:动机
- appium + python的环境配置_windows
appium是什么? 1,appium是开源的移动端自动化测试框架: 2,appium可以测试原生的.混合的.以及移动端的web项目: 3,appium可以测试ios,android应用(当然了,还有 ...
- iOS 各种方法
tableViewCell分割线左对齐: - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)c ...
- 8-导弹拦截一(n^2 and nlogn)
/*某国为了防御敌国的导弹袭击,研发出一套导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发拦截炮弹能够到达任意的高度,但是以后每一发拦截炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的多 ...
- mysql非主键自增长
mysql并非只有主键才能自增长,而是设为键的列就可以设置自增长. 如下: CREATE TABLE t1 ( id INT, col1 INT auto_increment NOT NULL ) ...