可编程逻辑器件与硬件描述语言

上传人:re****.1 文档编号:509123420 上传时间:2022-08-21 格式:DOCX 页数:22 大小:124.02KB
返回 下载 相关 举报
可编程逻辑器件与硬件描述语言_第1页
第1页 / 共22页
可编程逻辑器件与硬件描述语言_第2页
第2页 / 共22页
可编程逻辑器件与硬件描述语言_第3页
第3页 / 共22页
可编程逻辑器件与硬件描述语言_第4页
第4页 / 共22页
可编程逻辑器件与硬件描述语言_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《可编程逻辑器件与硬件描述语言》由会员分享,可在线阅读,更多相关《可编程逻辑器件与硬件描述语言(22页珍藏版)》请在金锄头文库上搜索。

1、组合逻辑电路实验(一)实验报告一 实验名称:3-8译码器设计二实验目的1. 掌握ISE开发工具的使用,掌握FPGA开发的基本步骤;2. 掌握组合逻辑电路设计的一般方法;3. 掌握程序下载方法,了解UCF文件的格式;4. 初步了解开发板资源,掌握开发板使用方法。重点了解滑动开关和 LED显示灯的使用方法。三实验内容1用VHDL实现3-8译码器模块译码器电路如图2-1所示。其功能如表2-1所示。试用VHDL实现 该译码器,并在开发板上进行检验。Y03-8Y1Y2Y3Y4Y5Y6Y7图2-1 3-8译码器表2-1译码器功能表ENABCY7Y6Y5Y4Y3Y2Y1Y01XXX0000000000000

2、00000010001000000100010000001000011000010000100000100000101001000000110010000000111100000002将程序下载到FPGA并进行检验(1)资源使用要求:用滑动开关SW3SW1作为输入A, B, C;滑动开关SWO控制EN; 8个LED灯表示8个输出。(2)检验方法:当SW0处于ON (EN=1)位置时,所有LED灯灭; 当SW0处于OFF (EN=0),反映当前输入的译码输出在LED灯上显 示,即当输入为000 (滑动开关SW3-SW1处于OFF状态),LEDO亮, 其它灯灭,等等。四实验步骤1启动ISE,新建工

3、程文件,编写3-8译码器的VHDL模块;2新建UCF文件,输入位置约束;3完成综合、实现,生成下载文件;4连接开发板USB下载线,开启开发板电源;5下载到FPGA;6拨动开关,验证结果是否正确。五主要vhdl代码architecture Behavioral of coder_38 is-3-8 译码器行为级描述signal x:STD_LOGIC_VECTOR (2 downto 0);beginx = A&B&C;process(en,x)beginif(en=0)thencase x iswhen 000二Y=00000001;when 001二Y=00000010;when 010二Y

4、二00000100;when 011二Y二00001000;when 100二Y二00010000;when 101二Y二00100000;when 110二Y二01000000;when 111二Y NULL;end case;else Y=00000000;end if;end process;end Behavioral;六心得体会这次实验内容比较简单,主要是为了熟悉Xilinx ISE及FPGA实验板的使用方法,了解整个开发流程OISE是一款功能强大的FPGA设计软件,在实际的设计过程中要注意工程中的F PGA开发板型号等参数的选择应与实际硬件一致,并保证UCF位置约束的正确性,要在

5、头脑中将整个过程无缝衔接,避免细节处错误的发生。时序逻辑电路实验(一)实验报告一实验名称:可逆计数器设计二实验目的1. 进一步熟练ISE开发工具,巩固FPGA开发的基本步骤,掌握功能 仿真方法;2. 掌握时序逻辑电路设计的一般方法,掌握时钟分频程序设计方法;3. 理解VHDL的层次结构设计;4. 巩固程序下载方法;5. 了解开发板时钟资源,以及时钟分频方法。三实验内容1基本可逆计数器模块可逆计数器电路图及功能表如图3-1和表3-1所示。根据真值表易 写出可逆计数器的vhdl模块,要注意的是:由于其中涉及向量类型 的算术运算,所以在库中要添加STD_LOGIC_UNSIGNED.ALL由 于Y0

6、.7为out类型,不能获取其值进行操作,应当添加一个信号 comb,进行算术运算。Y0Y1Y2Y3Y4Y5Y6Y7图3-1可逆计数器原理图表3-1可逆计数器功能表clrenUp/DnelkY7 Y01XXX0000000000XX停止计数011f计数器+1操作010f计数器-1操作2.1/50000000分频器模块可逆计数器电路图如图3-2所示。在实验板上提供了 50MHz的系 统时钟频率,为获取1Hz的计数时钟频率,需要对其进行分频,即输 入端输入50MHz的系统时钟频率,然后输出端每过25M个频率输出 信号跳变一次,即可得到1Hz的频率输出。3二选一电路模块二选一电路电路图如图3-3所示。

7、通过滑动开关即可选择是通过 1Hz时钟输入还是通过外部按键输入。4综合原理图(顶层原理图)选择原理图模式,将生成的(已封装)各模块器件组合成最终形式。 如图3-4所示。50M clock1/500000001Hz clock图 3-2 1/50000000 分频器2 选 1DoutIn2 S 图3-3二选一电路SW2Y0 (LED0)Y3 (LED3)Y4 (LED4)Y5 (LED5)Y6 (LED6)Y7 (LED7)图3-4完整的可逆计数器四实验步骤1. 建立工程文件,顶层文件为原理图;2. 编写分频模块程序,要求输入为50MHz系统时钟,输出为1Hz计 数时钟;3. 编写2选1模块,输

8、入为按键、lHz时钟和开关SW2,输出为计数 源;4. 编写计数器模块主程序模块;5. 在原理图中,将各个模块连接,使用pinhead分配引脚资源;6. 对程序进行功能仿真;7下载程序,进行验证。五主要vhdl代码-1/50000000分频模块architecture Behavioral of fdiv is signal tmp :std_logic :二O;beginprocess(cin)variable fd:INTEGER:=0;beginif(cinevent and cin= 1) then fd := fd + 1;if(fd = 25000000) then tmp = n

9、ot tmp; fd := 0;cout = tmp;end if;end if;end process;end Behavioral;-二选一电路模块architecture Behavioral of mux21 is beginprocess(in1,in2,s)beginif(s=0)thendout = ini;elsedout = in2;end if;end process;end Behavioral;-基本可逆计数器模块architecture Behavioral of counter issignal comb: STD_LOGIC_VECTOR(7 downto 0):

10、= 00000000; beginprocess(clr,en,sel,clk)beginif(clr=1)thencomb = 00000000;elsif(en=1)thenif(clkevent and clk=1)thenif(sel=1)thencomb = comb + 1;elsif(sel=0)thencomb = comb - 1;end if;end if;end if;end process;Y = comb;end Behavioral;六、心得体会这次的实验比较综合,共分为三个模块,通过三个模块的组合完成 最终设计。通过这次实验,我不仅对于vhdl程序的编写更加熟悉,

11、 也初步构建起了硬件设计的模块化思想,学习了自顶向下的设计方 法,学会了利用ise软件进行电路仿真的方法,并掌握了一些常用的 硬件描述方式,大大加深了对于使用vhdl语言描述硬件方式的印象。状态机电路实验(一)实验报告一实验名称:按键抖动消除及验证电路设计二实验目的1. 进一步熟练ISE开发工具,巩固FPGA开发的基本步骤,掌握功能 仿真方法;2. 了解按键抖动的原因,抖动消除方法3. 掌握状态机的设计方法;4. 掌握消除抖动的状态机设计方法5. 巩固程序下载方法。三实验内容1. 原理简介按键动作发生时按键的输出会出现不稳定的逻辑0和逻辑1 的跳变。该信号直接输入到计数器之类电路,会发生计数错

12、误。如图 3-5所示。图3-5信号抖动2. 状态分析设置五个状态:S0, S1, S2, S3, S4, S5。电路的复位信号RST有效时,电路进入复位状态S0,在S0状态 下,时钟信号CLK以一定频率采样按键输入信号Key_in,如果采样 到Key_in = 0,则停留在S0状态,并继续采样,一旦采样到 Key_in= 1,则转入S1延时状态,进行消抖延时,当延时结束时, Delay_end= 1,则转入S2状态,在此状态下,时钟信号CLK以一定 频率采样按键输入Key_in,如果Key_in = 0则转入S0,否则转入 S3;状态S3, S4的转换过程和条件与S2相同,在状态S4下,如果

13、Key_in= 1,则转入S5状态,当进入S5时,表示经过S2, S3,S4 三个连续状态检测按键输入Key_in都为1则认为按键处于稳定 状态,在S5输出按键确认信号Key_confirm= 1。同时在状态S5下,时钟信号CLK检测按键输入Key_in,如果 Key_in = 1,表示按键未释放,继续停留在S5,检测输入信号,如 果检测到Key_in = 1,表示按键已经释放,输出Key_confirm = 0, 返回到状态S0,等待下一次按键操作。3. 状态分析图四实验步骤1. 画出电路的状态转换图;2. 编写完整的VHDL程序;3. 下载程序,进行验证。五主要vhdl代码(延时消抖模块)architecture Behavioral of delay istype states is(s0,s1,s2,s3,s4,s5);signal nextstate:states;beginprocess(clk,keyin,keyin)variable num:integer:=1000;beginif(rst=1)thennextstate = s0;elsif(keyinevent and keyin=1)then case nextstate iswhen

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号