第四章PLD设计实例本章中,我们将应用VHDL语言和电路原理图,在Altera公司的MAX+PLUSII软件平台上实现一些PLD设计实例。实例中所用的芯片是Altera公司可编程逻辑器件EPF10K10LC84-3,并将每一设计结果下载到杭州众和电子技术开发有限公司开发的EDA实验开发系统上进行验证和演示。4.1数字显示译码器一.设计要求:当每输入一脉冲信号时,数码管就显示一随脉冲信号递增的十六进制数,从数字1开始直至数字F。二.设计方法:此电路的设计框图如图4-1a所示。当低频的脉冲信号输入计数器后,七段译码器将计数器的输出译为相应的十六进制数,并由数码管显示出来。设计时,底层的计数器、译码器模块可由VHDL语言来实现;顶层的设计则可直接采用原理图输入法(图4-1b)。图4-1a数字显示译码器的设计框图三.源程序和原理图:四位二进制加法计数器七段译码器共阴极数码管脉冲信号libraryieee;useieee.std_logic_1164.all;entitycnt4bisport(clk:instd_logic;--时钟信号clr:instd_logic;--清零信号en:instd_logic;--时钟使能信号dout:bufferintegerrange0to15);end;architectureoneofcnt4bisbeginprocess(clk,clr,en)beginifclr='1'thendout<=0;elsif(clk'eventandclk='1')thendout<=dout+1;endif;四位二进制加法计数器cnt4b.vhd的VHDL源程序ifen='1'thendout<=dout+1;endif;endif;endprocess;end;libraryieee;useieee.std_logic_1164.all;entitydeclisport(din:instd_logic_vector(3downto0);--输入四位二进制数cs:instd_logic;--时钟信号com:outstd_logic;--位选信号led7s:outstd_logic_vector(6downto0)--输出七段码);end;architectureoneofdeclisbeginprocess(din)begincom<=cs;casediniswhen"0000"=>led7s<="0111111";--显示“0”when"0001"=>led7s<="0000110";--显示“1”when"0010"=>led7s<="1011011";--显示“2”when"0011"=>led7s<="1001111";--显示“3”when"0100"=>led7s<="1100110";--显示“4”when"0101"=>led7s<="1101101";--显示“5”when"0110"=>led7s<="1111101";--显示“6”when"0111"=>led7s<="0000111";--显示“7”when"1000"=>led7s<="1111111";--显示“8”when"1001"=>led7s<="1101111";--显示“9”when"1010"=>led7s<="1110111";--显示“A”when"1011"=>led7s<="1111100";--显示“B”七段译码器decl.vhd的VHDL源程序图4-1b数字显示译码器原理图四.实验板配置:本实例采用实验板中的第8种结构。时钟信号CLK1采用CLOCK1中的任何一组,CLK2采用CLOCK2中的1024HZ,按键5作为清零控制信号,按键6作为时钟使能信号,译码结果显示在数码管1上。习题:设计一能递增显示各种不同符号的显示器,工作方式同此实例。4.28位二进制并行加法器一.设计要求:当外加时钟信号的上升沿到达时,能实现8位二进制数并行相加,并输出和及进位信号。二.设计方法:多位加法器的构成有两种方式:并行和串行。并行加法器是一种超前进位加法逻辑电路,每位的进位只由加数和被加数决定,而与低位的进位无关,因而运算速度较快;串行加法器则是将全加器级联构成多位加法器,虽然电路比较简单,但运算速度较慢。并行加法器通常比串行级联加法器占用更多的资源,随着位数的增加,相同位数的并行加法器与串行加法器的容量差快速增大。因此,在工程中使用加法器时,要在速度和容量之间寻找平衡。实验结果表明,4位二进制并行加法器和串行级联加法器占用几乎相同的资源。这样,when"1100"=>led7s<="0111001";--显示“C”when"1101"=>led7s<="1011110";--显示“D”when"1110"=>led7s<="1111001";--显示“E”when"1111"=>led7s<="1110001";--显示“F”whenothers=>led7s<=null;endcase;endprocess;end;多位数加法器可以由4位二进制并行加法器串联构成。本实例中的8位二进制并行加法器即是由2个4位二制并行加法器级联而成的。4位二制并行加法器由VHDL语言来实现;顶层的8位二进制并行加法器则通过原理图输入法将两个4位二进制加法器级连而成。三.源程序和原理图:4位二进制并行加法器add4b.vhd的VHDL语言源程序图4-28位二进制并行加法器原理图四.实验板配置:libraryieee;useieee.std_logic_1164.all;...