Verilog语言入门学习(1)
一、数字逻辑回顾:
数字电路中:组合逻辑、时序逻辑
组合逻辑:
时序逻辑:电路逻辑输出值跟当前的输入值和电路的当前状态有关;如何保存当前状态:需要有储存功能的cell,比如:Flip-Flop,Latch
逻辑值:在数字电路中,1个bit有四种状态(四值逻辑)
数值的二进制表示:
N比特的无符号二进制取值范围:[0,2N-1]
有符号数的二进制表示:(原码,反码,补码)
数字电路系统一般使用补码表示数值,在数学上加减比较方便
数值的十六进制表示:二进制按照4BIT表示为十六进制
二、什么是Verilog?
Verilog是一种硬件描述语言:用程序设计语言来描述数字电路的功能,提高设计效率。早期数字电路设计是基于原理图输入的,类似电路板的PCB原理图设计
类似的硬件描述语言:
VHDL、SystemVerilog、Chisel
三、Verilog语法:
可综合描述:综合tool能够把verilog描述转化(compile)成基本的数字电路底层cell(与或非gate,寄存器等)的描述。
assign y = a & b;
不可综合描述:综合tool不能把verilog描述转换为基本的数字电路底层cell的描述。
$display(“hello word.\n”)
verilog设计仿真与实现:通过EDA tool,可以在计算机上对verilog设计的功能进行仿真。
常用的仿真工具(所有verilog描述):
1.Modelsim/Questasim(Mentor)
2.VCS(Synopsys)
3.NC-verilog(Candence)
数字电路设计方法学:
Bottom-Up:从底层cell开始,逐渐往上大家功能;
Top-Down:从底层结构,协议算法开始,向下逐步划分功能模块;再细分各功能模块的功能与IO
目前,基于verilog的数字电路谁通常使用Top-Down的设计方法。因为数字IP/IC的规模很大,需要先抽象思维再细化;verilog给数字电路的设计的抽象思维提供了一种设计开发语言,但是:数字设计和软件设计师不同的,需要Think in Hardware,写代码前需要先设计电路结构。
verilog的功能描述:
Top-Dowan描述数字电路功能:通过模块module的层次化设计,实现一个复杂的数字逻辑功能
四、verilog语法详细介绍
标识符:
用于定义code中的各种名字,比如:信号,module,define,parameter;
标识符由:字符,数字,下划线组成;
首字母必须是字母或者下划线;
标识符是区分大小写的;
信号名字建议与信号功能相对应:rstn,clk_core,mem_cs,mem_we,mem_dout,mem_din,mem_addr;
关键字:
常用关键字:
注释:
注释一行:以“ // ”开始,到行末;
注释多行:以“ /* ”开始,到“ */ ”为止的所有内容;
数据物理类型:
线性数据:用于连续赋值语句(assign)描述组合逻辑或者module间的信号连接线;
wire型:
wire a; //1bit位宽
wire [3:0] b; //4bit
wire [7:0] c; //8bit
assign a = 1'b0; //连续赋值语句
assign c = 8'h5a; //8bit的十六进制数
tri0/tri1 :带下拉、上拉电阻的线性,没有驱动时,会有默认的值0/1,一般综合代码不用;
tri0 s0;
tri1 [20:0] s1;
寄存器类型:
用于过程赋值语句(always、initial)描述组合逻辑或者时序逻辑(寄存器);
wire [3:0] din;
reg [3:0] d0; //4bit
reg d1;//1bit
initial begin //过程赋值语句
d1 = 0; #10;
d1 = 1;
end
always(posedge clk)begin //clk端一般就是寄存器
if(d1) d0 <= din;
end
Verilog语言入门学习(1)相关推荐
- Verilog语言入门学习(3)
verilog运算符 verilog HDL中运算符和优先级 一.算数运算符 verilog HDL中常用的运算符主要有五种,分别是加法(+).减法(-).乘法(*).除法(/).取模(%).这五种运 ...
- c语言10个人 三向成绩,C语言入门学习精华:这样学习C语言最有效
C语言入门学习精华:这样学习C语言最有效 c语言死了吗? 本材料描述了使用C语言的高级技能,并努力将您的C语言能力从"基本"提升到"高级".然而,学习态度比学习 ...
- c语言入门自学免费app,C语言入门学习最新版下载-C语言入门学习app手机版v1.0.2 安卓版-腾飞网...
C语言入门学习app手机版是一款c语言编程自学软件,零基础也可以学习,里面有海量教学视频,针对c语言不同程度的讲解都囊括其中.随时随地学习编程都可以,不用担心自己没有基础.还支持在手机上敲代码编程哦. ...
- 郑州计算机c语言培训机构,c语言入门学习选郑州哪家计算机专业学校
C语言是一门稀缺的贵族语言,会C语言的被IT界高看,C语言的地位很高,学C语言确实难,但是有正确的方法成为C程序员是非常有效的,会C语言相当于拥有了一定地位,未来非常有前景,那么如何入门C语言呢?选择 ...
- c语言入门自学手机版,c语言入门自学app下载-C语言入门学习 安卓版v1.0.2-PC6安卓网...
C语言入门学习app是一款C语言零基础自学软件.C语言入门自学app提供海量精品学习资源,从小白入门到基础进阶都有,帮你轻松学习编程. 软件介绍 C语言入门学习app是一款专业的编程入门学习App,致 ...
- c语言入门自学手机版,C语言入门学习app下载-C语言入门学习app最新版下载 V1.0.2-友情手机站...
C语言入门学习app是一款0基础自学软件,这里有着丰富C语音相关课程学习,大家在这里是可以便捷搜索查找,随时都是可以找到适合感兴趣课程学习,都是一些优质课程知识提供大家,学员在这里是可以高效学习,海恩 ...
- c语言入门自学手机版,C语言入门学习软件下载-C语言入门学习手机版v1.0.2 - 起点软件园...
C语言入门学习是一款最新推出上线于安卓手机平台的专业编程学习软件,C语言入门学习app收录了海量入门视频课程,清晰易懂的详细讲解专为刚入门学习C语言的小白量身打造,不同章节都有相应的习题,根据习题成绩 ...
- R语言入门学习——Rstudio的安装与学习
R语言入门学习--Rstudio的安装与学习 1.Rstudio下载 2.Rstudio安装 3.Rstudio功能和简单程序 1.Rstudio下载 下载地址:https://rstudio.com ...
- Verilog语言入门——边学边练
第一次写博客,记录北京交通大学李金城的Verilog语言入门 参考复制了一些代码,其他代码均为自敲 Verilog语言入门--边学边练 前言 一.基本逻辑门代码设计与仿真 1.1反相器 1.2与非门 ...
- lua语言入门学习(二)lua语言的特点及注意事项
lua语言入门学习 lua语言的特点及注意事项 文章目录 lua语言入门学习 lua语言的学习地址 一.lua语言特点 1.注释 2.全局变量和局部变量 3.lua数据类型 4.字符串类型 5.多变量 ...
最新文章
- 学习PCL库你应该知道的C++特性
- AI一分钟 | 搜狗王小川:今年重点战略是输入法升级和发展机器翻译;北京无人驾驶试验场下半年正式运营
- Java 并发/多线程教程(四)-并发模型
- 基于FPGA的SPI FLASH控制器设计
- (转)javascript关于运动的各种问题经典总结
- python 判断节假日_[宜配屋]听图阁
- 栈,堆,值类型,引用类型,装箱,拆箱 .NET中 6个重要的概念
- linux udp 端口 抓包,tcpdump之UDP抓包
- 关于性格内向者的10个误解,献给奋战在一线的程序员
- centos是什么操作系统
- 佛,我心中的一朵莲花
- 减肥日志:100天40斤!!
- 各种机械键盘轴的区别,到底什么轴好
- 检测网络是否正常(ping,Telnet,tracert以及tnsping)
- 深圳外包及不考虑公司名单
- Python学习笔记(一)——Anaconda安装与配置(windows)
- Android 查看内存命令总结
- Win7系统卸载McAfee杀毒软件
- 运动控制器激光振镜控制
- python和matlab矩阵运算效率_MATLAB矩阵乘法性能比NumPy快5倍
热门文章
- centos7系统greenplum5.7集群详细安装配置文档-亲试通过
- ubuntu14.04 clementine音乐播放器无法播放ape格式解决方法
- (软考)图示法求候选键,及快捷求候选键,和数据库模式分解的表格法,及无损连接分解的快捷判别方法
- 基于hi3531压缩YUV-D1 H264(sample_enc例子改写)
- 某些型号的Comba和D-Link路由器存在管理员密码泄露漏洞
- 查看 java opts,如何在命令提示符中检查JAVA_OPTS值?
- 2021-07-21
- 一年级下册计算机教学计划,最新人教版一年级下册教学计划
- 亚马逊关键词应该如何选择?
- 如何选择产品关键词?