【正文】
Y O U 1 [ 3 . . 0 ]Y O U 2 [ 3 . . 0 ]R E S T [ 7 . . 0 ]Y O U 1 [ 3 . . 0 ]S O U T 3 [ 7 . . 0 ]LJZQC L KR E S TSPS E C O N D 1 [ 3 . . 0 ]S E C O N D 2 [ 3 . . 0 ]M I N I T U E 1 [ 3 . . 0 ]M I N I T U E 2 [ 3 . . 0 ]S E C O N D 1 [ 3 . . 0 ]S E C O N D 2 [ 3 . . 0 ]M I N I T U E 1 [ 3 . . 0 ]M I N I T U E 2 [ 3 . . 0 ]JI S H I [ 1 5 . . 0 ] B C D [ 1 5 . . 0 ] M I N GC L KS E C O N D 1 [ 3 . . 0 ]S E C O N D 2 [ 3 . . 0 ]M I N I T U E 1 [ 3 . . 0 ]M I N I T U E 2 [ 3 . . 0 ]Y O U [ 3 . . 0 ]D I S P [ 7 . . 0 ]L E D C S [ 7 . . 0 ]T I M E: U 4 SO U : U 5F EN G M I N G : U 6C L K_ a i nM I N G _ o u tSI N _ a i n [ 7 . . 0 ]L ED C S_ o u t [ 7 . . 0 ]D I SP_ o u t [ 7 . . 0 ]R ST _ a i n [ 7 . . 0 ]H U A N Y O U : U 2H U A N Y O U 2 : U 3SU O C U N Q I : U 1D I SPL A Y : U 7 4 總結 我們先從呼叫系統所需要的的功能及其應該具有的功能下手 ,總結出這些,并對每個功能模塊進行 VHDL 的編譯 ,使得每一個模塊可以完成相應的功能 。 END ARCHITECTURE F1。 U6 : FENGMING PORT MAP ( BCD = B , MING = MING_out )。 U4 : TIME PORT MAP ( REST = C , SP = D , CLK = CLK_ain , SECOND1 = H ,SECOND2 = I , MINITUE1 = J , MINITUE2 = K ,SE1 = S1 ,SE2 = S2 , MI2 = M2 , MI1 = M1 , TI =L )。 U2 : HUANYOU PORT MAP ( SOUT = A ,YOU1 = F ,YOU2 = G )。 SIGNAL K : STD_LOGIC_VECTOR ( 3 DOWNTO 0 ) 。 SIGNAL I : STD_LOGIC_VECTOR ( 3 DOWNTO 0 ) 。 SIGNAL G : STD_LOGIC_VECTOR ( 3 DOWNTO 0 ) 。 SIGNAL E : STD_LOGIC_VECTOR ( 7 DOWNTO 0 ) 。 SIGNAL C : STD_LOGIC。 SIGNAL A : STD_LOGIC_VECTOR ( 7 DOWNTO 0 ) 。 DISP,LEDCS :OUT STD_LOGIC_VECTOR(7 DOWNTO 0))。 SECOND1,SECOND2,MINITUE1,MINITUE2:IN 基于 FPGA 的病房呼叫系統的設計 18 STD_LOGIC_VECTOR(3 DOWNTO 0) 。 END COMPONENT 。 COMPONENT FENGMING PORT (BCD: IN STD_LOGIC_VECTOR(15 DOWNTO 0)。 JISHI : OUT STD_LOGIC_VECTOR(15 DOWNTO 0))。 MINITUE1 : IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 COMPONENT SOU PORT (SECOND1 : IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 SECOND1,SECOND2,MINITUE1,MINITUE2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0))。 COMPONENT TIME PORT (REST,SP,CLK:IN STD_LOGIC。 LJ:OUT STD_LOGIC)。 SOUT3:IN STD_LOGIC_VECTOR(7 DOWNTO 0) 。 COMPONENT HUANYOU2 PORT (REST:IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 YOU2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0))。 COMPONENT HUANYOU PORT (SOUT:IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 SOUT3:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) )。 SOUT1:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)。 ARCHITECTURE F1 OF xitong IS COMPONENT SUOCUNQI PORT ( REST:IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 DISP_out: OUT STD_LOGIC_VECTOR ( 7 DOWNTO 0 ))。 SCOUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)。 CLK_ain : IN STD_LOGIC。 ENTITY xitong IS PORT (SIN_ain : IN STD_LOGIC_VECTOR ( 7 DOWNTO 0 )。 USE 。 END ARCHITECTURE 。 MING=ING。 END IF 。 END IF 。 END IF 。 END IF 。 END IF 。039。039。039。039。039。139。039。039。039。039。039。139。 ARCHITECTURE BHV OF FENGMING IS SIGNAL ING : STD_LOGIC。 MING: OUT STD_LOGIC)。 USE 。超過三分鐘時再另蜂鳴器工作 5 秒,進行報警工作。 END ARCHITECTURE ONE 。 JISHI(7 DOWNTO 4)=MINITUE1。 ARCHITECTURE ONE OF SOU IS BEGIN JISHI(15 DOWNTO 12)=SECOND1。 JISHI : OUT STD_LOGIC_VECTOR(15 DOWNTO 0))。 MINITUE1 : IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 ENTITY SOU IS PORT(SECOND1 : IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 程序: LIBRARY IEEE。 功能仿真: 掃描信號為 4,時間輸入為零,病房號為 3 連接器: 由于各個模塊成功之后進行頂層設計時,計時器與蜂鳴器的位寬不相等,故設計一個連接模塊,使得兩塊模版能夠順利銜接起。 END PROCESS。 WHEN OTHERS =NULL。—— 橫杠 WHEN 1011=DISP=10111111 ?!?8 WHEN 1001=DISP=10010000 。 —— 6 WHEN 0111=DISP=11111000 ?!?4 WHEN 0101=DISP=10010010 ?!?2 WHEN 0011=DISP=10110000 。—— 0 WHEN 0001=DISP=11111001 。 END PROCESS 。 END IF。 END IF。 END IF 。 CNT2:=0000。 ELSE IF CNT2 =0110 THEN LEDCS=00100000。 ELSE IF CNT2 =0101 THEN LEDCS=00000001。 ELSE IF CNT2 =0100 THEN LEDCS=00000010。 ELSE IF CNT2 =0011 THEN LEDCS=00000100。 ELSE IF CNT2 =0010 THEN LEDCS=00001000。 IF CNT2 =0001 THEN LEDCS=00010000。139。 BEGIN IF CLK_1K39。 END PROCESS。 END IF。039。 ELSE CNT:=0。 ELSE IF CNT 20200 THEN CLK_1K=39。 IF CNT 10000 THEN CLK_1K=39。 BEGIN PROCESS(CLK) VARIABLE CNT : INTEGER RANGE 0 TO 20200。 ARCHITECTURE ONE OF DISPLAY IS SIGNAL CLK_1K : STD_LOGIC 。 DISP,LEDCS :OUT STD_LOGIC_VECTOR(7 DOWNTO 0))。 SECOND1,SECOND2,MINITUE1,MINITUE2:IN STD_LOGIC_VECTOR(3 DOWNTO 0) 。 USE 。 USE 。 基于 FPGA 的病房呼叫系統的設計 11 功能仿真: 功能仿真中用的是 4 分頻 顯示器: 顯示器所要顯示的就是優(yōu)先級最高的呼叫病房的號碼以及呼叫等待的時間 mmss,所以在模塊的設計當中,我們用六個數碼管依次顯示當前最優(yōu)先呼叫病房號和 分的十位,個位,再一個數碼管顯示一橫杠,和秒計位區(qū)分開來,再依次是秒的十位,秒的個位。 END PROCESS。 END IF 。 END IF 。 END IF 。 IF MINI20101 THEN MINI2=MINI2+1。 IF MINI11001 THEN MINI1=MINI1+1。 IF SEC20101 THEN SEC2=SEC2+1。 THEN IF SEC11001 THEN SEC1=SEC1+1。EVENT AND TIMECLK =39。 SEC1 =0000。 MINI1=0000。039。 END IF。 END IF。 TIMECLK=39。039。139。 THEN CNT := CNT +1。) AND SP=39。EVENT AND CLK =39。 PROCESS(CLK,SP) VARIABLE CNT : integer range 0 to 120 。 SECOND1(3 DOWNTO 0 )=SEC1(3 DOWNTO 0)。 BEGIN MINITUE1(3 DOWNTO 0)=MINI1(3 DOWNTO 0)。 SIGNAL SEC1,SEC2:STD_LOGIC_VECTOR(3 DOWNTO 0 )。 ARCHITECTURE TWO OF TIME1 IS SIGNAL TIMECLK:STD_LOGIC。 SECOND1,SECOND2,MINITUE1,MINITUE2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0))。 ENTITY TIME1 IS PORT(REST,SP,CLK:IN STD_LOGIC。 USE 。 END TWO 。 TI=TIMECLK。 END IF 。 END IF 。 基于 FPGA 的病房呼叫系統的設計 9 END IF 。 IF MINI20101 THEN MINI2=MINI2+1。 IF MINI11001 THEN MINI1=MINI1+1。 IF SEC20101 THEN SEC2=SEC2+1。 THEN IF SEC11001 THEN SEC1=SEC1+1。EVENT AND TIMECLK =39。 SEC1 =0000。 MINI1=0000。039。 END PROCESS。 END IF。039。 ELSE CNT :=0 。 ELSE IF CNT 20200000 THEN TIMECLK=39。 IF CNT 10000000 THEN TIMECLK=39。139。139。 BEGIN IF CLK39。 SECOND2(3 DOWNTO 0 )=SEC2(3 DOWNTO 0)。 MINITUE2(3 DOWNTO 0)=MINI2(3 DOWNTO 0)。 SIGNAL MINI1,MINI2:STD_LOGIC_VECTOR(3 DOWNTO 0 )