4 EDA实用技术与教程【基本语句1】
1.连续赋值语句
assign 目标变量名=驱动表达式
assign是连续赋值命名的关键词
以关键词assign引导的赋值语句属于并行赋值语句,即无论有多少条assign语句都是同时运行的,与先后次序无关,所以在assign引导的语句中不允许将不同驱动表达式同时赋值给同一变量。
assign的延时表述
assign [延时]目标变量名=驱动表达式
[]中的内容是可以选择使用的,如果选择加入延时内容则表示在任何时刻,当右侧驱动表达式中任一变量值发生变化时即计算出此表达式的值,而经过指定的延时时间后再被赋给左边目标变量
如
assign #6 R1=A&B;
该语句表示当A或B任意变量发生变化后,立刻算出变化后A&B的值,等待6个时间单元后才将运算的结果赋值给R1.这个延迟也称为惯性延迟
2.过程语句
always@(敏感信号或敏感信号列表或表达式)包括块语句的各类顺序语句
过程语句表述方式
1.用关键词or连接所有敏感信号
always@(a or b or c or d)
2.用逗号区分敏感信号
always@(a,b,c,d)
3.省略形式:目前的Verilog主流综合器都默认过程语句中敏感信号表中列全了所有应该被列入的信号,这都符合Verilog HDL-2001规范
always@*
3.块语句(顺序块语句)
begin[:块名]语句1;语句2;语句3;...语句n;
end
begin_end相当于一个括号,在此括号中的语句都被认定归属于同一操作模块。当只有一条语句时,Verilog 默认块语句被调用,无需显式定义块(当然定义了也不算错);若含多条语句,则必须使用begin_end将它们括起来。
4.case条件语句(顺序执行特征语句)
case(表达式)取值1:begin 语句1;语句2;...;end取值2:begin 语句1;语句2;...;end.....default:begin 语句n+m+1;...;end
endcase
case语句的使用应该注意以下3点
1)表达式中的值必须在case以下列出的取值范围内,且数据类型必须匹配
2)与VHDL不同,Verilog的case语句各分支表达式间未必是并列互斥关系。允许出现多个分支同时满足case表达式条件的情况。这种情况将执行最先满足表达式的分支项,然后跳出case语句,不在检测其余分支项
3)除非所有条件句中的选择值能完整覆盖case语句中表达式的值,否则最后必须加上default语句。
casez和casex:当变量取值高阻值z和未知值x时,需要使用对应的casez和casex语句;对于case语句,如果分支取值的某些位是高阻值z则这些位的比较就不再考虑,只关注其他位(0或1)的比较结果;casex同理。
5.if条件语句
if(S) Y=A;
else Y=B;
当执行的语句有多条时,应用begin_end将它们括起来:
if(S) Y=A;
else begin Y=B;Z=C;Q=1'B0;end
注意:if后无论其表达式是什么形式,()都不能少。
4 EDA实用技术与教程【基本语句1】相关推荐
- 9 EDA实用技术与教程【Verilog深入】
1.过程中的两类赋值语句 1. 阻塞式赋值和非阻塞式赋值的区别 阻塞式赋值语句(目标变量名=驱动表达式) 的执行过程分为三步: 计算出"驱动表达式"的值: 向目标变量进行赋值操 ...
- matlab实例 pdf,matlab65实例教程(含语句注释).pdf
matlab65实例教程(含语句注释).pdf 1 2. 基础准备及入门基础准备及入门 2.1 MATLAB 5.x 版对外部系统的要求版对外部系统的要求 2.2 MATLAB 的安装的安装 2.3 ...
- 立创eda学习笔记二十六:手把手教你使用立创eda的官方教程
可以通过以下办法找到教程: 1,在软件界面点帮助-使用教程 2,在网站首页-帮助-教程进入 如何使用教程: 这里是一级目录,其实对新手最有用的是前面3个部分,后面的仿真先不看. 常见问题里面不光是讲的 ...
- python教程循环语句,Python基础教程之循环语句(for、while和嵌套循环)
循环可以用来重复执行某条语句,直到某个条件得到满足或遍历所有元素. 1 for循环 是for循环,可以把集合数据类型list.tuple.dict.set的元素遍历出来. (1)对list进行循环 c ...
- linux教程for语句,Bash 中的 For 循环详解
循环是编程语言的基本概念之一.当你想要一遍又一遍地运行一系列命令直到达到某个条件后终止退出时,循环很方便. 在诸如 Bash 之类的脚本语言中,循环对于自动执行重复性任务非常有用.在 Bash 脚本中 ...
- python教程07-while语句的基本使用、for...in循环的使用、break与continue、打印矩形三角形九九乘法表、基础题、进阶题
python教程_小白入门/2020/7/20 行百里者半九十,你可一定要坚持下去啊 前几天家里有事更新给耽误了,后续会稳定更新的,一起加油! 学习目标 文章目录 python教程_小白入门/2020 ...
- linux教程for语句,Shell脚本for循环语句简明教程
与其他编程语言类似,shell支持for循环. for循环一般格式为: for 变量名 in 列表 do command1 command2 ... commandn done 当变量值在列表里,fo ...
- python教程循环语句_Python教程:关于Python 循环语句
Python 循环语句 本章节将向大家介绍Python的循环语句,程序在一般情况下是按顺序执行的. 编程语言提供了各种控制结构,允许更复杂的执行路径. 循环语句允许我们执行一个语句或语句组多次,下面是 ...
- mysql教程查询语句_最全的mysql查询语句整理
-- 基本查询 select * from pet -- 列出指定的列 select name, owner form pet -- 直接进行算术运算,对字段起别名 select sin(1+2) a ...
- mysql教程查询语句_mysql-Mysql 查询语句怎么写?
开发市场调查业务,有一个调查问题表responses (一百万行), 是市场调查的原始数据,包含survey_id(调查表的类型列),response_no(被调查者列),interview_date ...
最新文章
- JQuery------获取input type=file中的文件内容
- Linux常用命令——压缩与解压缩命令
- SQLite学习手册(实例代码一)
- 我的文档目录环境变量_从.env文件中为NodeJS加载环境变量
- java开发一款坦克大战游戏
- 使用JS实现文字搬运工
- mysql info commit_mysql show processlist 发现大量的commit
- 排序字段设计_内容搜索排序表达式的最佳实践
- TCP—三次握手和四次挥手详解
- .net MvcPager+Ajax无刷新分页
- golang Java_goLang
- centos7自动获取ip命令_如何设置CentOS 7开机自动获取IP地址详解
- 博图注册表删除方法_win7系统鼠标右键刷新反应慢原因【解决方法】
- 真彩色与伪彩色的概念
- VMware ESXI虚拟机修改MAC地址的方法
- PostScript语言里的珠玑
- 数据库操作的异常Cannot perform this operation because the connection pool has been close
- 100层楼,2个鸡蛋问题
- JARVISOJ RE
- 高效记忆/形象记忆(05)定位法