FPGA学习笔记
Mr_liu_666
keep coding
展开
-
Error: (vlog-7) Failed to open design unit file “d:
Error: (vlog-7) Failed to open design unit file"d:A_2021IC_IEContestFPGALIU22_ethernet_testethernet_testsourceimportssrcutil_gmii_to_rgmii.v" in read mode.原创 2021-05-28 20:57:49 · 2636 阅读 · 2 评论 -
Error: (vlog-7) Failed to open design unit file “d:/ethe
看起来是文件占用或者是命名错误,而事实上,这个就是单纯的找不到文件而已——多半是你给的路径不对,或者是.v文件没有后缀之类的小问题。原创 2021-05-28 20:15:55 · 2096 阅读 · 0 评论 -
‘udp_send_data_length‘ already declared in this scope (mac
意思是说udp_send_data_length信号已经在输入输出端口了,再定义一个这样的reg或者wire,就重名了,具体处理就是reg [15:0] udp_send_data_length1 ;原创 2021-05-28 19:46:06 · 311 阅读 · 0 评论 -
tcl脚本vsim命令的参数列表(纯英文,无注释)
vsim -help# Usage: vsim [options] [[<library>.]<primary>[(<secondary>)]]...# -default_radix radix|radix_flag[,radix_flag...] Set default radix and radix flags.# Specifying just a radix will clear all radi.原创 2021-05-02 21:51:03 · 2587 阅读 · 0 评论 -
HSMC接口简介(上)_HSMC接口用途_HSMC接口外观图_三视图_HSMC接口电压_HSMC接口电气特性_HSMC接口走线长度规则
做设计时需要获取HSMC的具体接口定义,CSDN等网站暂时没有结果,作者在Altera官网(现为Intel FPGA官网)搜索HSMC,获取了HSMC_spec(ification).pdf,现分享我之所得:简介Altera高速中间卡(HSMC)规范定义了基于FPGA的主板的接口的电气和机械属性。各大厂商按照此规范设计FPGA接口都叫HSMC接口,调用标准FPGA库生成的HSMC接口也就肯定符合此spec。...原创 2021-02-21 13:35:29 · 2991 阅读 · 0 评论 -
Matlab中Simulink小白入门初学教程
Simulink是一个和multisim差不多的matlab内置的一个玩意,也就是一个图形化的建模工具,比如产生一个正弦波,将其与一个定值比较,做差的结果积分后示波器显示,就完全可以用Simulink来做。由于本来对mutisim很熟悉,由于任务安排需要看一个simulink仿真的基带传输系统,所以就学习了一下。matlab最讨人喜欢的地方就是它的帮助文件Help写的极其到位:搜索si...原创 2020-02-04 21:10:37 · 60135 阅读 · 2 评论 -
Matlab中Simulink小白入门初学教程(2)
前面已经说过了两个实验,现在说第三个实验:实验3:一个加热器加热屋子的实验,目的是了解如何建模和仿真一个动态系统。最终目的是了解matlab的simulink仿真的流程,是让我们学习如何由设计到公式、分模块、每个模块测试、联调、一直到结合现实数据修正模型的。第一步,设计到公式:首先是设计出来一个系统,然后确定重要的中间变量,用表达式把他们联系起来。比如确定了Troom、mrooma...原创 2020-02-04 21:08:48 · 17588 阅读 · 0 评论 -
Verilog卷积_Conv函数实现_MATLAB卷积_FPGA驱动VGA显示(3)FPGA_Verilog工程
首先做一个稳定色块弹跳的实验,参照 正点原子 的Verilog教程,进行板子的适配,即可做出色块弹跳实验,为了增加趣味,反弹速度我设置为了不均匀的,左上慢,右下快。将卷积结果和每一帧的小方块和外边框位置对应即可,vga_hs是行时钟,每一个周期对应显示器一行,显示的是黑色窄外框(rgb值为0)和蓝色边框(rgb = 31=5’b11111)之后就变成蓝色外框(31),大面积留白(65...原创 2019-12-04 13:39:36 · 1397 阅读 · 1 评论 -
Verilog卷积_Conv函数实现_MATLAB卷积_FPGA驱动VGA显示(2)Verilog
可以先编写不可综合的仿真用Verilog,然后再写可综合的,如果技术卓越,可以跳过这步:卷积的长度是不确定的,比如MATALAB里面的CONV函数,输入多长的都行,但是需要提前输入一整个向量(数组),那么长度也就是定下了:我写的MATLAB卷积函数也是有测长度的:https://blog.csdn.net/Mr_liu_666/article/details/103372145但是实际用F...原创 2019-12-03 20:15:10 · 1770 阅读 · 4 评论 -
Verilog_initial里面的语句能综合吗?如何写自reset的可综合代码
不一定能综合:initialbegin CONV_iData0 = 8'h01; CONV_iData1 = 8'h01;end综合之后用RTLViewer一看:根本没有连接,但是在用上以下的操作之后:parameter Rst0State = 2'b00;parameter Rst1State = 2'b01;parameter WorkState...原创 2019-12-03 20:10:36 · 3919 阅读 · 0 评论 -
Verilog卷积_Conv函数实现_MATLAB卷积_FPGA驱动VGA显示(1)MATLAB
看了奥本海姆的信号与系统的卷积和之后就想用FPGA实现一下,首先用MATLAB仿真,MATLAB有现成的卷积函数,用输入变量un卷积xn相当于xn通过一个累加系统。卷积是倒序乘累加,但是如果看成两个多项式相乘相乘对象系数就是卷积对象,相乘结果系数就是卷积结果。以下是输入函数xn,系统函数hn(取un),xn累加结果,MATLAB自带卷积函数,我写的卷积函数的结果图:输入xn是单位阶跃函数u...原创 2019-12-03 17:25:46 · 1388 阅读 · 0 评论 -
Error (12006): Node instance "signaltap0" instantiates undefined entity "sld_signaltap". 解决
首先参照这一篇:http://www.mamicode.com/info-detail-2252459.html我就是重装quartus解决的,但是如果没有更好的方法我也不会再显摆一下hhhhh:提示说如果加个entity就好了,我试着加过,不过依旧报错,因为entity的名字不对,应该改成这样:好了。...原创 2019-12-02 00:05:39 · 8222 阅读 · 0 评论 -
Non-blocking assignment in function is illegal_near "end"( endmodul): syntax error, unexpected end.
函数里面必须阻塞赋值。函数有endfuction task有endtask case有endcase,不能忘掉原创 2019-11-09 13:04:10 · 914 阅读 · 0 评论 -
reg和integer可以相乘吗_'factorial' already exists; must not be redefined as a function.
reg和integer可以相乘,不过integer默认有符号,并且相乘之前不要忘了初始化reg名不可同函数名,函数返回值无法被初始化,不过可以在函数内部初始化function [47:0] factorial;input [15:0] a2;begin error = 1'b0; c = 1'b0; factorial = 48'h0000_0000_0000;//函数内...原创 2019-11-09 12:59:53 · 410 阅读 · 0 评论 -
夏宇闻verilog第十章答案_练习六
源码:module functions( a, b, clk, rst, error, sel );input [15:0] a;input [1:0] sel;input clk,rst;output [47:0] b;//只满足了立方,阶乘可能越界,设置一个错误位output error;parameter callsqu...原创 2019-11-09 12:53:27 · 410 阅读 · 0 评论 -
夏宇闻verilog第十章答案_练习五
源码:module sel8_1( a0, a1, a2, a3, a4, a5, a6, a7, b, sel );input [3:0] a0,a1,a2,a3,a4,a5,a6,a7;input [2:0] sel;output [3:0] b;reg [3:0] b;// reg [3:0] c;// c ...原创 2019-11-07 15:35:35 · 454 阅读 · 0 评论 -
夏宇闻verilog第十章答案_练习四
源码:module blocking_non_blocking( a, b, c, clk, sel );input clk;input [1:0]sel;input [3:0]a;output [3:0]b,c;reg [3:0]b,c;always@(clk)begincase(sel)2'b00:blocking0;2'b01...原创 2019-11-07 15:33:25 · 385 阅读 · 0 评论 -
verilog中reg只能在always块内使用_always块能只能用reg
reg只能用在always块内:尝试在modelsim中编译:reg [3:0] c;c <= 4'b1100;//报错如第一张图reg [3:0] c;c = 4'b1100;//报错如第二张图always块内只能用reg:大体来说,reg和wire类似于C、C++的变量,但若此变量要放在begin...end之内,则该变量只能是reg型;在begin......转载 2019-11-07 15:29:11 · 4748 阅读 · 0 评论 -
Verilog中使用连续@posedge会是什么现象,是否可综合
连续@posedge是可以综合,如果后面是阻塞赋值,会出现以下现象:这部分是源码中的执行部分:@(posedge clk) b = a;@(posedge clk) c = b;$display("blocking2 a = %b b = %b c = %b",a,b,c);@(posedge clk)begin c = b; b = a; $display("b...原创 2019-11-07 15:28:17 · 7509 阅读 · 0 评论 -
夏宇闻verilog第十章答案_练习三
源码:module wavegene( clk_in_10M, clk_out, reset );input clk_in_10M,reset;output clk_out;reg clk_out2;reg [8:0] cnt;//需要计数300次即可,512即可assign clk_out = clk_out2;always @(posedge cl...原创 2019-11-06 15:45:01 · 403 阅读 · 0 评论 -
夏宇闻verilog第十章答案_练习二
注意,最开始一定要reset一下,否则输出时钟没有初始值,一直都是X。原书写法(修改了一下,尝试了一下forever):源码:module div2( clk_in, clk_out, reset );input clk_in,reset;output clk_out;reg clk_out;always @(posedge clk_in or p...原创 2019-11-06 15:20:32 · 408 阅读 · 0 评论 -
夏宇闻verilog第十章答案_练习一
内容经过我的仿真和测试,若有错漏,请留言指出!源码:module Com(a,b,out);input [7:0] a,b;output out;assign out = (a > b)? 1:0;endmodule测试代码:`timescale 1ns/1nsmodule com8;reg [7:0]a,b;wire out;initialbegi...原创 2019-11-06 14:53:53 · 400 阅读 · 0 评论 -
同一个module里面多个initial是并行的吗
同一个module多个initial是并行的,都从0时刻开始,可以综合,但是可能会没用。https://blog.csdn.net/liming0931/article/details/7039680转载 2019-11-05 09:00:29 · 3001 阅读 · 0 评论 -
casex内部有无顺序_“?”在veilog表示高阻态_modelsim启动仿真之后再修改源文件不再需要重新编译仿真啦
关于casex内部有无顺序,有顺序,顺序选择第一个写的的:测试源码:`timescale 10ns/10nsmodule casex0;reg A = 1'b0;reg B = 1'b0;integer i = 1'b0;reg [4:0]ADDR = 5'b0x000;alwaysbegin for(i = 0;i < 3;i = i+1) begin...原创 2019-11-02 17:59:23 · 495 阅读 · 0 评论 -
RGB565_VGA显示边缘模糊_FPGA控制VGA显示图片边缘模糊
常规FPGA显示图片都是JPG转mif放在ROM然后显示,但是我遇到了如下的问题:显示色块边缘模糊且错误:原因是jpg是压缩的格式,边缘在解压的时候会出现问题。只需要把jpg提前转换成24色(或者其他数量的)bmp就行了。修改后效果:...原创 2019-10-29 20:20:56 · 940 阅读 · 0 评论 -
FPGA驱动VGA显示器_VGA电阻匹配网络法_VGA彩条实验_VGA彩条flowing_VGA显示器时序图_VGA显示器原理_verilog_源码_testbench_现象
VGA电阻网络分压法硬件电路:https://blog.csdn.net/mr_liu_666/article/details/102761178首先给出各部分的源码,有兴趣的朋友可以去下面看VGA的原理。先是VGA驱动模块://学习&参考源:正点原子、开拓者FPGAmodule vga_driver( input vga_clk, /...原创 2019-10-27 11:48:45 · 1582 阅读 · 0 评论 -
FPGA、MCU(stm32&51)驱动VGA显示器_电阻分压法硬件设计_VGA电阻网络分压
常见的显示屏(LCD TFT之类的)驱动数据线一般都是16bits,RGB565的,VGA不一样,它就5根有意义的线,别的都是地线(图中的地址码0 1 2 3没有使用):VGA显示器在市面上流通很久了,集成度很高,集成好了的东西一般都有成型的驱动模块,比如ADV7123:太贵了,算了算了。这里VGA和FPGA(stm32或51)的连接采用一种结构更简单的方法,...原创 2019-10-27 08:25:36 · 5381 阅读 · 4 评论 -
Error (10029): Constant driver at beep_control.v(56)解决.Can't resolve multiple constant drivers
如下的源码便宜的时候报错 :always @ (posedge sys_clk) begin if(!sys_rst_n) beepcnt <= 4'b0;//错误在这里 else if(beepflag == 1) begin if(beepcnt >= 16'd45_000) //if(beepcnt > 4'd5) beep &l...原创 2019-10-15 20:39:46 · 5194 阅读 · 0 评论 -
ModelSim仿真时钟波形一直是不定态(X状态,值为X)
在initia里面必须给时钟赋初始值,注意:这样儿不叫初始值initial begin#1sys_clk <= 'b0;#1sys_rst_n <= 'b1;end这样儿才叫初始值initial beginsys_clk <= 'b0;sys_rst_n <= 'b1;end必须得把0时刻的值给出来,否则always里面来回跳转,是...原创 2019-10-12 11:17:25 · 8285 阅读 · 0 评论 -
FPGAverilog呼吸灯_全流程Verilog开发_C语言设计仿真_C到Verilog转化_Testbench+Verilog的modelsim仿真_Verilog编译综合生成流文件_上板子调试
完整的FPGA Verilog开发包括:C语言设计仿真,C到Verilog转化,Testbench+Verilog的modelsim仿真,Verilog编译综合生成流文件,上板子调试的所有步骤,而不只是verilog直接设计,否则排错难,编译慢,适合小的系统,可能一下子就出来了也可能卡住了很久都出不来,以上的处理方法能做到开发稳定,很少出错。这次自己做了一个呼吸灯Verilog工程,逻辑不复杂...原创 2019-10-10 17:39:59 · 1039 阅读 · 0 评论 -
quartus18的programmer器件只有FLASH没有EP4C之类的
18这一版把各种方式分开了,下拉菜单选择即可原创 2019-10-06 09:25:53 · 775 阅读 · 0 评论 -
CreateProcessfailed,Command : 'E:\Keil5\…'stm32编译例程不通过 KEIL5 OPtions for target After Build/rebuild
学习FPGA的时候,我们选择了一款“古典的”板子,黑金iBoard电子学堂,东西很好,但是想尝试往ARM里面烧录的时候,弹出了这一句错误提示:After Build - User command #1: 'E:\Work\…………'*** Error: CreateProcess failed, Command: 'E:\Work\…………'".\Obj\iBoard_demo.axf"...原创 2019-04-20 15:26:14 · 2659 阅读 · 0 评论 -
quartusII与modelsim联合仿真流程与问题(VHDL)
原先在学校的学习的EDA设计课程里面使用的是quartusII9.0是自带仿真器的,使用起来十分方便,但是现在自己开发的时候使用了12.1,不含仿真器,需要安装modelsim并和quartusII绑定:安装quartusII,破解,安装modelsim,破解,注意,不要忘记在Win32文件夹下运行EXE破解破解软件的时候,一定要去掉mgls.dll文件的只读属性,要不就白忙活了。之后在q...原创 2019-03-28 17:59:55 · 2963 阅读 · 5 评论