当前位置: 首页 > article >正文

verilogHDL仿真详解

前言

Verilog HDL中提供了丰富的系统任务和系统函数,用于对仿真环境、文件操作、时间控制等进行操作。(后续会进行补充)

正文

一、verilogHDL仿真详解

`timescale 1ns/1ps      
//时间单位为1ns,精度为1ps,
//编译指令将时间单位与实际时间相关联。
//该指令用于定义时延、仿真的单位和精度

module tb_test_all_tb();			//仿真模块名(不可至工程顶层)	
	wire data_in;						//仿真模块输入
					
	reg  data_out;					//仿真模块输出

tb_test_all tb_test_all_inst(		//被测试模块名 #(.被测试模块全局变量(目标值)) 被测试模块名例化名
	.bin(	data_in  ),					//被测试模块输入
											
	.bcd(	data_out )					//被测试模块输出
);		
	
	reg 	data_1;							//测试中间变量(这里用于接收数据)
	integer data_m;						
	integer i = 0;
	
	initial begin							//执行一次(仿真初始化赋值)
		data_m = $fopen("data.txt");	//创建并打开文本文件(绝对路径或相对路径)
		#20000								//延时20000 * 1ns
		data_1 = {$random}%256;			//随机产生0~256之间的数字,没有{}时产生-256~256之间的数字
		$fclose(data_m);					//关闭文件。
		
		forever #5 clk = ~clk; 			//每5个时间单位翻转一次时钟信号,生成时钟信号
		$stop;								//暂停仿真
		$finish;								//仿真结束
	end
		
	always@(*) begin							//多次执行(循环结构等)
		$display("this is verilog");		//打印输出字符
		$display("%t,%b",$time,data_in);	//打印输出data_in已%b的形式,并且输出打印时间
		$monitor("%t,%b",$time,data_in);	//持续监控指定变量的值,并在变量值发生变化时显示
		
		$fwrite(data_m, "%c", data_in);	//向文件写入数据,将data_in已%c的格式写入到data.txt
		$fdisplay(data_m, "%c", data_in);//向文件写入数据,将data_in已%c的格式写入到data.txt
		
		$readmemb("data.txt",data_1);		//从文件读入数据读入到data_1,readmemb二进制方式,readmemh十六进制
      $fscanf(data_m, "%h", data_in);	// 使用fscanf读取一个1位无符号整数从文件data.txt读入到data_1
	end
		
endmodule

参考资料

Verilog中的系统函数和系统任务


http://www.kler.cn/a/487764.html

相关文章:

  • nginx 1.6.3配置虚拟主机与rewrite-location匹配规则
  • C#中的常用集合
  • 点击底部的 tabBar 属于 wx.switchTab 跳转方式,目标页面的 onLoad 不会触发(除非是第一次加载)
  • 68.基于SpringBoot + Vue实现的前后端分离-心灵治愈交流平台系统(项目 + 论文PPT)
  • Agent | Dify中的两种可选模式
  • JVM 优化指南
  • JavaFx 21 项目Markdown 预览、编辑、新建、文件树、删除、重命名
  • huggingface上下载数据
  • Python自学 - 类进阶(可调用对象)
  • 《上古重生》V20241127111039官方中文学习版
  • 将光源视角的深度贴图应用于摄像机视角的渲染
  • 系统架构设计师考点—计算机网络
  • 命令模式详解与应用
  • TensorFlow Quantum快速编程(基本篇)
  • CES 2025|美格智能高算力AI模组助力“通天晓”人形机器人震撼发布
  • 【计算机网络】什么是网关(Gateway)?
  • 国产游戏崛起,燕云十六移动端1.9上线,ToDesk云电脑先开玩
  • 安捷伦等程控电源压测工具支持所有NationalInstruments.Visa协议的电源。
  • 初学stm32 --- ADC单通道采集
  • 【数据结构】 树的遍历:先序、中序、后序和层序
  • Ubuntu | 系统软件安装系列指导说明
  • Java一个简单的反弹动画练习
  • 统一门户单点登入(C#-OOS机制)
  • 物联网:七天构建一个闭环的物联网DEMO-MQTT的配置
  • MySQL核心揭秘:InnoDB存储引擎高级特性
  • 从MySQL5.7平滑升级到MySQL8.0的最佳实践分享