FPGA基础(verilog语言)——语法篇(续1)
上一篇文章提到了FPGA中一个模块基本结构,这篇文章开始介绍语法。
首先,我们学习一门语言都要从这门语言的单词学起,所以verilog中的关键词都有哪些呢?看下面:
A:always、assign
B:begin、
C:case(包含casex、casez)
D:deassign、default、defparam(参数声明)、disable(禁止)
E:event(事件)、edge、else、end、endcase、endfunction、endprimitive、endmodule、endspecify、endtable、endtask
F:for、force(强迫赋值)、forever(无限循环)、fork(并发语句块引导)、function(函数)
G:gate(门,包含and、nand、or、nor、xor、xnor、buf、not、bufif0、bufif1、nofif0、nofif1、nmos、pmos、rnmos、rpmos、cmos、rcmos、tran、rtran、tranif0、tranif1、rtranif0、rtranif1、pullup、pulldowm)
H:highz0、highz1
I:if、ifnone、initial、inout、input、integer
J:join
L:large
M:module、macromokule、medium
N:negedge
P:parameter(参数)
R:reg、repeat(重复执行)、real、realtime、release
S:specparam、scalared、small、specify、strong0、strong1、supply0、supply1
T:tri、table、task、time、triand、trior、trireg、tri0、tri1
V:vectored
W:wait、wand、weak0、weak1、while、wire、wor
这是我总结的,不一定全面
关键词虽然学完了,但是我们自己定义端口或者变量的时候还需要用到标识符:
标识符规则:1.标识符可由字母、数字、下划线(_)、美元($)构成、第一个字符必须是字母或下划线
2.verilog中变量名区别大小写,对大小写敏感
3.在verilog文件中一个名字只能有一个意义
4.扩展标识符用“\”引出,用空格、制表、回车、换行键结束,例如:abcde与 \abcde是相同的
在编程的时候知道这些还是不够的,因为,我们还要知道一些运算符
运算符:单目运算符:
+ - 正负号
! 逻辑非
~ 按位取反
& ~& | ~| 缩位运算符
二目运算符:
+ - * / 算术运算符
% 取模运算符
> >= < <= 关系运算符
&& || 逻辑运算符
= == != 等式运算符
& | ^ ^~ 逐位运算符
<< >> 移位运算符
其他运算符:
A ?B :C 条件运算符
{A,B,C} 位拼接运算符
{N{A}} 重复运算符
这次就写这么多了,词写完了,下次写句法哦!
FPGA基础(verilog语言)——语法篇(续1)的更多相关文章
- 深入研究C语言 第一篇(续)
没有读过第一篇的读者,可以点击这里,阅读深入研究C语言的第一篇. 问题一:如何打印变量的地址? 我们用取地址符&,可以取到变量的偏移地址,用DS可以取到变量的段地址. 1.全局变量: 我们看到 ...
- 深入研究C语言 第二篇(续)
1. 关于如下的程序,关于结构体的拷贝,拷贝是拷贝到内存中的什么地方? 我们进入debug进行反汇编,单步等操作跟踪查看.发现: 在main中,我们看到call 0266应该对应的是转跳到func处执 ...
- FPGA基础(verilog语言)——语法篇
verilog语言简介 verilog语言是一种语法类似于c的语言,但是与c语言也有不同之处,比如: 1.verilog语言是并行的,每个always块都是同时执行,而c语言是顺序执行的 2.veri ...
- Xamarin XAML语言教程基础语法篇大学霸
Xamarin XAML语言教程基础语法篇大学霸 前 言 Xamarin是一个跨平台开发框架.它可以用来开发iOS.Android.Windows Phone和Mac的应用程序.使用Xamarin框 ...
- FPGA基础入门篇(四) 边沿检测电路
FPGA基础入门篇(四)--边沿检测电路 一.边沿检测 边沿检测,就是检测输入信号,或者FPGA内部逻辑信号的跳变,即上升沿或者下降沿的检测.在检测到所需要的边沿后产生一个高电平的脉冲.这在FPGA电 ...
- Scala快速入门 - 基础语法篇
本篇文章首发于头条号Scala快速入门 - 基础语法篇,欢迎关注我的头条号和微信公众号"大数据技术和人工智能"(微信搜索bigdata_ai_tech)获取更多干货,也欢迎关注我的 ...
- R语言语法基础二
R语言语法基础二 重塑数据 增加行和列 # 创建向量 city = c("Tampa","Seattle","Hartford"," ...
- R语言语法基础一
R语言语法基础一 Hello world #这里是注释 myString = "hello world" print(myString) [1] "hello world ...
- GO语言基础(结构+语法+类型+变量)
GO语言基础(结构+语法+类型+变量) Go语言结构 Go语言语法 Go语言类型 Go语言变量 Go 语言结构 Go 语言的基础组成有以下几个部分: 包声明 引入包 函数 变量 语句 &a ...
- C语言函数篇(二)函数参数基础设计
形参实现一种数据传入的接口 ,由 实参 拷贝给 形参. 拷贝!!!!!!!!!!! 例1: void func(int tmp){ //意图是实现传进来的参数 +1 tmp++; } int mian ...
随机推荐
- Mutex vs Semaphore vs Monitor vs SemaphoreSlim
C#开发者(面试者)都会遇到Mutex,Semaphore,Monitor,SemaphoreSlim这四个与锁相关的C#类型,本文期望以最简洁明了的方式阐述四种对象的区别. 线程安全 教条式理解 如 ...
- 6G仅仅是比5G多1G吗??
第六代移动通信系统(6th generation mobile networks,或6th generation wireless systems),简称6G,是指第六代移动通信技术,是5G系统后的延 ...
- vue路由安装
1.安装路由: vue ui cnpm install vue-router 2.使用,导入: 默认创建项目的时候就已经帮你写好了. import router from "vue-rout ...
- WebSocket原理及技术简介
摘要: WebSocket用于在Web浏览器和服务器之间进行任意的双向数据传输的一种技术.WebSocket协议基于TCP协议实现,包含初始的握手过程,以及后续的多次数据帧双向传输过程.其目的是在We ...
- C和C++中的引用传递
两种引用传递的定义方式 第一种 #include<stdio.h> void changeValue(int *a); int main(){ int a =1; changeValue( ...
- 关于ArcGIS的OBJECTID生成策略拙见
目录 诉求SDEOBJECTIDArcMap编辑重置OBJECTID 诉求 非GIS专业的人员可能很难理解ArcSDE中的表OBJECTID的重要性,要么总想着自己动手去维护,要么就想直接忽略它,导致 ...
- Java8系列 (六) 新的日期和时间API
概述 在Java8之前, 我们一般都是使用 SimpleDateFormat 来解析和格式化日期时间, 但它是线程不安全的. @Test public void test() { SimpleDate ...
- TOMACT 各个版本集合
http://archive.apache.org/dist/tomcat/ 再点击 bin 目录,找到想下载的即可
- Java12 Collectors.teeing 你需要了解一下
前言 在 Java 12 里面有个非常好用但在官方 JEP 没有公布的功能,因为它只是 Collector 中的一个小改动,它的作用是 merge 两个 collector 的结果,这句话显得很抽象, ...
- Android 开发中是否应该使用枚举?
本文由咕咚发布在个人博客,转载请注明出处. 本文永久地址:https://gudong.name/2019/11/04/use-enum-or-not.html 在 Android 官方文档推出性能优 ...