随笔分类 -  Digital Logic

上一页 1 2 3 4 5 下一页

构建和调试电路的技巧
摘要:构建和调试电路的技巧 构建电路的技巧 要使电路能够工作的最快的方式就是深思熟虑,拿起纸笔,画波形,考虑测试用例,各种模式.甚至在设计输入到电脑之前就非常确定电路的每一部分是如何工作的.这样,就可以掌控全局,做的又快又好. 若有可能,尽量分模块检查电路的功能,构建子电路,先测试再级联. 实验需要花大量 阅读全文

posted @ 2022-05-25 16:16 yf.x 阅读(107) 评论(0) 推荐(0)

Modelsim使用指南
摘要:Modelsim使用指南 本文讲述Modelsim的使用步骤. 添加一个测试文件,比如modulename.v。 编辑这个Verilog模块。 为了方便讲述,顶层模块名命名为“top”。 Modelsim的参考文档可从:Help > PDF Documentation >选择下载。 1. 设置 如同 阅读全文

posted @ 2022-05-25 11:25 yf.x 阅读(853) 评论(0) 推荐(0)

深入浅出玩转fPGA-读书笔记
摘要:笔记1 关于异步复位同步释放的理解 先看代码: 其中有两个always语句,把2个触发器叠加,当按下复位信号rst_n是,两个触发器都复位(清零)。当rst_n释放时,重点就来了,rst_n释放的时刻可能在时钟信号的上升沿之前,之中或之后,这里,关键就是rst_n从0变到1时,若clk上升沿的建立时 阅读全文

posted @ 2022-04-25 11:28 yf.x 阅读(142) 评论(0) 推荐(0)

9.1 4*4矩阵键盘驱动
摘要:1. 4*4键盘的结构为4行4列,共16个交叉点,代表16个按键,行编号为A,列编号为B。按下某键后,辨别和读取键值一般采用如下方法: 向A端口扫描输入一组只含有一个0的4位数据,若有按键按下,B端口会输出相应的数据,然后结合A、B端口的数据,判断按键的位置。 2. 整个键盘扫描检测,设计思想还是编 阅读全文

posted @ 2020-11-04 20:07 yf.x 阅读(559) 评论(0) 推荐(0)

实验8 #第8章 Verilog有限状态机设计-2 #Verilog #Quartus #modelsim
摘要:2. 汽车尾灯控制器 2.1 实验要求:设计一个汽车尾灯控制电路。 (1)功能:汽车左右两侧各有3个尾灯,要求控制尾灯按如下规则亮灭。 汽车沿直线行驶时,两侧指示灯全灭。 右转弯时,左侧的指示灯全灭,右侧的指示灯按000,100,010,001,000循环; 左转弯时,右侧的指示灯全灭,左侧的指示灯 阅读全文

posted @ 2020-11-04 12:06 yf.x 阅读(1188) 评论(0) 推荐(0)

实验8 #第8章 Verilog有限状态机设计-3 #Verilog #Quartus #modelsim
摘要:3. 状态机A/D采样控制电路 3.1 目标:用状态机控制ADC0809实现数据采集。 3.2 ADC0809简介 (1)ADC0809是8位A/D转换器,片内有8路模拟开关,可控制8个 模拟量中 的1个进入转换器中。完成一次转换的时间约100us。含锁存控制的8个 多路开关,输出有三态缓冲器控制, 阅读全文

posted @ 2020-11-03 14:35 yf.x 阅读(1220) 评论(0) 推荐(0)

实验8 #第8章 Verilog有限状态机设计-1 #Verilog #Quartus #modelsim
摘要:8-1 流水灯控制器 1. 实验要求:采用有限状态机设计彩灯控制器,控制LED灯实现预想的演示花型。 2. 实验内容: (1)功能:设计彩灯控制器,要求控制18个LED灯实现如下的演示花型: 从两边往中间逐个亮,全灭; 从中间往两头逐个亮,全灭; 循环执行上述过程; 2.1 流水灯控制器用两个alw 阅读全文

posted @ 2020-10-16 16:29 yf.x 阅读(2070) 评论(0) 推荐(0)

习题8 #第8章 Verilog有限状态机设计-4 #Verilog #Quartus #modelsim
摘要:4. 用状态机设计交通灯控制器,设计要求:A路和B路,每路都有红、黄、绿三种灯,持续时间为:红灯45s,黄灯5s,绿灯40秒。 A路和B路灯的状态转换是: (1) A红,B绿(持续时间40s); (2) A红,B黄(持续时间5s); (1) A绿,B红(持续时间40s); (1) A绿,B黄(持续时 阅读全文

posted @ 2020-10-14 13:27 yf.x 阅读(1808) 评论(0) 推荐(0)

习题8 #第8章 Verilog有限状态机设计-3 #Verilog #Quartus #modelsim
摘要:3. 编写一个8路彩灯控制程序,要求彩灯有以下3种演示花型。 (1) 8路彩灯同时亮灭; (2) 从左至右逐个亮(每次只有1路亮); (3) 8路彩灯每次4路灯亮,4路灯灭,且亮灭相间,交替亮灭。 在演示过程中,只有当一种花型演示完毕才能转向其他演示花型。 3.1 设计思路:8个灯,3种花型,顺序展 阅读全文

posted @ 2020-10-14 00:10 yf.x 阅读(3328) 评论(1) 推荐(0)

习题8 #第8章 Verilog有限状态机设计-1 #Verilog #Quartus #modelsim
摘要:1. 设计一个“111”串行数据检测器。要求是:当检测到连续3个或3个以上的“1”时输出为1,其他输入情况下输出为0。 (1)思路分析:参照本章前文的范例,如第224页的【例8.8】,很容易模仿或推断出这个FSM共有4个状态,分别为: 初始化时收到0的s0,然后收到1的s1,连续收到两个1的s2,连 阅读全文

posted @ 2020-10-13 20:32 yf.x 阅读(2455) 评论(0) 推荐(0)

Quartus prime 的安装步骤:
摘要: 阅读全文

posted @ 2020-04-24 10:31 yf.x 阅读(1988) 评论(0) 推荐(0)

【笔记】再笔记--边干边学Verilog HDL – 014
摘要:lab14 简单玩一把封装--独立按键的封装本实验利用前面的按键消抖模块和DE2上的资源,设计一个利用pwm控制led发光亮度的实验。1 简介时钟:50MHz,CLOCK_50;复位:SW1,拨下为复位;5个输入:SW0,KEY[3:0];输出:LEDG8;5个输入代表5种不同的PWM,即不同占空比的1KHz的脉冲信号,那么LED的亮的时间也不同,人眼看到的亮度就不同。2 设计工程结构源码1)key_interface_demo.v,本例的顶层模块。调用按键模块和可调pwm模块。 1 module key_interface_demo 2 ( 3 input clk, 4 in... 阅读全文

posted @ 2011-12-01 16:26 yf.x 阅读(1656) 评论(1) 推荐(0)

【笔记】再笔记--边干边学Verilog HDL – 009
摘要:VGA驱动之一实验环境DE2 + Quartus II 9.1目标驱动VGA接口,在屏幕上显示一个白色的矩形。设计查阅VGA协议,搞定信号,主要是同步信号。本实验以800*600*60Hz为例。1)同步信号如上2图所示,分别用列同步和行同步来控制显示。各部分的参数如下表1行=1056个点1点= 25ns (怎么算的,查呗,或者1/60/628/1056 = 25.1ns)。要注意的是,不是所有的点扫描都显示出来,只有在行,列同步信号的有效部分,才显示。即800*600.2)至此,就可以把目标分成3个模块,第一个是驱动时钟25ns,可用pll得到,第二个是同步控制,用来产生合适的行、列同步信号, 阅读全文

posted @ 2011-10-23 17:34 yf.x 阅读(1447) 评论(1) 推荐(1)

[笔记]再笔记--边干边学Verilog HDL –008
摘要:lab08—PS/2解码DE2上有一个PS/2接口,可接键盘或鼠标,本实验利用PS/2接口外接一个键盘,并对其按键解码,按下X键,DE2上的LEDG3-0右移;按下W键,LEDG3-0左移,按下Ctrl,反转。1. PS/2 简介研究PS/2解码,只需关心数据和时钟引脚即可。下图是PS/2协议的时序图,读数据是在时钟的下降沿有效。PS/2的时钟大约为10khz。PS/2一桢是11位,对其解码,只需关注1-8位数据位。键盘编码:键盘编码分为通码和断码,按下为通码,释放为断码。比如,按下W不放,每秒约输出10个0x1d。释放W,输出0xf0 0x1d。编码规则,一次只能一个有效输出。2. 设计ps 阅读全文

posted @ 2011-08-01 07:56 yf.x 阅读(1083) 评论(0) 推荐(0)

[笔记]再笔记--边干边学Verilog HDL –007
摘要:Lab07--数码管电路驱动本实验的目的是实现常用的7段码数码管电路的驱动,用动态扫描的方式实现,而且是同步动态扫描,因为DE2的数码管是直接驱动的,不能列扫描,所以本实验不适合DE2,但同样很经典。期颐完成上图所示个各模块,构成数码管驱动电路。模块说明:1.取位模块:number_mod_module.v简单说就是我的输入数据时00-99的两位数,那么我要分别取出十位和个位的数字待用,这个模块实现很简单,用求商/得到十位的数字,用求余%得到个位的数字。2. 译码模块:smg_encoder_module.v译码模块将我们前面得到的十位和个位数字译成数码管的7位码(若用到那个小数点,就是8位码 阅读全文

posted @ 2011-07-19 09:40 yf.x 阅读(1751) 评论(0) 推荐(0)

[笔记]再笔记--边干边学Verilog HDL –006
摘要:lab06--SOS信号之二如上图所示,本实验在lab05的基础上修改控制部分,使得实验效果更实际,由按键启动sos信号的产生。用到lab04的按键消抖模块和lab05的sos产生模块,本实验添加了一个用于协调的控制模块。代码debounce_module2.v 1 /** 2 * File name : debounce_module2.v 3 * 4 */ 5 6 module debounce_module2 7 ( 8 clk, rst_n, pin_in, pin_out 9 );10 11 input clk;12 input rst_n;13 input pin_in;14 ou 阅读全文

posted @ 2011-07-17 10:52 yf.x 阅读(772) 评论(0) 推荐(0)

[笔记]再笔记--边干边学Verilog HDL --005
摘要:lab05 -- SOS信号之一本实验要做一个sos信号发生器,如上图所示,由2个模块构成,其中sos_module.v用来产生sos信号,对应莫尔斯电码就是. . . _ _ _ . . .,其中点(短音)用100ms的高电平表示,杠(长音)用300ms的高电平表示,空格用50ms的间隔表示。control_module.v作为控制模块,用来产生一个使能信号sos_en_sig。最后,实验的演示验证部分,由于DE2不带蜂鸣器,暂用LEDG8代替。(当然,用蜂鸣器的效果要明显些)。代码sos_module.v 1 /** 2 * File name: sos_module.v 3 * 4 */ 阅读全文

posted @ 2011-07-17 09:37 yf.x 阅读(1186) 评论(0) 推荐(0)

[笔记]再笔记--边干边学Verilog HDL --004
摘要:lab04 消抖模块之二本实验当检测到由高到低的电平变化时,产生一个时钟的高脉冲。当检测到由低到高的电平变化时,只消抖,输出不变。代码在lab03的基础上修改如下:delay_module.v1 case (i)2 3 2'd0:4 if (H2L_sig) i <= 2'd1;5 else if (L2H_sig) i <= 2'd3;6 7 2'd1:8 if (count_ms == 4'd10) begin9 isCount <= 1'b0;10 rpin_out <= 1'b1; 11 i <= 2 阅读全文

posted @ 2011-07-12 16:46 yf.x 阅读(719) 评论(0) 推荐(0)

[笔记]再笔记--边干边学Verilog HDL --003
摘要:lab03 消抖模块之一本实验是一个简单的按键消抖。主要由电平检测和10ms延时2个模块组成。以前,知道按键要消抖,但一直没做过。究其原因,可能是觉得麻烦,效果不炫,悲哀。无论如何,“出来混,总要还的”。咋消抖呢?大大们说,先检测电平变化,再将确定的变化延时输出。说起来简单,其中还有些小九九:1> 消的是什么抖?首先,要搞清楚,“抖”(跳变)是从哪里来的,最开始,我们的常识:按下按键,电平就变了。假设是由高变低。事实上,在按下的过程中,由于,按键大多是机械结构,就会产生轻微的跳变,瞬间(us级)跳变n次。也就是说这个瞬间,电平不是那么“干净”,所以就有了消抖的需求:期颐得到“干净”、确定 阅读全文

posted @ 2011-07-12 16:02 yf.x 阅读(1353) 评论(0) 推荐(0)

[笔记]再笔记--边干边学Verilog HDL --002
摘要:lab 02 闪耀灯和流水灯 这个实验主要是建立上图所示的模块。LEDG3闪烁,LEDG2-0流水。KEY0复位。代码flash_module.v 1 /** 2 * File name: flash_mocule.v 3 * 4 */ 5 6 module flash_module 7 ( 8 clk, rst_n, led_out 9 );10 11 input clk;12 input rst_n;13 output led_out;14 15 parameter T50MS = 22'd2_500_000;16 17 reg [21:0] count;18 19 always 阅读全文

posted @ 2011-07-11 20:06 yf.x 阅读(1320) 评论(0) 推荐(0)

上一页 1 2 3 4 5 下一页

导航