您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > EDA技术_项目5_BCD-7段显示译码器N
BCD-7段数码管显示译码器电路设计•一、项目资讯请根据要求在EDA实验箱上设计BCD-7段数码管显示译码器电路,要求:⑴使用EDA实验箱上开关设置模块的K4、K3、K2、K1开关作为BCD码输入;⑵使用EDA实验箱上键盘显示模块中最右边一位的数码管显示输入的BCD码编码数值;⑶进行功能仿真。一、项目资讯1、BCD-7段数码管显示译码器电路的工作原理。2、基于FPGA与VHDL的数字电路与数字系统设计方法与工作流程。3、WITH-SELECT语句与WHEN-ELSE语句及其应用。4、进程语句、CASE语句、IF语句及其应用。二、项目计划•⑴能在Max+PlusII软件平台上调试BCD-7段显示译码电路VHDL程序,并进行功能仿真;•⑵能在EDA实验系统上进行硬件验证测试。本项目涉及的VHDL语法•VHDL顺序语句(CASE)•变量与信号的区别•VHDL并行语句(PROCESS)硬件执行:并行执行(VHDL本质)仿真执行:顺序执行、并行执行分为两大类:顺序(Sequential)描述语句并行(Concurrent)描述语句ARCHITECTUREProcessProcessENTITYSequentialProcessCombinationalProcessportsportscomponentVHDL顺序语句(Sequential)顺序描述语句:执行顺序与书写顺序一致,与传统软件设计语言的特点相似。顺序语句只能用在进程与子程序中。可描述组合逻辑、时序逻辑。常用的顺序描述语句:赋值语句;if语句;case语句;loop语句;next语句;exit语句;子程序;return语句;wait语句;null语句。1、变量赋值与信号赋值变量与信号的差异:1)赋值方式的不同:变量:=表达式;信号=表达式;2)硬件实现的功能不同:信号代表电路单元、功能模块间的互联,代表实际的硬件连线;变量代表电路单元内部的操作,代表暂存的临时数据。3)有效范围的不同:信号:程序包、实体、结构体;全局量。变量:进程、子程序;局部量。ARCHITECTURE{SIGNALDeclarations}label1:PROCESS{VARIABLEDeclarations}label2:PROCESS{VARIABLEDeclarations}┇4)赋值行为的不同:信号赋值延迟更新数值、时序电路;变量赋值立即更新数值、组合电路。5)信号的多次赋值a.一个进程:最后一次赋值有效b.多个进程:多源驱动线与、线或、三态例:信号的多次赋值architecturertlofexissignala:std_logic;beginprocess(…)begina=b;…a=c;endprocess;endrtl;architecturertlofexissignala:std_logic;beginprocess(…)begina=b;…endprocess;process(…)begina=c;...endprocess;endex;例:信号赋值与变量赋值的比较信号赋值:architecturertlofsigissignala,b:std_logic;--定义信号beginprocess(a,b)begina=b;b=a;endprocess;endrtl;--结果是a和b的值互换变量赋值:architecturertlofvarisbeginprocessvariablea,b:std_logic;--定义变量begina:=b;b:=a;endprocess;endrtl;--结果是a和b的值都等于b的初值例:变量赋值实现循环语句功能process(indicator,sig)variabletemp:std_logic;begintemp:=‘0’;foriin0to3looptemp:=tempxor(sig(i)andindicator(i));endloop;output=temp;endprocess;以上语句等效为:process(indicator,sig)variabletemp:std_logic;begintemp:=‘0’;temp:=tempxor(sig(0)andindicator(0));temp:=tempxor(sig(1)andindicator(1));temp:=tempxor(sig(2)andindicator(2));temp:=tempxor(sig(3)andindicator(3));output=temp;endprocess;如改为信号,则无法实现原功能:……signaltemp:std_logic;……process(indicator,sig,temp)begintemp=‘0’;temp=tempxor(sig(0)andindicator(0));temp=tempxor(sig(1)andindicator(1));temp=tempxor(sig(2)andindicator(2));temp=tempxor(sig(3)andindicator(3));output=temp;endprocess;转向控制语句转向控制语句通过条件控制开关决定是否执行一条或几条语句,或重得执行一条或几条语句,或跳过一条或几条语句。分为五种:if语句、case语句、loop语句、next语句、exit语句case语句case语句常用来描述总线或编码、译码行为。可读性比if语句强。格式如下:case表达式iswhen分支条件=顺序处理语句;when分支条件=顺序处理语句;when分支条件=顺序处理语句;endcase;┇其中的分支条件可有以下的形式:when值=顺序处理语句;when值to值=顺序处理语句;when值|值|值|…|值=顺序处理语句;以上三种方式的混合;whenothers=顺序处理语句;Case语句使用注意:1)分支条件的值必须在表达式的取值范围内。2)两个分支条件不能重叠。3)CASE语句执行时必须选中,且只能选中一个分支条件。4)如果没有others分支条件存在,则分支条件必须覆盖表达式所有可能的值。对std_logc,std_logic_vector数据类型要特别注意使用others分支条件。例:用case语句描述四选一电路例:case语句的误用signalvalue:integerrange0to15;signalout_1:bit;casevalueis--缺少when条件语句endcase;casevalueis--分支条件不包含2到15when0=out_1=‘1’;when1=out_1=‘0’;endcase;casevalueis--在5到10上发生重叠when0to10=out_1=‘1’;when5to15=out_1=‘0’;endcase;例:根据输入确定输出值libraryieee;useieee.std_logic_1164.all;entitymux41isport(s4,s3,s2,s1:instd_logic;z4,z3,z2,z1:outstd_logic);endmux41;architectureartofmux41isbeginprocess(s4,s3,s2,s1)variablesel:integerrange0to15;beginsel:=0;ifs1=‘1’thensel:=sel+1;endif;ifs2=‘1’thensel:=sel+2;endif;ifs3=‘1’thensel:=sel+4;endif;ifs4=‘1’thensel:=sel+8;endif;z1=‘0’;z2=‘0’;z3=‘0’;z4=‘0’;caseseliswhen0=z1=‘1’;when1|3=z2=‘1’;when4to7|2=z3=‘1’;whenothers=z4=‘1’;endcase;endprocess;endart;常用的并行描述语句有:进程(process)语句、块(block)语句、顺序描述语句的并行版本、并行过程调用语句、元件例化语句、生成语句。进程(process)语句进程(process)语句最具VHDL语言特色。提供了一种用算法描述硬件行为的方法。特点:1、进程与进程,或其它并发语句之间的并发性;2、进程内部的顺序性;3、进程的启动与挂起;4、进程与进程,或其它并发语句之间的通信。进程语句process信号信号信号进程语句process进程语句process敏感信号表:进程内要读取的所有敏感信号(包括端口)的列表。每一个敏感信号的变化,都将启动进程。格式:[标记:]process[(敏感信号表)]{进程说明项}begin{顺序描述语句}endprocess[标记];信号名称{,信号名称}3、如果有wait语句,则不允许有敏感信号表。PROCESS(a,b)BEGIN--sequentialstatementsENDPROCESS;PROCESSBEGIN--sequentialstatementsWAITON(a,b);ENDPROCESS;BCD-7段显示译码器工作原理•BCD-7段译码器是由7个发光二极(LED)管构成,LED由特殊的半导体材料砷化镓、磷砷化镓等制成,组装成分段式或点阵式LED显示器件(半导体显示器)。分段式显示器(LED数码管)由7条线段围成8型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光,有红、黄、绿等色。只要按规律控制各发光段的亮、灭,就可以显示各种字形或符号。图5.1(a)是共阴式LED数码管的原理图,图5.1(b)是其表示符号。使用时,公共阴极接地,7个阳极a~g由相应的BCD-7段译码器来驱动(控制),如图5.1(c)所示。图中,电阻是上拉电阻,也称限流电阻,当译码器内部带有上拉电阻时,则可省去。数字显示译码器的种类很多,现已有将计数器、锁存器、译码驱动电路集于一体的集成器件,还有连同数码显示器也集成在一起的电路可供选用。BCD-7段显示译码器译码原理•BCD-7段译码器的输入是4位BCD码(以D、C、B、A表示),输出是数码管各段的驱动信号(以a~g表示),也称4—7译码器。若用它驱动共阴LED数码管,则输出应为高有效,即输出为高(1)时,相应显示段发光。例如,当输入8421码DCBA=0100时,应显示,即要求同时点亮b、c、f、g段,熄灭a、d、e段,故译码器的输出应为a~g=0110011,这也是一组代码,常称为段码。同理,根据组成0~9这10个字形的要求可以列出8421BCD-7段译码器的真值表,见表5.1。BCD7段译码器真值表BCD-7段显示译码器实体符号仿真参数、管脚分配参考教材三、项目实施•(1)硬件的选型及应用•(2)BCD-7段数码管显示译码器电路的VHDL程序设计•(3)BCD-7段数码管显示译码器电路的VHDL程序仿真•(4)BCD-7段数码管显示译码器电路的系统调试•(5)文档资料整理四、项目检查功能、技术指标的测试
本文标题:EDA技术_项目5_BCD-7段显示译码器N
链接地址:https://www.777doc.com/doc-752477 .html