weiqi7777

SPARTAN6使用clock wizard产生多路输出时钟

项目上,需要产生高频的方波提供信号,但是实验室设备产生不了高频的,就想着用FPGA开发板产生一个高频的方波信号,由于开发板用的是SPARTAN6的主芯片,所以就想到了用DCM或者是PLL来产生。对于SPARTAN6来

数字钟的FPGA实现并在VGA上显示

之前用FPGA实现数字钟,并用数码管和VGA进行显示,同时还能用按键改变时间。下面我就讲解一下当初是怎么做这个东西的。&

FPGA状态机电路综合分析

在FPGA中,状态机是比较常用的。特别是要处理一些串行执行的操作。但是对于我们编写的状态机,综合出来的电路应该是长什么样子的了?这个在初学的时候都是不关心的,但是深入的话,还是要了解的。&n

使用乘法器实现各种移位操作

昨天看了一本书,使用乘法器来实现各种移位操作。包括逻辑左移,逻辑右移,算术右移,循环右移。实现的框图如下所示:考虑对32位数据处理&n

Vivado封装自定义IP

Vivado可以将自己的verilog代码设计封装成IP,然后在设计中调用该ip.ip还可以配置参数。所用软件为2014.4下面以我之前写的一个串口程序为例。将代码拷贝到一个目录下,该目录不能有中文和目录。然后打开vivado软件。选择创建和封装IP。因为是要封装IP,选择第二个为ip指

Verilog的信号强度学习

现在在cadence中用NC仿真数字电路的时候,遇到了信号强度的问题,就研究了以下。原来verilog中是可以将多个输出接在一起的,但是要为输出指定信号的强度。强度值是用来解决数字电路中不同强度的驱动源之间的赋值冲突。我们知道设计数字电路时候,特别是用MOS管设计时,

串口发送数据到IIC,LCD从IIC读取数据显示

结合上次的串口和LCD,这次在中间加了一个IIC。流程图,如下:看着好像挺复杂的样子。其实,在上次,已经实现了右下角的部分和串口的部分。只需要实现IIC部分,在和已经实现好的模块连接就行了。首先说下功能:串口将接收到是数据发送到IIC_FIFO中,然后IIC_FIFO控制器

串口控制LCD1602显示

花了一个下午加一个晚上的时间,写了一个串口控制LCD1602显示程序。用的是virtex5的板子,高端霸气上档次的板子。功能其实也很简单,就是串口发送什么数据,就将数据显示在LCD1602上面,同时串口把接收的数据给回发回来。结构图:说明:1、串口部分:接收和发送串口数据

Max10试用之hello world

拿到板子有一段时间了,一直没有时间试用写心得。趁着周末,赶快来试用,并写写心得。因为板子上没有什么外设,所以就先简单的构建nios2系统,并输出helloworld。用的软件是quartus14.1的web版本。。因为max10要quartus14版本才支持,而且quartus14版本要64位系统才能装

sram之timequest

以前写verilog代码的时候,基本没有添加过约束,从现在开始,要好好的学习约束,因为是使用的是quartus,而quartus的时序分析和约束工具是timequest。先要计划下要进行哪些约束1、时钟约束:这个系统是在50M时钟作用下,所以需要对这个时钟进行约束。2、输入延迟约束:

FPGA驱动sram

准备把de2-115上面的存储器外设都给驱动一下,首先就先从简单的sram开始。Sram的驱动比较简单,和FPGA内部的ram差不多,只不过不是由时钟来控制读写,而是由控制信号来控制读写,读写都很快,基本上一个时钟就可以读取和写入数据,当然这时钟不能太快,不能超过芯片规定

FPGA之DS18B20

之前用单片机加proteus,来实现对DS18B20的驱动。也了解了DS18B20的驱动原理。然后就开始用FPGA来进行驱动了。介绍这里就不介绍了,可以看看之前写的博文。以下程序,只考虑外接一个DS18B20,因为开发板上就挂了一个。只读取温度16位值,没有读取其他寄存器值。需要其他

FPGA之DS1302

DS1302是比较经典的时钟芯片,刚好开发板上有这一个芯片。然后去准备用verilog去控制控制。以下是DS1302的封装和管脚说明。其中,主要就是控制CE,I/O,SCLK这三个信号。。其他都是电路固定接好的。不需要控制。这里要注意一下I/O这个管脚是双向口。所以在FPGA中要用inout

Chipscope调试IIC

在之前用FPGA实现对AT24C02驱动时候,因为AT24C02是IIC总线,所以要设计IIC总线的程序。之前已经说明了该程序是怎么设计的。但是在设计的过程中,我们不能保证我们写的程序第一次就是正确的,所以就需要调试。我在做的时候,就调试了好多次,用了各种方法,花了三天时间

FPGA之IIC

FPGA之IIC这几天实现FPGA对AT24C02进行读写。采用的是IIC总线,所以要写IIC控制代码。写代码花了一下午,可是调试花了三天。真是相当蛋疼,用了各种方式进行调试。AT24C02采用的是IIC总线,256KB字节的存储容量。分为32夜,每页有8字节。首先是写的时序:如上所示:第一