1、在图1-1新建仿真波形文件,后缀名.SCF。出现图1-4的仿真波形编辑界面。图1-4仿真波形编辑界面(10)双击Name下方的空白处,在弹出的对话框中点击“List”按钮,添加输入、输出节点。选择输入节点A,点OK,再选择输入节点B,点OK。以此类推,将输入输出节点添加好。(11)在时钟输入端处设置好输入端口A、B方波脉冲,点击屏幕左侧,弹出对话框中,设置时钟周期,A为100ns,B为150ns。12)设置好的输入波形如图如示。(13)保存后,(选择菜单“FILE” project save&simulate).点击仿真按钮,就可以进行波形仿真,以验证电路的逻辑功能。六 实验电路1. 1位全加
2、器元件内部电路图2. 2位全加器内部电路图(采用上元件为基础)3. 封装2位全加器七 仿真结果及分析分析:由以上仿真结果可以看出与二位全加器逻辑功能相符,但有些地方由于延时问题,会出现竞争冒险情况,从而导致毛刺的出现实验二 数控分频器设计与仿真1学习并掌握MAX+PLUSII CPLD开发系统的操作技巧。2掌握数字逻辑电路的设计方法与功能仿真技巧。3学习VHDL源程序的编写调试方法。1PC机,1台2MAX+PLUSII CPLD软件开发系统,1套1预习教材中的相关内容;2编写好数控分频器VHDL源程序。 用VHDL设计一个数控分频器电路,并进行功能仿真与验证,要求预置数为(216),使输入时钟
3、信号根据预置数的不同,实现3分频。(1)开机,进入MAX+PLUSII CPLD开发系统;(3)在主菜单中选NEW,从输入文件类型选择第3项文本编辑输入方式,(4)输入VHDL源程序并保存,后缀名为.VHD。(5)检查修改语法错误。(6)编译.(7)建立仿真波形,进行电路逻辑功能验证。六 分频器-VHDL源程序library IEEE;USE IEEE.std_logic_1164.all;USE IEEE.std_logic_arith.all;USE IEEE.std_logic_unsigned.all;entity CLKDIV_3 is port(Clk_in :in STD_LOG
4、IC; Rst : Clk_out :out STD_LOGIC );end CLKDIV_3;architecture ART1 of CLKDIV_3 is signal Cnt2_q :INTEGER range 0 to 2; signal Div0,Div1 :STD_LOGIC;begin- Cnt_pd:process(Cnt2_q) is- begin- if(Cnt2_q=2)then- Cnt2_d=0;- else=Cnt2_q+1;- end if;- end process; Cnt_pq:process(Rst,Clk_in)is - begin if(Rst=1)
5、then cnt2_q elsif(Clk_inevent and Clk_in= if(cnt2_q=2)then cnt2_q else=cnt2_q+1; end if; end if; end process; Div0_p:process(Rst,Clk_in,cnt2_q)is Div0=; if(Cnt2_q=0)then Div0 elsif(Cnt2_q=1)then0=Div0; Div1_p:process(Rst,Clk_in)is Div1 Clk_outdevise菜单,选择计划使用的CPLD芯片。(8)打开Assign-pinLocationchip菜单,。按照下
6、表进行管脚映射。所需信号 对应引脚 K0 79 K1 78 K2 73 Y0 138 Y1 140 Y2 136 Y3 137 Y4 133 Y5 135 Y6 131 Y7 132 (9)下载到硬件进行电路功能验证。六 VHDL源程序及编译结果entity ym isport(k:in std_logic_vector(0 to 2); y:out std_logic_vector(0 to 7);end entity;architecture art of ym isprocess(k)case k is when 000=ynull;end case;end process;end ar
7、chitecture;七 心得与体会通过用VHDL设计一个3-8译码器电路,并进行功能仿真与下载测试,近一步熟悉了MAX+plus II 软件的应用,并通过下载映射进行硬件测试,提高了自身的实际操作与分析处理能力。实验六 数字秒表的设计1巩固和加深对MAXPLUSII CPLD开发系统的理解和使用;2掌握VHDL编程设计方法;3. 掌握硬件实验装置使用方法;4. 掌握综合性电路的设计、仿真、下载、调试方法。1PC机1台3. CPLD/FPGA实验系统及下载装置,1套三 实验内容 设计一个计时范围为0秒90秒的数字秒表,用数码管显示当前秒表的计时值,并设置一个计时清零开关、一个计时起、停控制开关
8、。四 设计思路1秒表的计时基准信号:以周期为1秒的计时脉冲CLK1作为一个比较精准的计时基准信号输入到秒个位计数器的时钟端;注:控制计数器逢10进1,每到90自动回0。2. 数码管译码显示和动态扫描电路: 将计数器输出的值用数码管显示需要BCD-七段数码管译码显示程序(实验四已经做过);而将秒表的各位动态显示在数码管上,需要扫描电路其中扫描电路输入端口:CLK2(1KHZ)为扫描时钟输入;五 实验预习要求1 预习VDHL语言关于时序电路的描述方法;2 理解本实验的基本结构;3 预先设计好该数字系统程序:6 VHDL源程序及编译结果use IEEE.std_logic_1164.all;use
9、IEEE.std_logic_unsigned.all;use IEEE.std_logic_arith.all;-use WORK.PGE.all;entity Sec_99 is port(Clk_1KHZ,Clk_1HZ :in std_logic; Disp_Bit :out std_logic_vector(1 downto 0); Disp_Seg :out std_logic_vector(7 downto 0)architecture behave of Sec_99 istype SEG7_ARRAY is array(1 downto 0) of std_logic_vec
10、tor(7 downto 0);type BCD_ARRAY is array(1 downto 0) of integer range 0 to 9; signal Disp_Buff :SEG7_ARRAY; signal Sec :BCD_ARRAY;function Conv_Seg7(Dat_In :integer range 0 to 9) return std_logic_vector is Variable Dat_Tmp :std_logic_vector(7 downto 0); case Dat_In is when 0 =Dat_Tmp:11000000 when 1
11、=11111001 when 2 =10100100 when 3 =10110000 when 4 =10011001 when 5 =10010010 when 6 =10000010 when 7 =11111000 when 8 =10000000 when 9 =10010000 end case; return Dat_Tmp;end function Conv_Seg7;- signal Clk_1KHZ,Clk_1HZ :std_logic;begin -Div1KHZ_P:process is- variable Div_Value :integer range 0 to 2
12、4999;-begin - wait until Clk_Inevent and Clk_In=- if(Div_Value=24999)then- Div_Value:- Clk_1KHZ= not Clk_1KHZ;- else=Div_Value+1;- end if;-end process;-Div1HZ_P:integer range 0 to 499;- wait until Clk_1KHZevent and Clk_1KHZ=- if(Div_Value=499)then- - Div_Value:- Clk_1HZ=not Clk_1HZ;- else - end if;S
13、ecCnt_P: wait until Clk_1HZevent and Clk_1HZ= if(Sec(0)=9)then if(Sec(1)=9)then Sec(1) else=Sec(1)+1; Sec(0) else=Sec(0)+1; end if;DispScan_P:process(Clk_1KHZ) isstd_logic_vector(1 downto 0):10 Variable i :integer range 0 to 1; if(Clk_1KHZ Disp_Seg=Disp_Buff(i); Disp_Bit=Dat_Tmp; Dat_Tmp :=not Dat_Tmp; if(i=0)then i:=1; else DatConv_P:process(Sec)isConv: for i in 0 to 1 loop Disp_Buff(i)=Conv_Seg7(Sec(i); end loop;编译结果:7 仿真结果及分析分析:由以上仿真结果可以看出数字秒表的功能与实验设计要求基本相符,但有些地方在实际电路中因为种种原因可能存在延时问题,即出现竞争冒险情况,可以通过改进减少毛刺的大小。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1