实验2 HDL语言输入
- 格式:ppt
- 大小:198.00 KB
- 文档页数:12


实验二 基于HDL 十进制计数、显示系统设计一、 实验目的1. 掌握基于语言的ISE 设计全流程;2. 熟悉、应用VerilogHDL 描述数字电路;3. 掌握基于Verilog 的组合和时序逻辑电路的设计方法。
二、 实验原理1、实验内容:设计具有异步复位、同步使能的十进制计数器,其计数结果可以通过七段数码管、发光二极管等进行显示。
图2-1 系统原理图 2、模块端口信号说明输入信号:clk -------待计数的时钟clr ---------异步清零信号,当clr=1,输出复位为0,当clr=0,正常计数 ena---------使能控制信号,当ena=1,电路正常累加计数,否则电路不工作 输出信号:q[6:0]---------驱动数码管,显示计数值的个位 cout -----------1bit 数据,显示计数值向十位的进位3、以自顶向下的设计思路进行模块划分:整个系统主要设计的模块是:十进制计数模块和数码管驱动模块,由于实验板的按键为实现硬件防抖,则需要将按键输入的时钟clk ,先通过消抖模块消抖后,再输出至后续使用。
图2-2 系统模块划分和引脚连线图1)十进制计数器模块设计 输入:使能控制端异步清零端时钟端CLK -------待计数的时钟CLR ---------异步清零信号,当CLR =1,输出复位为0,当CLR =0,正常计数ENA---------使能控制信号,当ENA=1,电路正常累加计数,否则电路不工作输出:SUM[3:0]---------- 计数值的个位。
即,在CLK上升沿检测到SUM=9时,SUM将被置0,开始新一轮的计数。
COUT ------------计数值的十位进位,即:只有在时钟CLK上升沿检测到SUM=9时,COUT将被置1,其余情况下COUT=0;在设计中可以使用always,if-else-if语句实现,设计中注意不要在两个以上的always 模块中对同一个变量进行赋值,否则会产生多重赋值源(multi-source)的问题。
《HDL语言硬件设计》实验报告设计输入与门级结构建模仿真一、实验目的:1、掌握简单门级结构建模电路的设计方法。
2、初步掌握ModelSim6.0软件的基本操作与应用。
3、初步了解verilog建模仿真的设计全过程。
二、实验设备:PC机ModelSim6.0开发软件三、试验要求:学习使用ModelSim6.0设计软件。
学习文本编辑器使用,掌握文本编辑器的输入方法,完成4选1多路选择器结构建模的输入,并完成仿真。
四、实验:写出4选1多路选择器的模块代码,并对其进行仿真得出仿真结果,并分析仿真结果。
四选一多路选择器仿真程序module MUX4x1(Z,D0,D1,D2,D3,S0,S1);input D0,D1,D2,D3,S0,S1;output Z;wire T1,T2,T3,T4;and(T0,D0,S1bar,S0bar),(T1,D1,S1bar,S0),(T2,D2,S1,S0bar),(T3,D3,S1,S0);not(S1bar,S1),(S0bar,S0);or(Z,T0,T1,T2,T3);endmodule仿真模块代码`timescale 10ns/1nsmodule test_MUX4x1;reg[3:0]d;reg[1:0]s;wire out;MUX4x1 mymux(out,d[0],d[1],d[2],d[3],s[0],s[1]);initialbegin$moniter($time,"d=%b,s[1]=%b,s[0]=%b,out=%b\n",d,s[1],s[0],out);d=4'b1010;s=2'b00;//$display($time,"d=%b,s[1]=%b,s[0]=%b,out=%b\n",d,s[1],s[0],out); #5 s=2'b00;//$display($time,"d=%b,s[1]=%b,s[0]=%b,out=%b\n",d,s[1],s[0],out); #5 s=2'b01;//$display($time,"d=%b,s[1]=%b,s[0]=%b,out=%b\n",d,s[1],s[0],out); #5 s=2'b10;//$display($time,"d=%b,s[1]=%b,s[0]=%b,out=%b\n",d,s[1],s[0],out); #5 s=2'b11;//$display($time,"d=%b,s[1]=%b,s[0]=%b,out=%b\n",d,s[1],s[0],out); #100 $stop;endendmodule仿真结果(3)实验心得心得体会:每一种语言都有其特点,在编程时必须认真看相关书籍,并从中找到其逻辑思路,快速起草程序大纲。
基于HDL输入法分频器的设计实验心得和经验总结基于 HDL 输入法分频器的设计实验心得和经验总结,主要写了自己对 HDL 输入法的看法,设计目标等。
在设计前期准备阶段,要求掌握的软件工具有: PS、 CDR、 ai、 photoshop、 logicpc、AutoCAD、 CorelDRAW、 Flash。
其他网络资源:搜索引擎。
输入法是现代社会中必不可少的工具之一,它们能够让我们表达出更多的情感并且展示给世界上所有的人,这样使我们通讯方便起来,在中国互联网信息化发展迅速的今天,输入法已成为我们生活中必不可缺的一部分,它们正在逐渐取代键盘打字而成为我们日常交流的重要工具。
输入法主要包括拼音输入法、五笔输入法、笔画输入法、英文输入法以及手写输入法。
在此本人想介绍一下关于汉语拼音输入法的设计。
第二章关键词:声明语言,输入法首先要做到的就是设计合理的声明语言,由于我们的汉语是方块形式,所以应该用声明语言把每个汉字变成符号进行输入。
在这里声明语言主要指的是符号和数据库,符号是由声明语言构造的,声明语言存储着每个汉字,当你选择某个汉字后,声明语言根据你的需要提供相应的符号。
这样既节省了大量的时间又保证了输入的质量。
例如:“好”字是由“女”和“子”组成的,那么我们就可以3x3=9个汉字(女)+1个符号(子),即:“女子”;同理,还有“去”、“水”等。
在设计中应注意:一定要确定你所设计的声明语言,这将决定你的设计的效率。
我认为设计任何东西都要从最简单的开始,如果太复杂就无法解决问题,因此要抓住问题的核心,才能真正解决问题。
这些东西在网上很容易找到,只要你留心观察就会发现,并且可以学习别人的优点加以改进。
但在这个设计过程中我也遇到了许多困难,因此也积累了一些经验。
第三章关键词:说话人的语气在平时聊天的过程中,经常会听见两种截然不同的语气,一种是“你怎么搞的?!”另外一种则是“嗯,知道了”或者“哦”等类似的语气,这是为什么呢?原来,前者带有强烈的责怪语气,而后者则带有谦虚的语气。
实验二7段数码显示译码器【实验目的】1.设计七段显示译码器,并在实验板上验证2.学习V erilog HDL文本文件进行逻辑设计输入;3.学习设计仿真工具的使用方法;【实验内容】1.实现BCD/七段显示译码器的“Verilog ”语言设计。
说明:7段显示译码器的输入为:IN0…IN3共5根,7段译码器的逻辑表同学自行设计,要求实现功能为:输入“0…15 ”(二进制),输出“0…9…F ”(显示数码),输出结果应在数码管(共阴)上显示出来。
2.使用工具为译码器建立一个元件符号3.设计仿真文件,进行验证。
4.编程下载并在实验箱上进行验证。
【实验原理】7段数码是纯组合电路。
通常的小规模专用IC,如74或4000系列的器件只能作十进制的BCD码译码,然而数字系统的数据处理和运算都是二进制的,所以输出表达式都是十六进制的。
为了满足十六进制数的译码显示,最方便的方法就是利用Verilog译码程序在FPGA/CPLD中实现。
首先要设计一段程序。
该程序可按照例3-2的case语句表述方法,再根据表4-2的真值表写出程序。
者输入的4位码为A【3:0】,输出控制7段共阴数码管的7位数据位LED7S【6:0】。
输出信号LED7S的7位分别接图4-74的工银数码管的7个段,高位在左,低位在右。
【程序源代码】(加注释)module LED (IN,led7);input[3:0] IN;output[6:0] led7; //定义输出信号reg[6:0] led7; //定规输出信号位7位的寄存器变量always@(IN) //IN为敏感性信号begin //主块开始case(IN) //使用了case语句4'b0000: led7<=7'b0111111;4'b0001: led7<=7'b0000110;4'b0010: led7<=7'b1011011;4'b0011: led7<=7'b1001111;4'b0100: led7<=7'b1100110;4'b0101: led7<=7'b1101101;4'b0110: led7<=7'b1111101;4'b0111: led7<=7'b0000111;4'b1000: led7<=7'b1111111;4'b1001: led7<=7'b1101111;default: led7<=7'b0111111;endcaseend //主块结束endmodule【仿真和测试结果】【硬件仿真结果:】【实验心得和体会】通过这次的7段数码显示译码器实验,我对EDA有了进一步的了解,对QuartusII有了了解以及在QuartusII的使用上有了一些经验。