码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 野火FPGA入门(2):Verilog HDL基础语法


    文章目录

      • 0 Verliog语言
      • 1 运算符
        • 算数运算符
        • 归约运算符、按位运算符
        • 逻辑运算符
        • 关系运算符
        • 位移运算符
        • 拼接运算符
        • 条件运算符
        • 优先级
        • case分支语句
      • 2 系统函数
      • 参考博客

    Verilog HDL是一种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为的语言,用它可表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。

    Verilog语言:

    1. 语法自有,易学易用
    2. 适合算法级、门级设计
    3. 代码简洁
    4. 发展较快

    VHDL语言:

    1. 语法严谨,难以上手
    2. 适合系统级设计
    3. 代码冗长
    4. 发展缓慢

    0 Verliog语言

    • 模块开始结束:module、endmodule
    • 输入输出:input、output、inout
    • 线网型变量wire、寄存器型变量reg
    • 参数parameter、localparam

    常量表示格式:[换算为二进制后位宽的总长度]['][数值进制符号][与数值进制符号对应的数值]
    8'd171:位宽是8bit,十进制是171

    赋值方式:阻塞赋值(顺序进行)、非阻塞赋值(同时执行)
    例:阻塞赋值

    a = 1;
    b = 2;
    c = 3;
    begin
    	a = b;
    	c = a;
    end
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    a = 2;
    b = 2;
    c = 2;
    
    • 1
    • 2
    • 3

    例:非阻塞赋值

    a = 1;
    b = 2;
    c = 3;
    begin
    	a <= b;
    	c <= a;
    end
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    a = 2;
    b = 2;
    c = 1;
    
    • 1
    • 2
    • 3

    逻辑值
    0:逻辑低电平,条件为假
    1:逻辑高电平,条件为真
    z:高阻态,无驱动
    x:未知逻辑电平

    1 运算符

    算数运算符

    +(加法,如assign c = a+b;就是把a与b的和赋给c)

    -(减法,如如assign c = a-b;就是把a与b的差赋给c)

    *(乘法,如如assign c = a乘以3;结果赋给c)

    /(除法,如如assign c = a/2;结果赋给c,一般不会用除号)

    %(求模,或者称为求余,要求%两侧均位整形数据,5%3的值为2,用在测试文件)

    归约运算符、按位运算符

    作为一元运算符时:将所有比特相与

    &4'b1111 = 1&1&1&1 = 1'b1
    &4'b1101 = 1&1&0&1 = 1'b0
    
    • 1
    • 2

    作为二元运算符时:对应为相与

    4'b1010&4'b0101 = 4'b0000
    4'b1101&4'b1111 = 4'b1101
    
    • 1
    • 2

    其他操作符同理

    逻辑运算符

    在这里插入图片描述

    关系运算符

    在这里插入图片描述

    位移运算符

    在这里插入图片描述

    拼接运算符

    在这里插入图片描述

    条件运算符

    在这里插入图片描述

    优先级

    在这里插入图片描述

    case分支语句

    在这里插入图片描述

    2 系统函数

    在这里插入图片描述
    常见系统函数:

    $display  //打印信息,自动换行
    $write    //打印信息
    $strobe   //打印信息,自动换行,最后执行
    $monitor  //检测变量,变量发生变化就会执行这语句
    $stop     //暂停仿真
    $finish   //结束仿真
    $time     //时间函数
    $random   //随机函数
    $readmemb //读文件函数
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    1、display

    $display("%b+%b=%d",a,b,c);
    //%h,十六进制
    //%d,十进制
    //%o,八进制
    //%b,二进制
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2、write

    $write("%b+%b=%d\n",a,b,c);   //不会自动换行
    
    • 1

    参考博客

    https://blog.csdn.net/yanyonglin123/article/details/123361964

  • 相关阅读:
    JavaWeb基础篇笔记(1)
    清明作业 c++
    手写一个线程池,带你学习ThreadPoolExecutor线程池实现原理
    SpringBoot集成swagger
    数据结构——查找
    数字转型新动力,开源创新赋能数字经济高质量发展
    Spectacle源码及分析3 —— Main.cpp解析2
    ELK 使用 metricbeat监控数据
    实用 - Java后端面试经历(经验分享)适用于2~3年
    Qt5开发及实例V2.0-第一章Qt概述及Qt5的安装
  • 原文地址:https://blog.csdn.net/qq_39236499/article/details/127752409
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号