运算符、赋值语句、结构说明语句

逻辑运算符

位运算符(& | ~)       

逻辑运算符(&&  ||  !)

关系运算符

<   >   <=   >=

等式运算符

==(等于)  !=(不等于) ===(等于) !==(不等于)

求反号、双等号、三个等号之间不能有空格。

===进行操作时,会对某些位的不定值和高阻值比较,只有完全一样时结果为1(1、1,0、0,x、x,z、z)常用于case表达式的判别

==进行操作时,至少出现一个x、z时,结果就是x

移位运算符

左移n位a<<n              右移n位a>>n

注意操作数在左边,n代表移几位,移出的空位用0填补

位拼接运算符

把两个或多个信号的某些位拼接起来进行运算操作,表达式中不允许存在没有指明位数的信号

{a,b[3:0],4{w}}        //重复表达式时,前面必须是常数表达式

缩减运算符

单目运算符,也有与或非。是对单个操作数进行与或非递推运算,最后运算结果是1位的二进制数。

reg [3:0] B;
reg C;
    C=&B;    //类似于C=((B[0]&B[1])&B[2])&B[3]

运算符优先级别

赋值语句和块语句

非阻塞赋值(b<=a)

  • 语句块中,上面语句的赋值不能立即就为下面的语句所用
  • 块结束才能完成这次赋值操作,而所赋的变量值是上一次赋值得到的
  • 编写可综合时序逻辑模块时,是最常用的赋值方法

串行语句中,非阻塞赋值语句没有先后之分,排在前面的不会影响后面语句的执行,各语句并行执行;执行非阻塞赋值语句会先计算右端表达式的值,然后等待延迟时间结束,再将计算的值赋给左边的变量。

阻塞赋值(b=a )

  • 赋值语句执行完成后,块才结束
  • b的值在赋值语句执行完后立刻改变
  • 时序逻辑中使用会产生意想不到的结果

串行语句中,阻塞赋值语句将按照排列顺序依次执行;并行语句中各阻塞赋值语句同时执行;阻塞赋值会计算等号右边表达式,之后立刻赋值给左边

/*非阻塞赋值可以看作两步,第一步先算出右边的值,结束后更新给左边*/
always@(posedge clk)    
    begin
        b<=a;
        c<=b;  //c为原来的b值
    end

块语句

将多条语句组合在一起,使其在格式上看更像一条语句。

顺序块

begin_end,标识顺序执行的语句。

  • 块内语句顺序执行
  • 每条语句的延迟时间是相对前一句语句的仿真时间而言
  • 直到最后一条语句执行完,程序流程控制才跳出语句块

-> end_wave //->表示触发事件end_wave使其翻转

begin:块名        //块名字,一个标识名,
    块内声明语句   //如参数声明语句、reg型变量声明变量、real型变量声明
    语句1;
    语句2; 
    语句n;
end

并行块

fork_join,标识并行执行的语句。

  • 块内语句同时执行
  • 块内每条语句的延迟时间是相对于程序流程控制进入到块内的仿真时间
  • 延迟时间是用来给赋值语句提供执行时序
  • 当按时间时序排序在最后的语句执行完后或一个disable语句执行,程序流程控制跳出该程序块

块内声明语句可以是参数说明语句、reg、integer、real、time型变量声明语句和事件(event)说明语句。

块名

  • 可以在块内定义局部变量
  • 可以允许块被其他语句调用,如disable
  • Verilog中所有变量都是静态的,即所有变量都只有一个唯一的存储地址,因此进入或跳出块并不影响存储在变量内的值

(块名提供了一个在任何仿真时刻确认变量值的方法)

起始时间和结束时间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值