【正文】
hi,cbai: integer range 0 to 1。variable ge,shi,bai:integer range 0 to 20。begin ge:=d_ge+t_ge。 if ge=10 then ge:=ge10。 cge:=1。 else cge:=0。 end if。 shi:=d_shi+t_shi+cge。 if shi=10 then shi:=shi10。 cshi:=1。 else cshi:=0。 end if。 bai:=d_bai+t_bai+cshi。 if bai=10 then bai:=bai10。 cbai:=1。 else cbai:=0。 end if。mge=ge。mshi=shi。mbai=bai。end process。end。library ieee。use 。entity p is port(sclk,lclk,sta,doub: in std_logic。 time_ge,time_shi: out integer range 0 to 10。 pri_jiao,pri_ge,pri_shi,pri_bai: out integer range 0 to 10。 dis_fen,dis_ge,dis_shi: out integer range 0 to 10)。end。architecture beh of p isponent judge isport(sclk,sta,lclk: in std_logic。 dge: out std_logic)。end ponent。ponent time_count isport(sta,sclk,dge: in std_logic。 t_count: out std_logic。 minge: out integer range 0 to 10。 minshi: out integer range 0 to 10)。end ponent。ponent distance_count isport( sta,lclk,doub,dge: in std_logic。 kmfen,kmge,kmshi: out integer range 0 to 10。 d_count: out std_logic)。end ponent。ponent price_count isport(sta,t_count,d_count: in std_logic。 mjiao,mge,mshi,mbai: out integer range 0 to 10)。end ponent。signal w,x,y: std_logic。begin U1: judge port map(sta=sta,sclk=sclk,lclk=lclk,dge=w)。 U2: time_count port map(sta=sta,sclk=sclk,dge=w,t_count=x,minge=time_ge,minshi=time_shi)。 U3:distance_count port map(sta=sta,doub=doub,lclk=lclk,dge=w,d_count=y,kmfen=dis_fen,kmge=dis_ge,kmshi=dis_shi)。 U4: price_count port map(sta=sta,t_count=x,d_count=y,mjiao=pri_jiao,mge=pri_ge,mshi=pri_shi,mbai=pri_bai)。en