【正文】
。 KEY 1~6 號鍵代表 1~6 號選手的搶答按鈕。最左邊一位顯示 0,表示搶答成功的選手號碼。 NET“ BJ” LOC = E10。 NET“ SEG[5]” LOC = A13。 NET“ SEG[3]” LOC = C12。 NET“ SEG[1]” LOC = B12。 NET“ DIG[2]” LOC = E7。 NET“ DIG[0]” LOC = F8。 NET“ XS[5]” LOC = J7。 NET“ XS[3]” LOC = G5。 NET“ XS[1]” LOC =E4。 NET“ START” LOC = L5。具體連接方式見下圖 。 AJXC 仿真波形 五 、 系統(tǒng)設計實現(xiàn) 設計一個 TOP 模塊,將 6 個功能模塊連接。 END PROCESS。139。 wait for 200ns。 start_in=39。139。 wait for 50ns。 start_in=39。139。 END PROCESS。139。 wait for 100 ps。 tb : PROCESS BEGIN clk=39。 Outputs SIGNAL start_out : std_logic。 SIGNAL clk : std_logic := 39。 Inputs SIGNAL start_in : std_logic := 39。 start_out : OUT std_logic )。 ARCHITECTURE behavior OF TEST_AJXC_vhd IS Component Declaration for the Unit Under Test (UUT) COMPONENT AJXC PORT( start_in : IN std_logic。 USE 。 USE 。 end Behavioral。 end process。 then t=00000。 if start_in=39。 k2=k1。 t=t+1。 else k1=39。 then if t=31 then k1=39。 event and clk=39。 signal t: STD_LOGIC_VECTOR (4 downto 0)。 end AJXC。 clk : in STD_LOGIC。 use 。 use 。 use 。我們采用 5ms的定時器掃描采樣 FPGA 管腳電平,如果連續(xù) 3次為低電平時,可以認為此時按鍵已穩(wěn)定,輸出一個低電平按鍵信號;繼續(xù)采樣的過程中果不能滿足連續(xù) 3次采樣為低,則認為鍵穩(wěn)定狀態(tài)結(jié)束,這時輸出變?yōu)楦唠娖秸J為按鍵松開 。 END。 wait for 100 ns。 wait for 100 ns。 wait for 100 ns。 wait for 100 ns。 wait for 100 ns。 wait for 100 ns。 wait for 100 ns。 wait for 100 ns。 wait for 100 ns。 wait for 100 ns。 BEGIN Instantiate the Unit Under Test (UUT) uut: YMQ PORT MAP( DOUT = DOUT, SEG = SEG )。)。 Inputs SIGNAL DOUT : std_logic_vector(3 downto 0) := (others=39。 SEG : OUT std_logic_vector(6 downto 0) )。 ENTITY TEST_YMQ_vhd IS END TEST_YMQ_vhd。 USE 。 ( 3) 仿真程序 及波形 Company: Engineer: Create Date: 11:44:15 11/14/2020 Design Name: YMQ Module Name: E:/2020054020200/mentalgrab0020/ Project Name: mentalgrab0020 Target Device: Tool versions: Description: VHDL Test Bench Created by ISE for module: YMQ Dependencies: Revision: Revision File Created Additional Comments: Notes: This testbench has been automatically generated using types std_logic and std_logic_vector for the ports of the unit under test. Xilinx remends that these types always be used for the toplevel I/O of a design in order to guarantee that the testbench will bind correctly to the postimplementation simulation model. LIBRARY ieee。 architecture Behavioral of YMQ is begin SEG =0000001 WHEN DOUT = 0000 ELSE 1001111 WHEN DOUT = 0001 ELSE 0010010 WHEN DOUT = 0010 ELSE 0000110 WHEN DOUT = 0011 ELSE 1001100 WHEN DOUT = 0100 ELSE 0100100 WHEN DOUT = 0101 ELSE 0100000 WHEN DOUT = 0110 ELSE 0001111 WHEN DOUT = 0111 ELSE 0000000 WHEN DOUT = 1000 ELSE 0000100 WHEN DOUT = 1001 ELSE 1111111 。 SEG : out STD_LOGIC_VECTOR (6 downto 0))。 use 。 use 。 use 。 SACN 仿真波形 譯碼電路 (YMQ) ( 1) 該電路對掃描顯示電路輸出的數(shù)據(jù)信號進行譯碼,輸出到數(shù)碼管上進行顯示。 END PROCESS。T0=1001。 S=1000。T0=0010。 STIM : PROCESS BEGIN S=0110。 WAIT FOR 10 NS。 CLK=39。039。 BEGIN Instantiate the Unit Under Test (UUT) uut: SCAN PORT MAP( CLK = CLK, S = S, T10 = T10, T0 = T0, DIG = DIG, DOUT = DOUT )。 Outputs SIGNAL DIG : std_logic_vector(2 downto 0)。039。)。 SIGNAL T10 : std_logic_vector(3 downto 0) := (others=39。039。039。 END COMPONENT。 DIG : OUT std_logic_vector(2 downto 0)。 T10 : IN std_logic_vector(3 downto 0)。 ARCHITECTURE behavior OF TEST_SCAN_vhd IS Component Declaration for the Unit Under Test (UUT) COMPONENT SCAN PORT( CLK : IN std_logic。 USE 。 USE 。 end Behavioral。 END PROCESS。 WHEN OTHERS =DOUT =1111。 WHEN 001 =DOUT =T10。 END PROCESS。 END IF。 THEN IF Q=111 THEN Q=000。 EVENT AND CLK1K=39。 END PROCESS。 END IF。 CLK1K=NOT CLK1K。139。 begin PROCESS(CLK) BEGIN IF CLK39。039。 architecture Behavioral of SCAN is SIGNAL CNT:INTEGER RANGE 1 TO 24000:=1。 DOUT : out STD_LOGIC_VECTOR (3 downto 0))。 T0 : in STD_LOGIC_VECTOR (3 downto 0)。 S : in STD_LOGIC_VECTOR (3 downto 0)。 use 。 use 。 use 。 4 個輸入端口:系統(tǒng)時鐘、選手號碼、時間十位數(shù)據(jù)、時間個位數(shù)據(jù); 2 個輸出端口:輸出的三位掃描信號,顯示數(shù)據(jù)信號。 BJQ 仿真波形 掃描顯示電路 (SCAN) ( 1) 該電路主要實現(xiàn)的功能是:對倒計時時間和搶到的選手號碼進行顯示。 END PROCESS。139。WAIT FOR 100 NS。 START=39。039。WAIT FOR 200 mS。 QZ=39。139。WAIT FOR 100 NS。 START =39。139。139。139。 END PROCESS。139。wait for 10 Ns。 tb : PROCESS BEGIN clk=39。 Outputs SIGNAL BJ : std_logic。 SIGNAL START : std_logic := 39。 SIGNAL SJD : std_logic := 39。 SIGNAL QZ : std_logic := 39。 Inputs SIGNAL CLK : std_logic := 39。 BJ : OUT std_logic )。 SJD : IN std_logic。 ARCHITECTURE behavior OF TEST_BJQ_vhd IS