目录1 课程设计题目`内容与要求………………………设计内容具体要求2系统设计…………………………设计思路系统原理3 系统实现……………………………………………4 系统仿真……………………………………………5硬件验证(操作)说明………………………………6 总结…………………………………………………7参考书目……………………………………………一、课程设计题目、内容与要求课程设计的题目:篮球比赛记分牌课程设计内容:1、根据比赛实际情况记录两队得分,罚球进的1分,进球的2分;2、记分牌要具有纠错功能,能减1分、2分功能;3、利用3个译码显示管输出比赛的分;二、系统设计设计思路:篮球比赛记分牌是记录两队比赛的得分情况,并能够进行纠错功能;根据系统设计的要求,篮球记分牌的电路原理框图如下:系统原理与设计说明系统各个模块的功能如下:1、D触发器电路模块实现翻转功能当出错时,输出为1,使电路回到上一个正确的状态。
2、4为二进制全加器电路模块实现加法计数功能。
3、移位寄存器电路模块保存比赛两队得分情况的4个相邻状态,出错时将调用上一个正确状态。
4、二选一数据选择器电路模块用来控制移位寄存器5、 LED数码管驱动电路模块三、系统实现各模块电路的源程序如下:1、D触发器电路模块及程序:set输入(Q=1),清零应该可以用复位键reset吧(Q=0)。
library ieee;useentity sync_rsdff isport(d,clk : in std_logic;set : in std_logic;reset: in std_logic;q,qb : out std_logic);end sync_rsdff;architecture rtl_arc of sync_rsdff isbeginprocess(clk)beginif (clk'event and clk='1') thenif(set='0' and reset='1') thenq<='1';qb<='0';elsif (set='1' and reset='0') thenq<='0';qb<='1';elseq<=d;qb<=not d;end if;end if;end process;end rtl_arc;2、移位寄存器模块电路及程序:library IEEE;use shft_reg isport (DIR : in std_logic;CLK : in std_logic;CLR : in std_logic;SET : in std_logic;CE : in std_logic;LOAD : in std_logic;SI : in std_logic;DATA : in std_logic_vector(3 downto 0);data_out : out std_logic_vector(3 downto 0) );end shft_reg;architecture shft_reg_arch of shft_reg issignal TEMP_data_out : std_logic_vector(3 downto 0);beginprocess(CLK)beginif rising_edge(CLK) thenif CE = '1' thenif CLR = '1' thenTEMP_data_out <= "0000";elsif SET = '1' thenTEMP_data_out <= "1111";elsif LOAD = '1' thenTEMP_data_out <= DATA;elseif DIR = '1' thenTEMP_data_out <= SI & TEMP_data_out(3 downto 1);elseTEMP_data_out <= TEMP_data_out(2 downto 0) & SI;end if;end if;end if;end if;end process;data_out <= TEMP_data_out;end architecture;3、二选一数据选择器电路模块及程序:entity mux isport(do,d1:in bit;sel:in bit;q:out bit);end mux;architecture a of mux isbeginq<=(do and sel)or(not sel and d1);end a;4、加法计数器的电路模块及程序:LIBRARY IEEE;USE add4 ISPORT(a1,a2,a3,a4:IN STD_LOGIC;b1,b2,b3,b4:IN STD_LOGIC;sum1,sum2,sum3,sum4:OUT STD_LOGIC;cout4:OUT STD_LOGIC);END add4;ARCHITECTURE add_arc OF add4 ISSIGNAL cout1,cout2,cout3:STD_LOGIC;COMPONENT halfaddPORT(a,b:IN STD_LOGIC;sum,hcarry:OUT STD_LOGIC);END COMPONENT;COMPONENT fulladdPORT(in1,in2,cin:STD_LOGIC;fsum,fcarry:OUT STD_LOGIC);END COMPONENT;BEGINu1:halfadd PORT MAP(a=>a1,b=>b1,sum=>sum1,hcarry=>cout1);u2:fulladd PORT MAP(in1=>a2,in2=>b2,cin=>cout1,fsum=>sum2,fcarry=>cout2);u3:fulladd PORT MAP(in1=>a3,in2=>b3,cin=>cout2,fsum=>sum3,fcarry=>cout3);u4:fulladd PORT MAP(in1=>a4,in2=>b4,cin=>cout3,fsum=>sum4,fcarry=>cout4);END add_arc;5、七段译码电路及程序:library ieee;use deled isport(datain:in std_logic_vector(3 downto 0);qout:out std_logic_vector(6 downto 0) );end deled;architecture func of deled isbeginprocess(datain)beginif datain= "0000" then qout<="1111110";elsif datain= "0001" then qout<="0110000";elsif datain= "0010" then qout<="1101101";elsif datain= "0011" then qout<="1111001";elsif datain= "0100" then qout<="0110011";elsif datain= "0101" then qout<="1011011";elsif datain= "0110" then qout<="1011111";elsif datain= "0111" then qout<="1110000";elsif datain= "1000" then qout<="1111111";elsif datain= "1001" then qout<="1111011";else null;end if;end process;end func;四、系统仿真1、D触发器电路模块仿真波形:2、移位寄存器模块电路仿真波形:3、二选一数据选择器电路模块仿真波形:4、加法计数器的电路模块仿真波形:5、七段译码电路仿真波形:五﹑硬件验证说明这次设计采用的硬件电路有芯片EP1K10TC100-3,实验板上标准时钟电路、LED 显示等,六、总结此课题说明了使用VHDL语言设计数字电路的方法以及VHDL语言在数字电路设计仿真中的重要作用,仿真结果表明VHDL 语言应用于数字电路仿真是切实可行的,该语言在电子设计领域受到了广泛的接受。
用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。
通过对本设计项目的研究,使我进一步了解了EDA、数字电路等多门课程,使得所学的专业知识有机地结合起来,得到了实践和运用的机会,且通过实践和运用巩固了相关的理论知识,提高了工程实践能力。
例如:使用MAX+PLUSII软件和硬件实验平台都得到了充分的锻炼。
设计过程中,由于知识的局限性,我们遇到过很多困难,不知这样把各个功能模块很好的结合起来,耗费了大了量的时间,但我们并没放弃, 克服困难,逐步摸索方法,找到问题所在,缩短了设计周期。
从本设计看出,要做真正的设计、研究,我们现在的知识还远远不够,还需学习更多、更广、更先进的知识才行!七、参考书目[1]《PLD与数字系统设计》李辉西安电子科技大学出版社 2005[2]《EDA技术及可编程逻辑器件应用实训》沈明山北京科学出版社 2004[3]《VHDL数字系统设计与高层次综合》林敏方颖立著北京:电子工业出版社 2002[4]《VHDL程序设计》曾繁泰陈美金著北京:清华大学出版社 2001[5]《EDA技术实验与课程设计》曹昕燕周风臣清华大学出版社 2005[6]《PLD器件与EDA技术》李冬梅北京广播学院出版社2000。