' then dout<="00";Р?else?if (t=3)thenР t:=1;Р dout<=q;Р elsif(clk'event and clk='1')thenР t:=t+1;Р q(0)<=din;Р q(1)<=q(0);Р end if;?Р end if;?Р?end process;?Рend behav;Р串并转换波形仿真如图3-3所示。Р图3-3串并转换波形仿真图Р根据仿真图可以看出此模块实现的是输入两位串行数据进入系统,但只在第二位数据的位置输出数据,以此来实现串行输入的数据转化为并行数据输出。例如图中串行数据010101011111等输入(din),并行数据01、01、01、01、11、11对应输出(dout)。由于每次输入都是两位数据,在第一个时钟(clk)上升沿到来时不输出数据。Р3.2.3计数器Р计数器在数字系统中主要是对脉冲的个数进行计数,此模块设计是要数脉冲在第几个位置,因为输入是两位的二进制数据,则输出只有00,01,10,11四个二进制数,也就是有4个位置。计数器就是要确定每一位输入数据的脉冲位置,计数周期是4。Рlibrary ieee;Рuse ieee.std_logic_1164.all;Рuse ieee.std_logic_unsigned.all;Рentity jishuqi4 isРport(clk,rst,en:in std_logic;Р?q:out std_logic_vector(1 downto 0));Рend jishuqi4;Рarchitecture one of jishuqi4 isРsignal tmp:std_logic_vector(1 downto 0);РbeginР?process(clk,rst,en)Р?beginР?if(rst='0')then tmp<="00";