首页 > 其他分享 >1(2)verilog语法基础

1(2)verilog语法基础

时间:2024-11-20 13:40:51浏览次数:1  
标签:逻辑 clk always 基础 阻塞 语法 verilog

语法介绍

可综合与不可综合

可综合的verilog语法:语法可以综合成实际的电路

  1. 组合逻辑:由一堆逻辑单元实现
  2. 时序逻辑:由寄存器(D触发器)实现,如always@ (posedge i_clk) b<=a;只有在时钟上升沿才会把值输出出去,否则就一直存着

不可综合的verilog语法:语法不可综合成实际的电路
如a<= #1 b; 这个延时1ns是无法实现的,FPGA中没有延时单元

运算

注:FPGA中不能直接用组合逻辑设计除法、取余运算电路,需要结合时序逻辑,可能需要多个时钟周期

阻塞和非阻塞

点击查看代码
//组合逻辑使用阻塞赋值
assign w_d = 1;
assign w_e = w_d;

//时序逻辑使用非阻塞赋值(并行)
always @(posedge i_clk)
    begin
        r_a <= 1;
        r_b <= r_a; //r_b会慢一个时钟周期变为1
    end

非阻塞示意图如下:

总结:r_b数值比r_a数值慢一拍,因为r_a输出有延迟,1还没有到r_b数据端口时r_b就已经读取完数据了,所以输出是0,在下一个时钟上升沿会变成1

注:若出现always @(*),则这样的话只要下面的信号改变就会赋值,这种写法和组合逻辑是等效的。reg型只能写在always里,assign只能用于wire型

按位与、或

r_a <= &r_a;
r_a <= |r_a;
若r_a为1010,则第一个结果为0,第二个结果为1
功能:判断信号内的1和0

case语句

点击查看代码
always @(posedge i_clk)
    case(r_a)
        1 :begin
            r_b <= 1;
        end
        2 :begin
            r_b <= 2;
        end
        default :begin
            r_b <=3 ;
        end
    endcase
主要记一下这个写法,有时候可能会写错符号

标签:逻辑,clk,always,基础,阻塞,语法,verilog
From: https://www.cnblogs.com/xuxuxu69/p/18556706

相关文章

  • 小白也能二十分钟上手的HTML基础
    目录一、HTML简介二、HTML基本结构概述head内标签body内标签文本相关标签列表标签链接标签图像标签表格标签表单标签声明:学习视频来自b站up主泷羽sec,如涉及侵权马上删除文章声明:本文主要用作技术分享,所有内容仅供参考。任何使用或依赖于本文信息所造成的法律后......
  • Windows基础
    #学习视频笔记均来自B站UP主" 泷羽sec",如涉及侵权马上删除文章仅用于学习参考,不要越过法律红线Windows&Liunx文件系统Liunx:fhs目录结构,块设备挂载到目录(一切都是文件)Win:以驱动盘符开始,或通过目录挂载分区路径格式Liunx:/开始,区分大小写(左斜线)win:\分隔路径,不区分......
  • TCP/UDP套接字基础编程及拓展
    一、环境1.1客户端:windows宿主机1.2服务器端:Linux虚拟机1.3注意事项测试套接字编程通信时,先确保C/S能互相ping通,且双方主机防火墙允许目的端口号为“创建的端口号”的数据包通过。二、代码2.1UDP套接字编程2.1.1UDPClient.pyfromsocketimport*#导入套接字......
  • 计算机网络基础
    1.概述1.1网络协议划分1.2各协议位于哪层网络层:IP、ICMP、ARP、RARP、BOOTP、TCP/IP传输层:TCP、UDP应用层:FTP、HTTP、DNS、TELNET、SMTP1.35层模型功能描述1.应用层 准备数据2.传输层 对数据进行分块,识别并将数据报正确交付相应的应用程序,识别数据报属于哪个应......
  • Linux基础命令二
    二、进阶命令2.1ps命令作用:监测进程。psaux:显示所有用户的进程可以看见CPU使用率,内存使用率、进程状态ps-ef系统上运行的所有进程可以看见PPID一些信息UID:启动这些进程的用户。PID:进程的进程ID。PPID:父进程的进程号(如果该进程是由另一个进程启动的)。C:进程生......
  • k8s阶段02 namespace,pod资源及命令, pod资源配置(应用监控,资源需求和限制), 多容器p
    namespaceNamespace:名称空间,命名空间资源对象名称隔离www.google.com,www.magedu.com资源类型:名称空间级别:必须属于某个名称空间-nNAMESPACE_NAME--namespaceNAMESPACE_NAME集群级别:不属于任......
  • 前端框架Vue3基础部分
    什么是Vue?Vue是一个能用于构建用户交互页面(动态网页)的渐进式JavaScript框架,易学易用,性能出色,适用性强的Web前端框架。Vue的设计模式?Vue的设计模式:MVVM模式MVVM设计模式是不让Model和View这两层直接通信,而是通过VM层来连接。文本插值表达式:可以使用{{}}在模版中插入数据......
  • 测试工程师1——测试基础(测试分类+测试模型+测试用例)
    hello~好久没有更新了,这段时间,我会用一个月左右的时间,和大家一起成长为中级测试工程师。我是平平无奇的羊,一个在字节搬砖的测试开发工程师。欢迎大家交流学习!软件测试分类主要按两种划分:阶段划分(阶段:软件产出过程顺序)代码可⻅度阶段划分单元测试说明:针对程序源代码进⾏测......
  • 零基础逆向学习记录6
    逆向学习记录之汇编基础61.什么是堆栈平衡?<1>如果要返回父程序,则当我们在堆栈中进行堆栈的操作的操作的时候,一定要保证ret这条指令之前,esp指向的是我们压入栈中的地址,即返回call的下一行。<2>如果通过堆栈传递参数了。那么在函数执行完毕之后,要平衡参数导致的堆栈变化。......
  • 2024/11/19语法整理
    look的用法1.Look可以表示“看”呀,就像你说“Lookatthatbird!”(看那只鸟!),这是很基础的用法呢。2.“Havealook”也是常用的搭配呀,比如“Let'shavealookatthisbook."(让我们看看这本书。),是不是很简单易懂呀!3.Look还能和“like”一起用呢,“Itlookslikerain......