草庐IT

Verilog-A

全部标签

Verilog中if 语句与wait语句的区别

(1)if语句是非阻塞语句,在initial语句中遇到if语句时,会判断条件是否成立,如果if条件成立,将会执行if条件成立后的语句;如果if语句不成立,那么if后面的语句将会跳过而不执行。不会阻塞后面语句的执行,所以它是非阻塞语句。(2)wait语句是阻塞语句,遇到wait语句时,会判断wait语句条件是否成立,如果不成立,wait语句将会阻塞,wait语句以及后面的语句将不会执行;直到wait语句条件满足,才会执行wait语句以及后面的语句。所以wait语句是阻塞语句。如下面的示例:rega;initialbegina=0;#100000000a=1;#100a=0;endinitialb

Verilog基本代码结构及常用语句always、begin...end解读

verilog常用语句1.1基本代码结构1.2简例1.2.1简单的与或非运算1.2.2线性反馈移位寄存器(此部分可在看懂always和begin后详细了解)2.1always常用结构3.1begin...end用法解读3.2简例总结在老板的要求下,我开始学习接触FPGA相关内容。而我们所用到的FPGA综合开发软件为vivado,虽然还没练习时长两年半,但也有一定的经验,接下来我把学习中遇到的问题记录如下,希望能帮助到刚入门的萌新。如果有一定的语言基础(例如c、matlab、Python等等),则搞懂以下问题,对于verilog语言的学习就会非常简单。1.1基本代码结构在创建工程项目后,代码页面

Verilog基础之八、多路选择器实现

一、前言    选择器在FPGA中是基础的组成部分,英文全称为Multiplexer,为一个多输入单输出的结构。以器件xc7k480tffv1156为例,在slice中,也可以看到F7AMUX,F8MUX,这两个MUX都是二输入单输出的选择器。二、工程实现    以8-1选择器,8输入为例进行设计2.1设计代码moduleMUX(sel,in,out );input[2:0]sel;input[7:0]in;outputregout;always@(sel)begincase(sel)3'b000:out测试代码,选择变量sel每隔1ns加1,输入in每10ns增加1111。moduleMUX

FPGA实现UDP视频传输,带抓拍和录像功能,纯verilog代码 提供工程源码和技术支持

目录1、前言免责声明2、我这里已有的UDP方案3、UDP详细设计方案4、本UDP视频传输的优势5、UDP视频传输详细设计方案ov5640寄存器配置UDP发送设计6、vivado工程详解7、上板调试验证并演示8、验证演示视频9、福利:工程代码的获取1、前言目前网上的fpga实现udp基本生态如下:1:verilog编写的udp收发器,但不带ping功能,这样的代码功能正常也能用,但不带ping功能基本就是废物,在实际项目中不会用这样的代码,试想,多机互联,出现了问题,你的网卡都不带ping功能,连基本的问题排查机制都不具备,这样的代码谁敢用?2:带ping功能的udp收发器,代码优秀也好用,但基

Verilog之串并转换

1.串行转并行1.1利用移位寄存器采用位移拼接技术,当使能信号发出时,进行移位输出(注意低位和高位先赋值表达方式不同);当使能信号无时,后续数据不发出。moduleserial_parallel(inputclk,inputrst_n,en,inputdata_i,//一位输入outputreg[7:0]data_o //8位并行输出);always@(posedgeclkornegedgerst_n)begin if(!rst_n) data_o1.2利用计数器利用计数器,每过一个周期移动一位,数据输出一位;​moduleserial_parallel(inputclk,inputrst_

Verilog HDL

一,原理(1)QuartusAlteraQuartusII作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,受到数字系统设计者的欢迎, AlteraQuartusII设计软件是业界唯一提供FPGA和固定功能HardCopy器件统一设计流程的设计工具。(2)ModelSim ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力

Verilog基础:避免混合使用阻塞和非阻塞赋值

相关阅读Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm=1001.2014.3001.5482    “避免在一个always块中混杂阻塞赋值和非阻塞赋值”,这条原则是著名的Verilog专家CliffCummings在论文SUNG2000中提出的,这个观点在公众讨论时受到了广泛的质疑。有人认为可以在时钟沿触发的always块里把组合逻辑的阻塞赋值和时序逻辑的非阻塞逻辑安全地混杂在一起。诚然,但是这种编码风格有以下几点不足。这种always块的事件调度理解起来比较费劲。这种always块内的非阻

verilog常用系统任务和函数

在FPGA开发中编写仿真测试激励文件(testbench),经常会用到verilog的系统函数,使用系统函数非常方便,本文总结了常用的系统函数,并提供了说明和使用示例。一、文件操作1、打开文件$fopen和关闭文件$fcloseintegerfp;fp=$fopen("file_path/file_name","wb");$fclose(fp);打开文件$fopen函数:第1个参数:文件路径,绝对路径和相对路径均可。第2个参数:定义含义r读操作w写操作a在文件末尾追加rb,wb,ab以二进制的方式读、写、追加,推荐方式返回值:0表示打开文件成功,非0值表示打开文件失败关闭文件$fclose:参

什么是Verilog?

什么是Verilog?        Verilog是一种以代码形式来描述数字系统和电路的硬件描述语言(HDL)。它由GatewayDesignAutomation在20世纪80年代中期开发,后来被CadenceDesignSystems收购。        Verilog广泛用于数字和混合信号系统的设计和验证,包括专用集成电路(ASIC)和现场可编程门阵列(FPGA)。它支持从结构级到行为级的一系列抽象层级,并用于基于仿真的设计和基于综合的设计。        该语言分层次级来描述数字电路,从逻辑门和触发器等最基本的元素开始,到构建更复杂的功能模块和系统。它还支持一系列建模技术,包括门级、R

verilog运算符

运算符和表达式算数运算符算数运算符说明+加-减*乘/除%求模进行整数除法运算时,结果值略去小数部分,只取整数部分;%称为求模(或求余)运算符,要求%两侧均为整型数据;求模运算结果值得符号位取第一个操作数的符号位;进行算数运算时,若操作数位不定值X,则整个结果也为xeg:x+a=x;定义一个a,b都是[1:0]两位的,b是1,c是6a=b+ca=7但是换算成二进制111但是a是两位的二进制,故a为11舍弃了最高位的1关系运算符关系运算符说明小于小于或等于>大于>=大于或等于运算结果值为1位的逻辑值1或0或x关系运算时,若关系为真,则返回值为1若声明的关系为假,则返回值为0若操作数为不定值x,则返