FPGA的一些细节(持续更新)
1.一个工程所在的文件夹,从开始路径到最终路径都要以英文命名,否则会编译出错;
2.如何在Quartus中查看用硬件描述语言生成的模块图? 具体操作为:Tools > Netlist Viewers > RTL Viewer;这便是硬件描述语言的精妙之处:用语言来描述硬件,甚至生成硬件;(这里我们举一个分频器的例子)
代码如下:(粘贴过来供大家参考),生成的模块图如下所示:
module div_clk(clk,rst,clk_out);parameter HW = 3; //分频输出时钟高电平宽度为3个输入时钟周期parameter LW = 2; //分频输出时钟低电平宽度为2个输入时钟周期input clk,rst; //输入时钟,复位信号output reg clk_out; //分频输出时钟reg[31:0] count; //分频控制计数器reg state; //状态寄存器always@(posedge clk or negedge rst)beginif(!rst) //异步复位begin clk_out <= 1'b0;count <=0;state <=0;endelsecase(state)0:if(count < LW-1) //时钟低电平宽度控制begincount <= count+1;state <= 0;endelsebegin //当计数值等于LW时状态转移,同时输出反转count <= 0;clk_out <= 1;state <= 1;end1:if(count < HW-1) //时钟高电平宽度控制begincount <= count+1;state <= 1;end elsebegin //当计数值等于HW时状态转移,同时输出反转count <= 0;clk_out <= 0;state <= 0;enddefault:state <= 0;endcaseend
endmodule
3.代码编译通过,测试代码写完后,如何自动仿真? 具体操作有些麻烦,这里我们用图示的形式:(确定测试代码是xx_tb)
①.Assignments > Settings >
②.开始进去是这样的:(注意画框的地方)
③.Simulation > 之后前两处对应修改,在NativeLink setting 中选择Coplile test bench > Test Benches…>New > 对应下图填写 (具体的测试文件,一定要是xx_tb,tb结尾),>> 点击 箭头执行的添加测试文件进来;>>注意最后点add;完成页面如下图所示:紧接着一路ok;
④.Tools > Run Simulation Tools > RTL Simulation ,即可实现自动调用Modelsim 仿真。
4.占空比如何理解? 占空比的定义:在一段连续工作时间内脉冲占用的时间与总时间的比值;也就是指在一个脉冲循环内,通电时间相对于总时间所占的比例。占空比(Duty RaTIo)在电信领域中有如下含义:例如:脉冲宽度1μs,信号周期4μs的脉冲序列占空比为0.25。
5.做VGA实验,分配完管脚后全编译出现以下错误:
{Error (176310): Can’t place multiple pins assigned to pin location Pin_101 (IOPAD_X34_Y18_N21)
Info (176311): Pin vga_b[0] is assigned to pin location Pin_101 (IOPAD_X34_Y18_N21)
Info (176311): Pin ALTERA_nCEO is assigned to pin location Pin_101 (IOPAD_X34_Y18_N21)}
出现这样错误的原因是:由于Pin_101是一个多功能管脚,还有一个功能是nCEO,也是默认的功能。如果要用它作普通I/O口,需要提前设置以下;具体解决方法为:assignments>device>device and pin options>dual-purpose pins里面把nCEO设置成use as regular i/o就可以了。
6.编译完成后,如何分配管脚?具体操作为:Assignments>Pin Planner,之后进去下图页面
画框的地方也就是Location这一列,就是我们要分配管脚的地方,具体的板子对应的I/O口引脚我们可以查看板子的脚本文件获得,对应填入即可,完成之后,重新全编译,具体的下载固化流程详见上篇文章FPGA之固化程序(注意在分配管脚之前,一定要选正确芯片的型号!)
7.调用Modelsim,出现error loading design错误,明明每一个设计文件都编译通过,就是无法仿真,出不来波形,很是愁人。好在经过一番摸索,找到了解决办法,出现这种错误我们可以从以下几个方面去找错误:
1.检查文件是否未被包含且未加入工程。
2.检查设计文件的端口声明与实例化时的端口是否一致。
3.检查设计文件的模块名是否与实例化时的模块名一致。
4.检查未在顶层文件中修改的端口是否为wire
FPGA的一些细节(持续更新)相关推荐
- FPGA极速入门(持续更新)
第一章:VERILOG速览 关于参数与符号: 1.1 数值表示:以8'b10_110_110为例,8指的是位宽,b指的是数据类型为2进制,可以用下划线或者空格作数值分隔,不影响数值大小.此外,字符串类 ...
- 2022校招 复旦微电子 FPGA开发笔试卷(持续更新...)
写在最前面 答案只是自己查阅资料后所写,不一定正确,欢迎大家留言讨论 文章目录 [客观题 | 20道单选题] 1. 通用的高级程序设计语言一般都会提供描述数据.运算.控制和数据传输的语言成分,其中控制 ...
- Objective-C Reflection(Objective-C 反射机制)实用随笔笔记(持续更新)
前言:本篇文章就"Objective-C 反射机制"使用方面进行叙述,不会涉及太多理论论述,因为"Objective-C 反射机制"理论论述在网上搜索一大把,本 ...
- Dataset:数据集集合(CV方向数据集)-常见的计算机视觉图像数据集大集合包括表面缺陷检测数据集(持续更新)
Dataset:数据集集合(CV方向数据集)-常见的计算机视觉图像数据集大集合包括表面缺陷检测数据集(建议收藏,持续更新) 目录 CV常用数据集平台集合 Mendeley Data CAISA-Web ...
- DL之CNN:关于CNN(卷积神经网络)经典论文原文(1950~2018)简介总结框架结构图(非常有价值)之持续更新(吐血整理)
DL之CNN:关于CNN(卷积神经网络)经典论文原文(1950~2018)简介总结框架结构图(非常有价值)之持续更新(吐血整理) 导读 关于CNN,迄今为止已经提出了各种网络结构.其中特别 ...
- 多项式全家桶学习笔记【持续更新】
本文完成的时间跨度较长,文风变化可能较大-- 最近更新于2020年2月17日 Part 1.主线 乘法 前面讲过FFT 然而FFT常数感人,适用范围还窄,比如不能取模 于是有了NTT 其实就是取模的F ...
- Java日常错误及需要注意细节,持续更新......
记录日常工作中一些容易被忽视的错误及细节,持续更新...... 一.问题:HashMap<Long, String>中,用get(Integer key)取不到值 Map<Long, ...
- 架构师学习笔记(持续更新)
1.此博客所有内容均出自于咕泡学院架构师第三期课程. 2.此博客整理了我所学习的课程的所有笔记链接. 3.此博客会持续更新新的博客链接,直到课程学习完. 4.此博客仅供参考,仅作为学习使用. 设计模式 ...
- 我喜欢的句子(持续更新)
#自己挺喜欢的句子(持续更新) 2017 04 19 整理 真爱,不是费尽心思讨好,而是一见面就会笑. 忙的人,没心思议论别人,过得好的人,没心情在意别人的评价. 爱对一个人,人生就等于做对了大部分的 ...
- 分享大神的一些博文、视频、资料--持续更新
心理学家 Ericsson 的研究发现:决定伟大水平和一般水平的关键因素,既不是天赋,也不是经验,而是[刻意练习]的程度. 教育最重要的不是灌输,而是引发思考.这样的话就没有必要按时间顺序,介绍很多细 ...
最新文章
- Task01:青少年软件编程(Scratch)等级考试模拟卷(一级)
- mysql可以运行计时_mysql的event schedule 计时执行
- Spring MVC在参数绑定前通过Filter过滤器改变请求参数的值
- Linux下网络流量实时监控工具大全
- socket阻塞和非阻塞的区别
- Redis中的客户端重定向
- Nmap系列C------OSI二层扫描
- 计算机出现黑屏问题方法派出,电脑重装系统开机常见黑屏问题的解决方法
- 几道和「堆栈、队列」有关的面试算法题
- 目标检测(Object Detection)
- 用python写脚本控制电脑息屏唤醒_Python制作小脚本,一键可以让你同事的电脑在你指定时间关机...
- Evasion Attack in Adversarial Machine Learning
- 马哥2018linux课程目录,马哥教育2018年Linux第30期视频教程
- PySide6官方教程 循序渐进学好Qt for Python
- Xbrowser远程RHEL5.5
- 每日一诗词 —— 将进酒
- 2012文件服务器 读写日志,管理用户访问日志记录记录
- 立创EDA的元件库导入AD
- UNIX环境高级编程源码
- Node微服务之Seneca的使用