首先,让我们讨论一下 Verilog 和 VHDL 的硬件建模能力,因为它们都是用于建模硬件的硬件描述语言。 下图显示了 Verilog 和 VHDL 在硬件抽象行为级别方面的 HDL 建模能力。 图形来源:Douglas J. Smith,“VHDL 和 Verilog 比较和对比加上用 VHDL、Verilog 和 C 编写的建模示例” 低级建模 如上图所示,Verilog 和 VH...
Verilog具有系统任务和功能,可以打开文件、将值输出到文件、从文件中读取值并加 载到其他变量和关闭文件。 回到顶部 1.1 Verilog文件操作 1.1.1 打开和关闭文件 moduletb;//声明一个变量存储 file handlerintegerfd;initialbegin//以写权限打开一个文件名为 "my_file.txt" 的新文件,并将文件柄指针存储在变量"fd"...
有符号数的计算在 Verilog 中是一个很重要的问题(也很容易会被忽视),在使用 Verilog 语言编写 FIR 滤波器时,需要涉及到有符号数的加法和乘法,在之前的程序中我把所有的输入输出和中间信号都定义成有符号数,这样在计算时没有出现问题(实际在之前的程序中遇到了问题,最后滤波结果不对,博客的程序是已经改正过的),...
输入、输出和总线信号的值可以传入、传出任务和函数。任务和函数往往还是大的程序模块中在不同地点多次用到的相同的程序段。 学会使用task和function语句可以简化程序的结构,使程序明白易懂,是编写较大型模块的基本功。 一.task和function说明语句的不同点 任务和函数有些不同,主要的不同有以下四点: 1) 函数只能...
在FPGA开发中编写仿真测试激励文件,经常会用到verilog的系统函数,使用系统函数会非常方便,本文总结了常用的系统函数,并提供了说明和使用示例。 一、文件操作 1、打开文件和关闭文件 integer fp; fp = $fopen("file_path/file_name","wb"); $fclose(fp); 打开文件$fopen函数: 第1个参数:文件路径,绝对路径和...
简介:【Verilog】generate和for循环的一些使用总结(1) 前言 之前使用generate和for时候一直糊里糊涂的使用,所以今天静下心来总结一下,顺便看看有哪些坑。 做一个模块,输入为多路data通过bit map型vld信号作为标记,输出为单路data,取多路信息中port num值最大的那一路数据,同时输出这一拍共多少路有数据; ...
一、显示任务$display和$write 系统显示任务$display和$write在仿真测试中是最为常用的信息显示方式。$display和$write任务最主要的区别在于,$display在一次输出后会自动换行,而$write则不会,他们的其他用法格式基本类似。 【语法结构】 【任务名】(“【可选字符串】+【格式】”,【信号1】,【信号2】,……) ...
【Verilog】generate和for循环的一些使用总结(1) for循环归纳 在编译和综合阶段,编译器会将for循环展开,因此for循环的起点和终点都必须是常数才能够综合,否则会报错; 对于for循环,直接看几个常见的使用场景; 信号选择 1. always @(*)begin: gain_data2. integer i;3. data = 0;4. for(i=0; i<PORT_NUM...
首先,让我们讨论一下 Verilog 和 VHDL 的硬件建模能力,因为它们都是用于建模硬件的硬件描述语言。 下图显示了 Verilog 和 VHDL 在硬件抽象行为级别方面的 HDL 建模能力。 图形来源:Douglas J. Smith,“VHDL 和 Verilog 比较和对比加上 用 VHDL、Verilog 和 C 编写的建模示例” ...
对于数字系统而言,建立时间(setup time)和保持时间(hold time)是数字电路时序的基础。数字电路系统的稳定性,基本取决于时序是否满足建立时间和保持时间。所以,这里用一整节的篇幅,来详细的说明建立时间和保持时间的概念。 基本概念 建立时间就是时钟触发事件来临之前,数据需要保持稳定的最小时间,以便数据能够被时钟正确...