logo资料库

串并转换之VHDL.doc

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity sipo is port(d_in : in std_logic:='1'; clk : in std_logic; reset : in std_logic:='0'; d_out : out std_logic_vector(11 downto 0); data_flag: out std_logic:='0' ); end sipo; architecture a of sipo is signal q : std_logic_vector(11 downto 0); type work_type is (init,working); signal work_st : work_type:=init; begin -- process(clk,reset) variable data_cnt: integer range 15 downto 0:=0; begin if reset ='1' then q<= (others=> '0'); d_out <= (others=>'0'); data_cnt:=0; data_flag <= '0'; work_st <= init; elsif clk 'event and clk = '1' then q(0)<=d_in; for i in 11 downto 1 loop q(i)<=q(i-1); end loop; -- if work_st = init then if data_cnt /= 12 then data_cnt:=data_cnt+1; data_flag <= '0'; else data_flag <= '1'; d_out <= q; data_cnt:=0; work_st <= working; end if; else
if data_cnt/=11 then data_cnt:= data_cnt+1; data_flag<= '0'; else data_flag <= '1' ; data_cnt := 0; d_out <= q; end if; end if; end if; end process; -- end a;
分享到:
收藏