FPGA技术脚本使用
做fpga 不会脚本,基本跟残废一个概念。以前我觉得做FPGA应该学习什么人工智能,大数据,机器人。现在想起来真是傻逼,做fpga也好,做ic,做逻辑其实基本能力都是一样的。
一个学习tcl脚本,perl脚本能力,perl脚本可以做定制IP设定功能,可以封装IP功能。tcl是仿真,软件自动编译能力。二个是时序约束能力。以后都是会重点讲述这两个方面。
下面列举一些常见的TCL脚本命令
Run do文件的一些常用命令
打开现有工程
project open C:/Users/jayash/Desktop/sim/ImageProcess
新建一个库
vlib my_lib
将其映射到work
vmap my_lib work
删除制定库
vmap -del my_lib
添加指定设计文件
project addfile src/Verilog/test.v
编译工程内所有文件
project compileall
编译指定verilog文件
vlog src/Verilog/test.v
编译指定的vhdl文件,同时检查可综合性
vcom –check_synthesis src/video_cap.vhd
仿真work库下面的test_tb实例,同时调用220model_ver库,不再进行任何优化,仿真分辨率1ns。
vsim –t 1ns –L 220model_ver –gui –novopt work.test_tb
取消warning,例如‘x’,‘u’,‘z’信号的警告,对提高编译速度很有帮助
set StdarithNoWarning 1#查看objectView objects#查看局部变量View locals#查看sourceView source
添加模块顶层所有信号到波形图
add wave*
10进制无符号显示
Radix usigned
16进制显示
Radix hex
重新进行仿真
Restart
开始仿真
Run
仿真指定时间
Run 1ms
时钟激励50ns周期 占空比50%
Force –repeat 50 clk 0 0,1 25
指定信号置0
Force rst_n 0
指定信号置1
Force rst_n 1
指定信号赋值
Force din_a 123
Force din_b 39
下面是经常用的仿真脚本模板,仿真新的工程只需要修改一点点,就可以直接使用了。将sim.do文件放在仿真工程目录下,即和Modelsim仿真工程xxx.mpf在同一个文件夹。sim是我定义的do文件名,用户可自行定义。
退出当前仿真
quit -sim
vlib work
编译修改后的文件,我这里把设计文件和仿真文件分开放了,所以写两个。
vlog "../Src/*.v"
vlog "../Sim/*.v"
开始仿真
vsim -voptargs=+acc work.tb_Cordic_Cos_Sin
添加指定信号#添加顶层所有的信号
Set the window types
打开波形窗口
view wave
view structure
打开信号窗口
view signals
添加波形模板
add wave -divider {tb_Cordic_Cos_Sin}
add wave tb_Cordic_Cos_Sin/add wave -divider {tb_Cordic_Cos_Sin}
add wave tb_Cordic_Cos_Sin/uut/.main clear
运行xxms
run 100us
另外说明三个重要指令,因为很多DS编写verilog 跟写c语言一样。
(1) +incdir+:
如:vlog +incdir+YOUR_SOURCE_PATH foo.v
+incdir+YOUR_SOURCE_PATH 选项是指在verilog文件中出现`include "xxx.v" 时,包含文件的搜索路径。
缺省是搜索当前路径,然后是YOUR_SOURCE_PATH 指定的路径。
(2) +define+:
+define+<macro_name>[=<macro_text>]
允许用户在命令行中定义宏定义,等效于编译器指令:
`define <macro_name> <macro_text>
用户可以指定多个宏定义,如下:
vlog +define+one=r1 +two=r2 +three=r3 test.v
命令行的宏定义会覆盖在源文件中用`define定义的相同名字的宏定义
如:vsim -c -l vsim.log -do ./YourDo.do -L ./work work.foo
(3) 通配符概念。如果一个工程需要很多文件,你每个文件都加上你是不是很痛苦。所以这个时候需要做通配文件。+libext+.v 代表所有的.v文件。
vlog -y ../../../models/ecp5um +libext+.v
-y ../../../models/mem +libext+.v
下面就是脚本,保存do文件就可以。在modelsim 敲入do *.do就可以运行。
quit -sim
if {[file exists work]} {
file delete -force work
}
vlib work
==== compile
vlog -novopt +define+inst1_NO_DEBUG+inst1_SIM+SIM+NO_DEBUG
-y ../../../models/ecp5um +libext+.v
-y ../../../models/mem +libext+.v
-y D:/program/latticediamond/diamond/3.10_x64/cae_library/simulation/verilog/ecp5u +libext+.v
-y D:/program/latticediamond/diamond/3.10_x64/cae_library/simulation/verilog/pmi +libext+.v
+incdir+../../../testbench/tests/ecp5um
+incdir+../../src/params
+incdir+../../../models/mem
../../src/params/ddr3_sdram_mem_params_inst1.v
../../../../inst1_beh.v
../../../models/ecp5um/ddr_clks_src.v
../../src/rtl/top/ecp5um/ddr3_sdram_mem_top_wrapper_inst1.v
../../../testbench/top/ecp5um/odt_watchdog.v
../../../testbench/top/ecp5um/monitor.v
../../../../../../src/ddr3_wrrd.v
../../../../../../src/sim_ddr3_wrrd.v
../../../../../../ddr3_ip_inst/fifox64/fifox64.v
==== run the simulation
vsim -novopt -t 1ps work.sim_ddr3_wrrd -l inst1_eval.log\
add wave -position insertpoint sim:/sim_ddr3_wrrd/*
add wave -position insertpoint sim:/sim_ddr3_wrrd/ddr3_wrrd_inst/*
具体命令可以参考modelsim安装目录下的modelsim_se_ref的pdf文档内容。
FPGA技术脚本使用的更多相关文章
- FPGA技术的发展历史和动向
本文关键字:fpga技术,fpga发展, fpga培训,FPGA应用开发入门与典型实例 一.FPGA技术的发展历史 纵观数字集成电路的发展历史,经历了从电子管.晶体管.小规模集成电路到大规模以及超大规 ...
- FPGA技术的一些基本概念(综合、BlackBox)(转)
原文:http://blog.sina.com.cn/s/blog_6254a8ca0100i0wr.html 原文也是转的,哈哈,大家多转转,转转更健康.删除了一些Xilinx的东西 前言 综合是将 ...
- FPGA与数字图像处理技术
数字图像处理方法的重要性源于两个主要应用领域: 改善图像信息以便解释. 为存储.传输和表示而对图像数据进行处理,以便于机器自动理解. 图像处理(image processing): 用计算机对图像进行 ...
- 基于FPGA的XPT2046触摸控制器设计
基于FPGA的XPT2046触摸控制器设计 小梅哥编写,未经许可,文章内容和所涉及代码不得用于其他商业销售的板卡 本实例所涉及代码均可通过向 xiaomeige_fpga@foxmail.com 发 ...
- 【小梅哥FPGA进阶教程】第十一章 四通道幅频相可调DDS信号发生器
十一.四通道幅频相可调DDS信号发生器 本文由山东大学研友袁卓贡献,特此感谢 实验目标 实现多通道可调信号发生器 实验平台 芯航线FPGA核心板.ADDA模块 实验现象 实现基于FPGA的多通道可调信 ...
- 小梅哥FPGA数字逻辑设计教程——基于线性序列机的TLC5620型DAC驱动设计
基于线性序列机的TLC5620型DAC驱动设计 目录 TLC5620型DAC芯片概述: 2 TLC5620型DAC芯片引脚说明: 2 TLC5620型DAC芯片详细介绍: 3 TLC ...
- CPLD VS FPGA
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL.GAL.CPLD等可编程器件的基础上进一步发展的产物.它是作为专用集成电路(ASIC)领域中的 ...
- 基于FPGA的线阵CCD图像测量系统研究——笔记
本文是对基于FPGA的线阵CCD图像测量系统研究(作者:高尚)的阅读笔记 第一章绪论 1. 读读看 读了前面的摘要依然没有看懂作者要做什么.接着往下读....终于看到了一个字眼“基于机器视觉的图像测量 ...
- 7月12日至芯FPGA就业班招生
至芯科技FPGA就业培训班将于2014年7月12日正式开班,届时至芯科技将秉承着一贯的教学传统,为广大师生打造一个专业的技术平台和轻松的学习环境. 在夏宇闻教授的带领下,至芯科技汇聚了一批来自国内外大 ...
- 【小梅哥FPGA进阶教程】第九章 基于串口猎人软件的串口示波器
九.基于串口猎人软件的串口示波器 1.实验介绍 本实验,为芯航线开发板的综合实验,该实验利用芯航线开发板上的ADC.独立按键.UART等外设,搭建了一个具备丰富功能的数据采集卡,芯航线开发板负责进行数 ...
随机推荐
- k8s实战之MySQL单实例部署
前面我们学习了k8s入门系列文章,了解了k8s的一些基础概念以及怎么使用.本篇文章将进行一个小小的实战,使用k8s来部署单机版的mysql数据库,基本涵盖到前面讲到的Namespace.Pod.Dep ...
- C++左值右值完美转发转移
左值(Lvalue)与右值(Rvalue) 英文含义: 左值(Lvalue):Locator value,意味着它指向一个具体的内存位置. 右值(Rvalue):Read value,指的是可以读取的 ...
- notion database 必知必会
notion database 必知必会 用过 mysql 的同学一定很容易上手 notion .在 notion 中,掌握好 database,基本上就掌握了 notion 最核心的概念. noti ...
- 摆脱鼠标系列 - vscode 搜索 自定义快捷键 F1 - 然后F4 搜索 Alt+Shift+回车 跳转到搜索列表 选好后回车进入文件
摆脱鼠标系列 - vscode 搜索 自定义快捷键 F1 搜索 Alt+Shift+回车 跳转到搜索列表 选好后回车进入文件 F1的设置可能在其他贴子了 最新特大好消息 F4 是搜索完的跳转 等于F1 ...
- Kotlin学习快速入门(9)—— 密封类的使用
原文地址: Kotlin学习快速入门(9)-- 密封类的使用 - Stars-One的杂货小窝 代码逻辑中,很多时候我们会需要分支语句,来根据数据的情况走不同的处理逻辑,而密封类就是在这种情况下,方便 ...
- 详解在 centos 中引导到救援模式
详解在 centos 中引导到救援模式 Linux系统CentOS进入单用户模式和救援模式详解 一.概述 目前在运维日常工作中,经常会遇到服务器异常断电.忘记root密码.系统引导文件损坏无法进入系统 ...
- 记录--Vue常问问题整合
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.谈谈你对MVVM的理解? 映射关系简化,隐藏controller MVVM在MVC的基础上,把控制层隐藏掉了. Vue不是一个MVVM ...
- 开发必会系列:hibernate事务
一 事务定义及特性 1.数据库事务的定义:数据库事务(Database Transaction) 是指由一个或多个SQL语句组成的工作单元,这个工作单元中的SQL语句相互依赖,如果有一个SQL语句执 ...
- linux 查询CPU相关信息
1.获取CPU详细信息 cat /proc/cpuinfo 2.查看物理CPU个数 cat /proc/cpuinfo |grep "physical id"|sort |uniq ...
- DW:优化目标检测训练过程,更全面的正负权重计算 | CVPR 2022
论文提出自适应的label assignment方法DW,打破了以往耦合加权的惯例.根据不同角度的一致性和非一致性指标,动态地为anchor分配独立的pos权重和neg权重,可以更全面地监督训练.此外 ...