fpga我来了
只是有点小怂
本职工作是电子工程师,其他都是业余爱好
展开
-
Quartus报错Error (170040): Can‘t place all RAM cells in design Info (170034)的解决办法
做VGA图像显示实验时报错Error (170040): Can’t place all RAM cells in design Info (170034) ,我的问题在于写入RAM的图片过大,将图片尺寸修改为50x50后转为MIF文件,重新写入RAM可以从Flow Summary中查看使用了多少存储,EP4CE6F17C8这款芯片最大只有270KBits,即270KB...原创 2022-04-18 20:08:42 · 1798 阅读 · 0 评论 -
黑金AX310开发板 CP210x USB to UART Bridge Controller 驱动安装
使用黑金AX310开发板做串口实验,但是COM一直打不开,在其他设备中CP210x一直显示黄色叹号尝试使用野火工具包中的CH340安装驱动,不管用,直接搜索CP2102N USB to UART Bridge Controller找到这篇博文CP2102 USB to UART Bridge Controller 驱动安装(windows or Ubuntu)https://blog.csdn.net/qq_34935373/article/details/107228053,对其中细节稍作改动驱动.原创 2022-04-14 20:36:49 · 2809 阅读 · 2 评论 -
modelsim仿真ROM IP数据输出为0的解决办法
解决办法:把mif文件放在根目录下,和文件夹db同一级,File name就会直接显示这个文件名字总结主要问题应该还是出在文件路径主要参考这篇博客 FPGA的ROM-IP核配置问题 https://blog.csdn.net/weixin_41059920/article/details/89841835参考博客 modelsim仿真ROM IP核没有输出数据问题如何解决https://blog.csdn.net/weixin_44939178/article/details/111928005.原创 2022-04-06 20:28:44 · 1238 阅读 · 0 评论 -
Quartus17报错Top-level design entity “dff“ is undefined的解决办法
报错原因没写但可以根据上一条警告可以知道,和Quartus中dff模块(primitive)冲突了解决办法:修改顶层文件名字,并设置为顶层文件,再重新编译同步复位D触发器的RTL视图module dff_syn( input wire sys_clk, input wire sys_rst_n, input wire key_in, output reg led_out);always@(posedge sys_clk) if(sys_rst_n == 1'b0) .原创 2022-03-28 17:35:37 · 4763 阅读 · 0 评论 -
Quartus17下载程序进FPGA
点击菜单栏的Programmer(上面有下载线),显示连接USB-Blaster,点击Start就开始下载程序,成功显示100%原创 2022-03-26 23:17:10 · 888 阅读 · 0 评论 -
Quartus17打开RTL视图
右下进度图展开框展开Analysis & Synthesis下的Netlist Viewers,点击RTL Viewer就可以查看RTL视图原创 2022-03-26 21:58:57 · 2452 阅读 · 1 评论 -
Quartus17下使用Modelsim10进行仿真
可以在新建工程Simulation中选择Modelsim编写完仿真文件后,Assignments点击Settings点击Simulation,之前创建工程下选择仿真工具Modelsim后这里直接选择Test Benches点击New可以先添加事先写好的tb文件(记得点Add然后文件出现在下面那个框里),再把tb名字复制进去,设置仿真时间1us后点OK点击OK点击Apply后再点OK(直接点击OK之前都白设置了)先点蓝色箭头编译一下,再进行仿真.原创 2022-03-26 20:59:46 · 600 阅读 · 0 评论 -
Quartus17绑定管脚Pin Planner
直接在菜单点击Pin Planner或者Assignments -> Pin Planner原创 2022-03-26 17:02:39 · 1831 阅读 · 0 评论 -
Quartus17运行仿真RTL Simulation
仿真按键下面有个波形,Quartus13应该是在开始Run Compilation按键旁边Tools -> Run Simulation Tool -> RTL Simulation原创 2022-03-26 16:52:27 · 1303 阅读 · 0 评论 -
Quartus17查看安装的器件Assignments -> Devices
Assignments -> Devices吐槽一下这么多年了Altera还是Cyclone Ⅳ原创 2022-03-26 16:37:35 · 1139 阅读 · 0 评论 -
Digilent提供的Pmod AD1驱动程序
在github上下载Digilent提供的IP核,在路径\ip\Pmods下找到PmodAD1点进去\drivers\PmodAD1中examples是main主程序/******************************************************************************//* *//* mai.原创 2021-04-29 23:47:01 · 389 阅读 · 0 评论 -
pmod ad2 digilent 提供的pmodad2.c和pmodad2.h
配合原理图服用PmodAD2.h/******************************************************************************//* *//* PmodAD2.h -- Driver definitions for the PmodAD2 .原创 2021-04-18 17:28:29 · 246 阅读 · 0 评论 -
basys3利用microblaze连接Pmod ad2
点击➕添加microblaze点击Run Block Automation把Local Memory设置为128KB切到Boards添加系统时钟,这步也可以先做添加USB UART双击这个模块在IP Configuration下修改波特率为115200添加IP库选择JB连接AD2点击Run Connetion Automation,全选后点OK点击刷新符号进行整理布局如下Sources下右键BD文件点击Create HDL Wrapper生成顶层文件点击生成比特流并.原创 2021-04-18 17:24:43 · 494 阅读 · 0 评论 -
vivado和modelsim联合仿真实现奇分频
代码来自以下视频并做了适当修改,老师讲得好像有点问题,有空再研究添加了复位模块两个计数器都是计数到4翻转,是五分频,一个是上升沿一个是下降沿最后实现得是在下降沿翻转而不是上升沿 FPGA分频器的设计 module div5( input clk, input rst, output div5 ); reg div0,div1.原创 2021-04-13 21:11:40 · 285 阅读 · 0 评论 -
vivado和modelsim联合仿真实现占空比1:15的分频
上一讲我们看了偶数分频 vivado和modelsim联合仿真实现偶分频,只需要在clk计数到一半时进行翻转即可,这是占空比为50%的情况,如果占空比任意数值就需要重新设计16需要从0计数到15=4’b1111刚好再进一位为10000,后4位依然为0,所以不需要计数到15时进行清零操作,我修改了一下课件上的代码添加清零操作让它更符合常理module div1_15( input clk, input rst, output reg clk16 ); ..原创 2021-04-13 19:37:45 · 586 阅读 · 0 评论 -
vivado和modelsim联合仿真实现偶分频
首先创建一个工程,因为不在硬件上实现所以芯片型号随便选一个就行创建design文件div6.v,代码来源于以下视频,稍作修改。在复位时给输出信号clk6赋值为0,不然输出不确定判断条件cnt为10进制数2 2'd2module div6( input clk, input rst, output reg clk6 ); reg [1:0] cnt; always @(posedge clk or posedge rst) begin .原创 2021-04-13 17:34:23 · 402 阅读 · 0 评论 -
vivado和modelsim联合仿真实现分频器——2的n次方分频
首先创建一个工程,因为不在硬件上实现所以芯片型号随便选一个就行创建design文件,代码来源于以下视频 FPGA分频器的设计 module fenpin_2_pow_n( input clk, input rst, output clk2, output clk4, output clk8, output clk16 ..原创 2021-04-12 00:07:44 · 2347 阅读 · 0 评论 -
zynq创建ramip核
新建一个工程打开IP Catalog,搜索ram,找到Block Memory Generator选择配置类型为单端口修改写数据位宽为32接着点击OK生成即可打开veo模板文件,红色代表IP核还在生成中可以把对应代码拷贝进顶层ip_ram.v文件就可以驱动ip核了//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAGblk_mem_gen_0 your_instance_name ( .cl.原创 2021-04-11 18:57:10 · 400 阅读 · 0 评论 -
basys3利用microblaze连接Pmod OLEDrgb
参考教程 Digilent Pmod乐高积木式传感器—Pmod OLEDrgb 教程首先要导入basys3的板卡文件,这样方便连接Pmod vivado2018.3根据板卡Boards直接创建工程(比如basys3和Arty A7)首先导入Pmod IP核,这可以在gayhub下载zip文件 https://github.com/Digilent/vivado-library,解压后把整个master文件添加至工程 vivado2018.3添加IP库注意是这整个project..原创 2021-04-11 00:02:47 · 833 阅读 · 1 评论 -
[Common 17-39] ‘connect_bd_intf_net‘ failed due to earlier errors. 的解决办法
连接pmod时按照教程点击Connetor JB连接pmod out时死活连不上,按理说应该是如下图的pmod out连接出来到jb接连报了两个错误 [BD 5-106] Arguments to the connect_bd_intf_net command cannot be empty 和 [Common 17-39] ‘connect_bd_intf_net’ failed due to earlier errors.点击综合还是生成顶层文件依然报错仔细分析觉得可能少了接..原创 2021-04-09 23:58:55 · 4520 阅读 · 0 评论 -
vivado2018.3添加IP库
Settings->IP->Repository点击➕添加库,把地址复制进去或直接选择,等待刷新一下后点OK可以点IP Catalog查看IP原创 2021-04-09 20:27:18 · 2407 阅读 · 2 评论 -
zedboard板子上呼吸灯的实现(第一版)仿真代码的实现
为了便于仿真的实现,定义周期数值period_cnt缩小为50,每次改变的数值duty_cycle定义为5,这两个数值本来可以定义在参数中,懒得重写代码直接修改了数值。module breathe_led( input clk, // 时钟信号 input rst, // 复位信号 output wire led ); // reg define reg [16:0] period_cnt; // 周期计数器 1khz = 1ms .原创 2021-04-06 23:25:58 · 175 阅读 · 0 评论 -
vivado2018.3和modelsim10.6d进行联合仿真
首先确认modelsim的型号是否在modelsim10.6c及以上,没有需要重新安装问题分析 ERROR: [Vivado 12-5602] compile_simlib failed to compile for modelsim with error in 8 libraries (cxl_error.log)我用modelsim10.1c进行编译 (Vivado下进行Compile Simulation Libraries )时报错,后来我想了一下,之前好像配置了modelsim和IS.原创 2021-04-02 20:56:31 · 6532 阅读 · 1 评论 -
zedboard实现流水灯
50MHz 4个灯闪烁的效果module water_led #( parameter CNT_MAX = 25'd24_999_999 )( input wire sys_clk, input wire sys_rst, output reg [3:0] led_out); reg [24:0] cnt = 25'd0; reg cnt_flag = 0; always @(posedge sys_clk or posedge .原创 2021-04-01 23:59:40 · 418 阅读 · 0 评论 -
zedboard板子上呼吸灯的实现(第一版)
这是原始代码时钟信号为50MHzmodule breathe_led( input clk, // 时钟信号 input rst, // 复位信号 output led ); // reg define reg [15:0] period_cnt; // 周期计数器 1khz = 1ms 1_000_000ns / 20ns(50mhz) = 50_000(16位二进制) reg [15:0] duty_cycle;.原创 2021-03-23 22:52:15 · 183 阅读 · 0 评论 -
fpga小项目1:两个灯交替闪烁
module breathe_led( input clk, input rst, output [1:0] led); reg [26:0] cnt = 27'd0; assign led = (cnt < 27'd50_000_000)?2'b10:2'b01; always @(posedge clk or posedge rst) begin if(rst) cnt <= 27'd0;原创 2021-03-23 22:11:45 · 1339 阅读 · 0 评论 -
vivado根据语言模板定义一般IO的管脚约束文件xdc
右栏flow navigator点击language templates在xdc下查找模板,管脚定义为IO Pin Assignment,把preview里的语句粘贴进xdc文件,修改<pin name>为板子上的管脚,<port>为语言里的端口设置电平为IOSTANDARD设置电平为CMOS3.3VLVCMOS33,* 为通配符可以少写两个字set_property PACKAGE_PIN U14 [get_ports led[0]]set_pr..原创 2021-03-05 22:30:46 · 2919 阅读 · 1 评论 -
使用 Xilinx Documentation Navigator 查看官方文档
zynq开发时在block design界面希望简单了解一下GPIO IP使用,双击编辑IP,点击Documentation便可进入 Xilinx Documentation Navigator查看界面,下载文档了解GPIO最基本使用方法Xilinx Documentation Navigator 简称docnav,在搜索栏直接输入docnav便可以打开打开官网链接可以看见视频简单介绍了DOCNAV的使用,地址 https://www.xilinx.com/support/documen..原创 2021-03-05 20:49:38 · 4983 阅读 · 0 评论 -
配置vivado用vscode编辑文本
Tools 下打开 Settings打开 Custom Editor 进行配置输入D:\Microsoft VS Code\code.exe [file name] -l[line number]第一部分为vscode打开的路径,第二部分为粘贴的红色框部分原创 2021-03-03 22:08:43 · 702 阅读 · 1 评论 -
Quartus中Tools->Netlist Viewers->RTL Viewer
分析综合后打开RTL ViewerTools->Netlist Viewers->RTL Viewer原创 2020-09-09 11:09:40 · 1739 阅读 · 1 评论 -
basys3芯片型号xc7a35tcpg236-1
vivado环境下创建新工程每次输入型号很麻烦,记录一下xc7a35tcpg236-1原创 2020-08-25 10:08:35 · 2244 阅读 · 1 评论 -
记录‘launch_simulation‘failed due to earlier errors的一个解决方法
仿真时报错,因为仿真代码出错 wire类型变量写成 reg原创 2020-08-24 16:50:32 · 11828 阅读 · 0 评论 -
AD19解决复制粘贴后Designator出现问号的问题——需要更改设置
Tools →\rightarrow→ Preferences对比原创 2019-10-29 09:30:19 · 3246 阅读 · 0 评论 -
关于BASYS3给初学者的建议(有关引脚的书写
写引脚约束时,板子上也有标志,但这些标志往往比较小,直接对着看的话不仅费时费力而且还容易出错,这时就要找开发文档对着看,第一张图比较常用...原创 2019-10-18 12:01:22 · 8136 阅读 · 1 评论 -
五分钟快速过完Verilog HDL基本概念(1)
节选自老师PPT原创 2019-09-06 14:28:48 · 732 阅读 · 1 评论 -
五分钟快速过完Verilog HDL基本概念(2)
Verilog 用于模块的测试如何检查上述例子其功能是否正确?需要有测试激励信号输入到被测模块需要记录被测模块的输出信号需要把用功能和行为描述的Verilog模块转换为门级电路互连的电路结构(综合)。需要对已经转换为门级电路结构的逻辑进行测试(门级电路仿真)。需要对布局布线后的电路结构进行测试。(布局布线后仿真)。Verilog HDL基本结构Verilog HDL程序是由...原创 2019-09-06 14:38:11 · 371 阅读 · 0 评论 -
五分钟快速过完Verilog HDL基本概念(3)语法讲解
Verilog HDL逻辑功能定义1.在Verilog 模块中有3种方法可以描述电路的逻辑功能:用assign 连续赋值语句,常用于描述组合逻辑assign x = ( b & ~c );用元件例化(instantiate)and myand3( f,a,b,c);// 门元件例化/*and 门元件关键字; myand3例化元件名*/注1:元件例化即是调用Verilog...原创 2019-09-06 14:53:23 · 945 阅读 · 0 评论 -
五分钟快速过完Verilog HDL基本概念(4)代码的编写标准
每个Verilog HDL源文件中只准编写一个顶层模块,也不能把一个顶层模块分成几部分写在几个源文件中。若一个源文件中有多个模块,则其中只能有一个顶层模块(其名与文件同名),其它为子模块;而且应在顶层模块中对子模块进行例化。源文件名字应与文件内容有关,最好与顶层模块同名!源文件名字的第一个字符必须是字母或下划线,不能是数字或$符号!每行只写一个声明语句或说明。源代码用层层缩进的格式...原创 2019-09-06 14:58:11 · 610 阅读 · 0 评论 -
五分钟快速过完Verilog HDL基本概念(5)数据类型
数据类型数据类型是用来表示数字电路中的数据存储和传送单元。Verilog HDL中共有19种数据类型;其中4个最基本的数据类型为:integer型parameter型reg型wire型其它数据类型:large型、medium型、 scalared型、 small型、time型、tri型、tri0型tri1型、triand型、trior型、trireg型、vectored型、wan...原创 2019-10-12 09:32:57 · 1079 阅读 · 0 评论 -
fpga从入门到放弃(一)基于vivado2018环境开发板Artix 7系列BASYS3(更新中)
开发板资料在网上搜索BASYS3即可查到一个很简单的项目上手(按键控制灯的亮灭),主要练习vivado的使用主界面新建工程给工程取名,注意不要带空格,next首选项creat file语言类型我们练习Veirlogconstraits稍后添加,next- 在搜索框搜索,选择器件,next可以看到界面是很好看的双击打开觉得界面太小也可以选择让窗口悬浮...原创 2019-09-20 17:30:11 · 5256 阅读 · 1 评论