前面的学习笔记是在看程序时遇到什么问题就记下来然后去查资料整理的,后续的学习笔记会更加系统的整理verilog相关的内容。Verilog作为硬件电路语言,将电路抽象为程序,用代码去控制电路的运行。我们可以使用verilog语言去实现各种各样的功能。当需要去完成一个复杂的工程时,我们需要将工程分解为多层次的任务,在将工程分解为任务后,我们要用硬件语言去实现这些任务,verilog在实现功能时将抽象为
转载 2024-06-10 01:02:56
139阅读
几个简单的系统任务,$readmemb,$readmemh,$fopen,$fdisplay;基本上就可以完成对文件的读写操作。一、读任务在verilog语言中有两个系统任务$readmemb,$readmemh可以用来从文件中读取数据到存储器中。这两个任务可以在仿真的任何时刻被执行使用,其使用方法如下:$readmemb1,$readmemb("<数据文件名(路径地址和文件名)>",
前言之前的文章《如何学习verilog,如何快速入门?》中提到了verilog学习,只想传输一个观点:刚开始学习的时候,建议直接通过视频学习,当您有收获时,再去查阅书籍,把它们当成工具书。这篇文章就通过上一篇文章中提到的方法,演示一下!本文基于【开源骚客】FPGA超详细入门视频教程学习所得,简单做个笔记!00. FPGA开发软件的安装在高校,verilog的教学大都是基于FPGA学习的,所以学习资
转载 2024-10-15 14:35:10
54阅读
1评论
为什么要用?在使用数字图像IC设计中,往往需要测试所设计的图像处理模块的功能,此时模块的输入端数据时序要求比较复杂,因此需要通过testbench按照一定的时序关系读取外部的文件中的数据,或者模块计算完后需要将输出的数据导出到外部文件中进行存储。Verilog 提供了很多可以对文件进行操作的系统任务文件开、关:$fopen , $fclose , \(ferror 文件写入 :\)fdi
转载 2024-04-15 15:15:38
120阅读
一、关键词:时延, 惯性时延连续赋值延时语句中的延时,用于控制任意操作数发生变化到语句左端赋予新值之间的时间延时。时延一般是不可综合的。寄存器的时延也是可以控制的,这部分在时序控制里加以说明。连续赋值时延一般可分为普通赋值时延、隐式时延、声明时延。下面 3 个例子实现的功能是等效的,分别对应 3 种不同连续赋值时延的写法。//普通时延,A&B计算结果延时10个时间单位赋值给Zwire Z,
原创 精选 2022-12-16 14:22:40
418阅读
0 引言 SystemVerilog相比Verilog新增了一些关键语法,比如类。对于类和对象,与python c++ java中完全一致,面向对象(搜索引擎)编程的思想也完全一致。1 变量特性 在SV中诸如class,program等等的软件语言,生成的内容都为动态变量,从仿真开始后的某个时间点开始,某个时间点结束。而硬件语言例如wire,reg生成的变量均为静态变量,生成真正的逻辑电路,会随着
转载 11月前
14阅读
1.Verilog的运行方式0 介绍1.0 verilog模型框架1.1 电路模型1.2 逻辑门模型1.3 行为模型2.0 verilog仿真框架2.1 测试框架3.0 合并模型和测试框架3.1 连接3.2 测试数据4. 注意的点4.1 input, output4.2 reg/wire4.3 ;和begin/end4.4 时序#4.5 $display 一阴一阳之谓道 《易经》0 介绍Veri
系统任务也属于行为级建模,系统任务的调用要出现在initial与always结构中。所有的任务都已$开头。 1、$display,$write用于信息的显示和输出。其中,%b或%B 二进制 %o或%O 八进制 %d或%D 十进制 %h或%H 十六进制 %e或%E 实数 %c或%C 字符
文章目录系列文章目录前言 一、Verilog文件操作简介二、使用步骤1.文件打开、关闭2.文件写入3.字符串的写入4.文件读取5.文件定位6.加载存储器总结 前言        大部分编译器和仿真器在读文件的时候需要预先打开文件。在Vivado自带仿真器中,读文件不需要预先打开要读取的文件,也不需要将文件加入Viva
YASAYASA - Yet Another Simulation ArchitectureYASA是一款跑IC软件仿真的开源框架。它支持synopsys vcs和cadence irun。支持synopsys 2-step或者3-step的仿真flow。它支持SV/UVM或者纯verilog的testbench,支持lsf作业调度系统。 它提供了一系列灵活的配置选项。用户可配置的文件有三个:us
转载 2023-12-26 22:36:19
80阅读
⭐本专栏针对FPGA进行入门学习,从数电中常见的逻辑代数讲起,结合Verilog HDL语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机FSM进行剖析与建模。 ?本文已收录于MySQL系列专栏:​​FPGA ​​ 欢迎订阅,持续更新。 ?文章和代码已归档至【​​Github仓库​​】,需要的朋友们自取。或者关注公众号【AIShareLab】,回复 FPGA 也可获取。简单V
原创 精选 2023-01-25 23:55:41
448阅读
1点赞
 1、Verilog命名规则1.1、顶层文件 对象+功能+top比如:video_oneline_top1.2、逻辑控制文件 介于顶层和驱动层文件之间 对象+ctr比如:ddr_ctr.v1.3、驱动程序命名 对象+功能+dri比如:lcd_dri.v、uart_rxd_dri.v1.4、参数文件命名 对象+para比如:lcd_para.v1.5、模块接口命名:文件名+u 比如 :lc
本博文参考:《从算法设计到硬件逻辑实现》,仅供学习交流使用。Verilog模型可以是实际电路不同级别的抽象。这些抽象的级别和它们对应的模型类型共有以下五种:1) 系统级(system)2) 算法级(algorithmic)3) RTL级(RegisterTransferLevel):4) 门级(gate-level):5) 开关级(switch-level)对于数字系统的逻辑设计...
原创 2021-08-20 11:42:11
632阅读
本博文参考:《从算法设计到硬件逻辑实现》,仅供学习交流使用。Verilog模型可以是实际电路不同级别的抽象。这些抽象的级别和它们对应的模型类型共有以下五种:1) 系统级(system)2) 算法级(algorithmic)3) RTL级(RegisterTransferLevel):4) 门级(gate-level):5) 开关级(switch-level)对于数字系统的逻辑设计...
原创 2022-04-14 15:20:10
2368阅读
要测试我们设计的模块功能是否正常,最直接的办法就是烧写到FPGA芯片中进行验证,但是这种方式往往结果并不直观,且出现问题后也不容易定位。为提高工作效率,我们可通过电脑仿真的方式进行功能验证,待仿真通过后,再烧写到FPGA中,这样可以快速排除电路中存在的绝大多数bug。在电脑上进行仿真,除了我们设计的功能模块之外,还需要另一模块——testbench,用于产生被测模块所需的激励信号。由于testbe
推荐 原创 2022-11-18 21:38:45
2761阅读
FPGA前置知识【来自ChatGPT】FPGA作为一种可编程逻辑芯片,主要用于数字电路设计和实现。因此,需要掌握一些与数字电路设计相关的知识和技能,包括:数字电路基础知识:理解二进制、逻辑门、组合逻辑、时序逻辑、时钟、计数器、寄存器等基本概念。Verilog或VHDL语言:这两种硬件描述语言是FPGA设计中最常用的语言,需要掌握它们的语法和特性,能够使用它们进行逻辑设计和仿真。FPGA架构:需要了
转载 5月前
106阅读
//一般常用到的系统函数有几个:$readmemb,$readmemh,$display,$fmonitor,$fwrite,$fopen,$fclose等fscanf函数:    $fscanf(文件指针,读取格式,数组)注意:该系统函数每次读取文件中的每一行数据,这当中需要特别注意一点,每一行只能是同一种数据格式,例如:0011_0001,如果出现0b0011_0001,则
转载 4月前
693阅读
****************************************************************************************** Author:  荷包蛋 E-mail: shuangfeiyanworld@163.com Device:  EP2C8Q208C8 Tool: &
转载 精选 2013-02-03 11:50:16
1095阅读
测试我们设计的模块功能是否正常,最直接的办法就是烧写到FPGA芯片中进行验证,但是这种方式往往结果并不直
原创 2022-12-04 01:07:33
746阅读
1. 激励的产生 对于 testbench 而言,端口应当和被测试的 module 一一对应。 端口分为 input,output 和 inout 类型产生激励信号的时候, input 对应的端口应当申明为 reg, output 对应的端口申明为 wire, inout 端口比较特殊,下面专门讲解。 1)直接赋值 一般用 init
转载 8月前
109阅读
  • 1
  • 2
  • 3
  • 4
  • 5