随笔分类 -  FPGA小练习

勿在浮沙建高楼
加法器,乘法器综合以后会是什么样子?
摘要:reg[7 : 0] a;reg[7 : 0] b;assign a[7:0] = (b[7:0] * 100)/1000;这句话在算的前半段,值是可能溢出的,最后的结果当然不会溢出,我想知道具体综合的时候有没有溢出的风险。 阅读全文

posted @ 2012-12-15 11:27 zxl2431 阅读(593) 评论(0) 推荐(0) 编辑

啥子是LUT
摘要:一般来说简化的FPGA是由6部分组成的:可编程I/O单元,基本可编程逻辑单元...  基本可编程逻辑单元是可编程逻辑的主体,可以说CPLD和FPGA除了工艺不同以外,还有就是LAB(LogicArrayBlock)逻辑阵列模块的排布方式不同,CPLD是LAB排列在周围布线池在中间,而FPGA是LAB到处分布,布线资源在其中穿插,就像大城市的房子和街道,如图:  一个LAB是有几个LE(LogicElement)逻辑单元组成的一般10个吧。  一般情况下一个LE又是由一个LUT加一个进位逻辑和一个Register加组成的。所以也是在一般情况下LUT的数目跟Register的数目是差不多的。一般的 阅读全文

posted @ 2010-12-08 17:04 zxl2431 阅读(3698) 评论(1) 推荐(3) 编辑

DE2上SRAM测试(一)
摘要:SDRAM我是没搞定,SRAM应该没问题。。。  SRAM的控制很简单,DE2板子上面的是512KB的SRAM—IS61LV25616.先简单的看一下其引脚和时序图:      可以看到在一般情况下起到最重要的是WE,其他给一个默认的值就好,CE让它有效,OE让它有效,LB和UB现在也让它都有效就好。这样就少了很多事。    这是一个写的时序图,在前面已经省去了很多引脚,这里就简单了,先给地址,过Tsa拉低WE,同时送数据,完事后将WE拉高,数据就会被写入。在要求不太严格的情况下,三者同时进行也是可以的。这里需要注意的是数据口是双向的,要做一个三态门才行,在写的时候它选通,在读SRAM的时候它 阅读全文

posted @ 2010-12-06 15:18 zxl2431 阅读(1415) 评论(3) 推荐(2) 编辑

Verilog 串口实验
摘要:写了个串口接收的代码,没反应,沉思ing。。。最怕就是思路很清晰,结构很合理,没有结果。差错都不好查。再来写个发送的看看。串口接收的已经调试成功,串口发送的还有点小问题,这边串口终端也能接收数据,但接收的数据总是 00 ,不管你发什么都是这个样子的,什么问题了?  再次验证了一个真理,好记性不如乱笔头。上次Modelsim 破解成功,这次重新安装了一下,还是按照上次的方法破解,搞了半天才好,吼吼,在修改环境变量时添加这个文件LM_LICENSE_FILE,它的途径一定是你放他的目录+它的名字,呵呵。  必须要为自己的粗心大意买单!在写状态机的时候,没想到很好的名字,就直接 reg[3:0] i 阅读全文

posted @ 2010-12-04 14:40 zxl2431 阅读(1137) 评论(0) 推荐(1) 编辑

简单的人机界面——LCD1602+PS2
摘要:在被4*4的矩阵键盘搞的有点晕的时候,我决定换成PS2的键盘和LCD1602,在初步认识和简单调试出来1602后,今天准备学习PS2。在FPGA的学习上一直都是这种状态深入不下去,客观上是DE0带的资料确实有点少,一直也没找到一个好的突破口,主要还是付出不够。OK,1602和PS2键盘分别已经基本搞懂了,先总结一下遇到的问题,再来想一下两者中间的连接模块。参考DE2上面的LCD1602的例程。只是... 阅读全文

posted @ 2010-11-06 22:34 zxl2431 阅读(994) 评论(0) 推荐(1) 编辑

Calculator
摘要:最近想用Verilog写一个计算器,主要就可以分为两部分了:人机界面和运算部分。人机界面其实也很简单就是一个4*4的矩阵键盘和几个数码管,在做的时候就会有基本的按键扫描,去抖动和数码管显示,但一直都有一个问题显示不是很稳定,总是喜欢跳到别的键当然也不是乱跳,一行之间的数值是不会乱跳的,喜欢在它所在的列之间跳动,代码我认为是没有什么问题的,按键的消抖我也做了,我用的是买的4*4键盘难道是它不稳定,我... 阅读全文

posted @ 2010-11-05 16:52 zxl2431 阅读(329) 评论(0) 推荐(1) 编辑

FPGA经典模块(1)——分频器
摘要:在数字逻辑电路设计中,分频器是一种基本电路,通过分频可以得到需要的时钟频率。常见的分频器有二进制分频器、偶数次分频器、奇数次分频器、占空比可调的分频器和小数分频器。分频的方法很多最常见的就是利用加法器对时钟信号进行分频,当然也可以利用一些专用的电路结构来实现。  偶数次分频器是比较简单的,最简单的是2分频的即使不用加法器也可以搞定,在每个时钟上升沿来的时候把电平翻转一次就OK。其他的偶数次分频电路... 阅读全文

posted @ 2010-10-25 13:44 zxl2431 阅读(4321) 评论(0) 推荐(2) 编辑

简单状态机设计(2)
摘要:2.0 汽车尾灯控制电路设计  汽车尾灯发出信号主要是给后面的行驶汽车的司机看的,汽车驾驶室通常有刹车开关(HAZ)、左转弯开关(LEFT)和右转弯开关(RIGHT),司机通过操作这3个指示灯,分别用LA,LB,LC,RA,RB,RC表示,这些灯的亮、灭规律如下:  (1) 汽车正常行驶时,尾部两侧6个灯全部熄灭。  (2) 刹车时,汽车尾灯工作在警告状态,所有6个灯按一定频率闪烁。  (3) 左... 阅读全文

posted @ 2010-10-09 20:34 zxl2431 阅读(467) 评论(0) 推荐(1) 编辑

简单状态机设计(1)
摘要:1.0 序列检测器电路设计  设计一个序列检测器电路,功能是:检测出串行输入数据Sin中的4位二进制序列0101(自左至右输入),当检测到该序列时,输出Out=1;没有检测到该序列时,输出Out=0(注意考虑序列重叠的可能性,如010101,相当于出现两个0101序列)。  经过分析,首先可以确定采用米利型状态机设计该电路。因为该电路在连续收到信号0101时,输出为1,其他情况下输出为0,所以采用... 阅读全文

posted @ 2010-10-07 16:26 zxl2431 阅读(7172) 评论(5) 推荐(4) 编辑

基本时序逻辑电路练习
摘要:基本时序逻辑电路  · D触发器  · JK触发器  · 移位寄存器  · 计数器  · 分频器  ·  在基本时序逻辑电路的编写中,最常见的是这样几种警告:  (1): Warning: Some pins have incomplete I/O assignments. Refer to the I/O Ass... 阅读全文

posted @ 2010-09-24 21:13 zxl2431 阅读(1626) 评论(0) 推荐(1) 编辑

基本组合逻辑电路练习
摘要:基本组合逻辑电路  · 编码器  · 译码器/数据分配器  · 数据选择器  · 数值比较器  · 算术运算电路(加法器、减法器、乘法器)  1.0 编码器(以4线-2线编码器为例)  采用数据流方式描述:  代码    查看RTL视图:            跟我在纸上画的不太一样,其实out0和out1的逻辑表达式中有一项是... 阅读全文

posted @ 2010-09-19 21:32 zxl2431 阅读(6007) 评论(0) 推荐(3) 编辑

用Verilog HDL的三种建模方式描述——2选1数据选择器
摘要:1,数据选择器的定义和功能  数据选择是指经过选择,把多路数据中的某一路传送到公共数据线上,实现数据选择功能的逻辑电路称为数据选择器。它的作用相当于多输入的单刀多掷开关。  2,集成电路数据选择器  常用的集成电路数据选择器有许多种类,并且有COMS和TTL产品。例如,四2选1数据选择器74x157、双4选1数据选择器74x153、8选1数据选择器74x151等。  还有一些数据选择器具有三态输出... 阅读全文

posted @ 2010-09-17 21:32 zxl2431 阅读(38712) 评论(0) 推荐(2) 编辑

按照缺氧老兄的博客modelsim仿真成功
摘要:我用的是modelsim-altera 6.5b, 原来装过后来重装系统又没了,今天再把他装上。记得前段时间弄SDRAM控制器的时候不会用Modelsim仿真,真的是比较痛苦。装上以后跟原来一样打开时提示错误:              在网上搜了一下在http://www.cnblogs.com/oomusou/archive/2008/02/04/1064193.html找到了解决的办法,后来... 阅读全文

posted @ 2010-09-15 22:41 zxl2431 阅读(571) 评论(1) 推荐(3) 编辑

导航