赞
踩
1、熟悉Quartus的使用。
2、掌握用VHDL语言和FPGA进行组合逻辑电路的设计方法。
1、用VHDL设计一个四舍五入判别电路,其输入为8421BCD码,要求当输入大于或等于5时,判别电路输出为1;反之为0。
2、用VHDL设计3个开关控制一盏灯的逻辑电路,要求当开关都断开时,灯灭;任一开关闭合或断开,灯的状态变换一次。
3、用VHDL设计一个4选1数据选择器,信号A、B、D3、D2、D1、Do、Y、S。要求S=“0”时,根据A、B的状态mi选择输出端Y=Di。
4、用VHDL设计一个3线-8线译码器,信号A、B、C、Y7、Y6、Y5、Y4、Y3、Y2、Y1、Yo、S。要求S=“0”时,根据A、B、C的状态mi选择输出端Yi=“0”。
1.1 实验设计
本实验中要求设计四舍五入判别电路,在VHDL代码中采用if语句达到实验目的。其中以数字五为判别条件,其二进制为0101,当时钟信号clk =’1’时,若输入小于0101,则输出为0,若输入大等于0101,则输出为1。
实验中,当时钟信号clk=’1’时,输出Y发生变化,且当输入X小于”0101”时,输出Y=’0’;当输入X大于等于”0101”时,输出Y=’1’
1.2实验代码
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity circuit is port( X : IN std_logic_vector(3 DOWNTO 0); CLK:IN std_logic; Y : OUT std_logic); end circuit; architecture A of circuit is begin process (X,CLK) begin if X < "0101" and clk='1' then Y <= '0'; elsif X >= "0101" and clk='1' then Y <= '1'; end if; end process; end A;
仿真代码(init及always进程)
init : PROCESS BEGIN X <= "0000"; wait for 200 ns; X <= "0001"; wait for 200 ns; X <= "0010"; wait for 200 ns; X <= "0011"; wait for 200 ns; X <= "0100"; wait for 200 ns; X <= "0101"; wait for 200 ns; X <= "0110"; wait for 200 ns; X <= "0111"; wait for 200 ns; X <= "1000"; wait for 200 ns; X <= "1001"; wait for 200 ns; X <= "1010"; wait for 200 ns; X <= "1011"; wait for 200 ns; X <= "1100"; wait for 200 ns; X <= "1101"; wait for 200 ns; X <= "1110"; wait for 200 ns; X <= "1111"; wait for 200 ns; WAIT; END PROCESS init; always : PROCESS BEGIN clk <= '1'; wait for 100 ns; clk <= '0'; wait for 100 ns; END PROCESS always; E
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。