BJ-EPM CPLD開發(fā)板:VHDL入門例程5(3)

2012年05月16日 11:02 來(lái)源:本站整理 作者:秩名 我要評(píng)論(0)

 --乘法運(yùn)算0-21計(jì)數(shù)器

  if (Mux_en_in = '1' AND cnt < 10#22#) then --啟動(dòng)計(jì)數(shù)

  cnt := cnt+1;

  cnt0_en <= '0';

  else --計(jì)數(shù)清零

  cnt := 0;

  cnt0_en <= '1';

  end if;

  --乘法運(yùn)算操作邏輯

  if (cnt = 0) then

  Mux_yout <= x"00000000";

  elsif (cnt > 1 AND cnt < 18) then

  if (areg(cnt-2) = '1') then

  Mux_yout(14 downto 0) <= Mux_yout(15 downto 1); --bit14-0累加并移位

  Mux_yout(31 downto 15) <= ('0' & Mux_yout(31 downto 16)) + ('0' & breg); --bit31-15累加并移位

  --Mux_yout(31) <= '0'; --bit31補(bǔ)0

  --yout_r = {{1'b0,yout[31:16]}+{1'b0,breg},yout_r[15:1]};

  else

  Mux_yout <= '0' & Mux_yout(31 downto 1); --移位不累加

  end if;

  --elsif (cnt = 17 AND areg(15) = '1') then

  --Mux_yout(31 downto 16) <= Mux_yout(31 downto 16) + breg;

  end if;

  --乘法運(yùn)算完成標(biāo)志位Mux_done_out產(chǎn)生邏輯

  if (cnt = 19) then

  Mux_done_out <= '1';

  else

  Mux_done_out <= '0';

  end if;

  end if;

  end process;

  end architecture MUX;

上一頁(yè)123

本文導(dǎo)航