随笔分类 - FPGA
摘要:在FPGA中应该使用同步逻辑,工作频率的控制不应该采用“时钟分频”,而使用“时钟使能“,并尽量让所有模块使用同一个时钟。 为了产生XKHz的使能信号,可采用一个模可设置的计数器对时钟计数。
阅读全文
摘要:简单的介绍一下VGA的驱动时序 1、不同的时钟有不同的时序要求,通过上表选择不同的参数 HSYNC 是水平同步信号,VSYNC是行同步信号 可以通过上图大致了解水平同步(帧)信号一行扫描结束之后,行同步信号才进行扫一次,从左上角的一个像素 一直扫到右下角的最后一个像素,不断刷新。 行同步信号和帧同步
阅读全文
摘要:最近发现一个问题,就是用1S钟的下降沿信号进行锁存时间,下降沿触发。用一个always块是没问题的,但是当用两个always块也就是锁存两次 时间的时候出错,后来发现不应该用寄存器驱动,搜了一下网上的资料,发现最好用全局时钟进行驱动,因为全局时钟引脚直接连接到每一个寄存器 ,也就是到达每一个寄存器的
阅读全文
摘要:最近尝试了很多方法测量占空比,虽然说原理简单,但是测量的时候误差还是挺大的,凡是没呢么容易, 最后终于实现了1HZ-5M 占空比的测量,精度小于%0.1 另外发现了一个问题,fpga一条语句如果很复杂的话,可能会出现问题。 例如 assign duty_altera = pinlv << 1 + p
阅读全文
摘要:最近用verilog写了一个检测占空比的程序,意外的发现,在sigtab仿真中,部分边沿检测不出来 于是我单独写了一个边沿检测的程序,在sigtab中仿真时没有问题的,感觉问题应该出现在pll倍频中, 验证了一下,果然是clk的问题,在sigtab中用200M的clk就没有问题了。 如果整除,除法的
阅读全文
摘要:fpga通过pll倍频产生200M时钟,来测量高频率信号源,不知道为啥加到500M就有问题了,测量的fx比实际值要小,正常的话每一兆有3hz的误差,40M的话大约有120Hz的误差,满足2015年产生10-4的要求,贴一下代码。
阅读全文
摘要:FPGA以9600的波特率向单片机发送32位数据,然后单片机对数据进行解析,显示在显示屏上面 波特率的产生 : 9600bps是指每秒钟发送9600个bit,即1bit的时间为1/9600,fpga板子自带50M晶振,那么一bit的时间时1/9600/1/50M 在没有检验位的情况下,每一帧数据是1
阅读全文
摘要:应用: 用fpga实现对数码管显示,以前通常的方法是进行整除和取余进行运算,但是fpga并不擅长乘法除法运算,所以可以用BCD码来转换。 BCD码:通俗的可以理解为用四位二进制数表示一位十进制数字。例如,256就可以用bcd码表示为:0010_1001_0110 因此在数码管显示中,也就是把256各
阅读全文
摘要:/*******************************************************************************/ chapter one * SDRAM 3.3V DDR2 1.8V 电压越低充放电特性越快* RAS_N 行地址选通 CAS_N 列地
阅读全文
摘要:`define: 可以跨模块的定义,写在模块名称上面,在整个设计工程都有效。一旦‘define指令被编译,其在整个编译过程中都有效。例如,通过另一个文件中的`define指令,定义的常量可以被其他文件中被调用。直到遇到 ‘undef; `define data 8’d14 使用时则为 `data p
阅读全文
摘要:最近发现一个问题,如果不给板子定义引脚,就直接下载的话。会出现下载错误的问题
阅读全文
摘要:.直接测频法:由时基信号形成闸门,对被测信号进行计数。当闸门宽度为1s时可直接从计数器读出被测信号频率。计数值存在正负一个脉冲的误差是可能的,故此法的绝对误差就是1Hz(对1s宽的闸门而言)。其相对误差则随着被测频率的升高而降低,故此法适于测高频而不适于测低频。
阅读全文
摘要:module key_board( clk,rst_n,col,row, fword,pword,da_data,clk_ad,da_data_rom, boxi,ast_source_valid ); input clk; input rst_n; in...
阅读全文
摘要:set_location_assignment PIN_AF14 -to clk set_location_assignment PIN_AA14 -to rst_nset_location_assignment PIN_AF26 -to ad_data[0] set_location_assign
阅读全文
摘要:module vga_qudong( clk,rst_n, vga_clk,vga_b, vga_g,vga_r, vga_blank,vga_sync, vga_hs,vga_vs, value_x,value_y, rgb ); input ...
阅读全文
摘要:这次有待解决的问题是如何把八位数据通过移位的方法变成小数形式 总结:fpga会自动舍弃小数部分,所以要乘一个数来增加精确度 注意位宽因为定义尾位宽不够,所以buffer1出来的数据不准确 注意datasheet给定的时钟,刚开始因为时钟频率过小,导致数字有的点闪
阅读全文
摘要:多数是因为testbench 里面模块名字与文件名字不一致所导致的。
阅读全文
摘要:一、matlab使用:clc 清除命令窗口 clear all 清除所有 hold on;的意思是保持住原图形,在原图形的基础上继续绘图 将数据进行定点话存到ram里面去 二、DDS 查看模拟波形 format auto256个时钟一个正弦周期 那么正弦波的频率为50M/256正弦波递增量跟正弦波频
阅读全文
摘要:1、用matlab产生mif文件 首先自己用matlab产生自己需要的数据,然后调用外部的miffile.m文件即可生成需要的mif文件,需要注意的是,产生自己数据的时候, 需要对数据取整,否则quartus识别不了科学计数法。 下面举个例子 这是需要的外部miffile.m文件,需要将该文件放在自
阅读全文

浙公网安备 33010602011771号