⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sort4.vhd

📁 完整的TPC编译码VHDL程序
💻 VHD
📖 第 1 页 / 共 2 页
字号:

                      d20_num<=d11_num;
                      d21_num<=L1_num;
                      d22_num<=d12_num;
                      d23_num<=d13_num;

                   elsif L1<d13 then
                      d20<=d11;
                      d21<=d12;
                      d22<=L1;
                      d23<=d13;

                      d20_col<=d11_col;
                      d21_col<=d12_col;
                      d22_col<=L1_col;
                      d23_col<=d13_col;

                      d20_num<=d11_num;
                      d21_num<=d12_num;
                      d22_num<=L1_num;
                      d23_num<=d13_num;
                   elsif L1=d13 and L1_col<d13_col then
                      d20<=d11;
                      d21<=d12;
                      d22<=L1;
                      d23<=d13;

                      d20_col<=d11_col;
                      d21_col<=d12_col;
                      d22_col<=L1_col;
                      d23_col<=d13_col;

                      d20_num<=d11_num;
                      d21_num<=d12_num;
                      d22_num<=L1_num;
                      d23_num<=d13_num;
                   else
                      d20<=d11;
                      d21<=d12;
                      d22<=d13;
                      d23<=L1;

                      d20_col<=d11_col;
                      d21_col<=d12_col;
                      d22_col<=d13_col;
                      d23_col<=L1_col;

                      d20_num<=d11_num;
                      d21_num<=d12_num;
                      d22_num<=d13_num;
                      d23_num<=L1_num;
                   end if;
       end case;
 end if;
end process;

process(clk)
begin
  if clk'event and clk='1' then
    case set_temp2 is
       when '1'=>L2<=d22;
                 L2_col<=d22_col;
                 L2_num<=d22_num;
       when '0'=>
             if L2<d20 then
                 L2<=L2;
                 L2_col<=L2_col;
                 L2_num<=L2_num;
             elsif L2=d20 and L2_col<d20_col then
                 L2<=L2;
                 L2_col<=L2_col;
                 L2_num<=L2_num;
             else
                 L2<=d20;
                 L2_col<=d20_col;
                 L2_num<=d20_num;
             end if;
    end case;
  end if;
end process;

process(clk)
begin
if clk'event and clk='1' then
    case set_temp2 is
         when '1'=>   d30<=d20;
                      d31<=d21;
                      d32<="1111";
                      d33<=d23;

                      d30_col<=d20_col;
                      d31_col<=d21_col;
                      d32_col<="000";
                      d33_col<=d23_col;

                      d30_num<=d20_num;
                      d31_num<=d21_num;
                      d32_num<="00";
                      d33_num<=d23_num;

         when '0'=>if L2<d20 then
                      d30<=d20;
                      d31<=d21;
                      d32<=d22;
                      d33<=d23;

                      d30_col<=d20_col;
                      d31_col<=d21_col;
                      d32_col<=d22_col;
                      d33_col<=d23_col;

                      d30_num<=d20_num;
                      d31_num<=d21_num;
                      d32_num<=d22_num;
                      d33_num<=d23_num;
                    elsif L2=d20 and L2_col<d20_col then
                      d30<=d20;
                      d31<=d21;
                      d32<=d22;
                      d33<=d23;

                      d30_col<=d20_col;
                      d31_col<=d21_col;
                      d32_col<=d22_col;
                      d33_col<=d23_col;

                      d30_num<=d20_num;
                      d31_num<=d21_num;
                      d32_num<=d22_num;
                      d33_num<=d23_num;
                    elsif L2<d21 then
                      d30<=L2;
                      d31<=d21;
                      d32<=d22;
                      d33<=d23;

                      d30_col<=L2_col;
                      d31_col<=d21_col;
                      d32_col<=d22_col;
                      d33_col<=d23_col;

                      d30_num<=L2_num;
                      d31_num<=d21_num;
                      d32_num<=d22_num;
                      d33_num<=d23_num;
                   elsif L2=d21 and L2_col<d21_col then
                      d30<=L2;
                      d31<=d21;
                      d32<=d22;
                      d33<=d23;

                      d30_col<=L2_col;
                      d31_col<=d21_col;
                      d32_col<=d22_col;
                      d33_col<=d23_col;

                      d30_num<=L2_num;
                      d31_num<=d21_num;
                      d32_num<=d22_num;
                      d33_num<=d23_num;

                   elsif L2<d22 then
                      d30<=d21;
                      d31<=L2;
                      d32<=d22;
                      d33<=d23;

                      d30_col<=d21_col;
                      d31_col<=L2_col;
                      d32_col<=d22_col;
                      d33_col<=d23_col;

                      d30_num<=d21_num;
                      d31_num<=L2_num;
                      d32_num<=d22_num;
                      d33_num<=d23_num;
                   elsif L2=d22 and L2_col<d22_col then
                      d30<=d21;
                      d31<=L2;
                      d32<=d22;
                      d33<=d23;

                      d30_col<=d21_col;
                      d31_col<=L2_col;
                      d32_col<=d22_col;
                      d33_col<=d23_col;

                      d30_num<=d21_num;
                      d31_num<=L2_num;
                      d32_num<=d22_num;
                      d33_num<=d23_num;
                   elsif L2<d23 then
                      d30<=d21;
                      d31<=d22;
                      d32<=L2;
                      d33<=d23;

                      d30_col<=d21_col;
                      d31_col<=d22_col;
                      d32_col<=L2_col;
                      d33_col<=d23_col;

                      d30_num<=d21_num;
                      d31_num<=d22_num;
                      d32_num<=L2_num;
                      d33_num<=d23_num;
                   elsif L2=d23 and L2_col<d23_col then
                      d30<=d21;
                      d31<=d22;
                      d32<=L2;
                      d33<=d23;

                      d30_col<=d21_col;
                      d31_col<=d22_col;
                      d32_col<=L2_col;
                      d33_col<=d23_col;

                      d30_num<=d21_num;
                      d31_num<=d22_num;
                      d32_num<=L2_num;
                      d33_num<=d23_num;

                   else
                      d30<=d21;
                      d31<=d22;
                      d32<=d23;
                      d33<=L2;

                      d30_col<=d21_col;
                      d31_col<=d22_col;
                      d32_col<=d23_col;
                      d33_col<=L2_col;

                      d30_num<=d21_num;
                      d31_num<=d22_num;
                      d32_num<=d23_num;
                      d33_num<=L2_num;
                   end if;
    end case;
end if;
end process;

process(clk)
begin
  if clk'event and clk='1' then
    case set_temp3 is
       when '1'=>L3<=d33;
                 L3_col<=d33_col;
                 L3_num<=d33_num;
       when '0'=>
             if L3<d30 then
                 L3<=L3;
                 L3_col<=L3_col;
                 L3_num<=L3_num;
             elsif L3=d30 and L3_col<d30_col then
                 L3<=L3;
                 L3_col<=L3_col;
                 L3_num<=L3_num;
             else
                 L3<=d30;
                 L3_col<=d30_col;
                 L3_num<=d30_num;
             end if;
    end case;
  end if;
end process;


process(clk)
begin
  if clk'event and clk='1' then
      L0_temp0<=L0;
      L0_temp1<=L0_temp0;
      L0_temp2<=L0_temp1;

      L1_temp0<=L1;
      L1_temp1<=L1_temp0;

      L2_temp0<=L2;

      L0_coltp0<=L0_col;
      L0_coltp1<=L0_coltp0;
      L0_coltp2<=L0_coltp1;

      L1_coltp0<=L1_col;
      L1_coltp1<=L1_coltp0;

      L2_coltp0<=L2_col;

      L0_numtp0<=L0_num;
      L0_numtp1<=L0_numtp0;
      L0_numtp2<=L0_numtp1;

      L1_numtp0<=L1_num;
      L1_numtp1<=L1_numtp0;

      L2_numtp0<=L2_num;

  end if;
end process;

--process(clk)
--begin
--  if clk'event and clk='1' then
--      smin0<=L0_temp2;
--      smin1<=L1_temp1;
--      smin2<=L2_temp0;
--      smin3<=L3;

--      smin0_col<=L0_coltp2;
--      smin1_col<=L1_coltp1;
--      smin2_col<=L2_coltp0;
--      smin3_col<=L3_col;

--      smin0_num<=L0_numtp2;
--      smin1_num<=L1_numtp1;
--      smin2_num<=L2_numtp0;
--      smin3_num<=L3_num;

--  end if;
--end process;
process(clk)
begin
  if clk'event and clk='1' then
      case set_temp3 is
          when '1'=>Ls0<=L0_temp2;
                    Ls1<=L1_temp1;
                    Ls2<=L2_temp0;
                    Ls3<=L3;

                    Ls0_col<=L0_coltp2;
                    Ls1_col<=L1_coltp1;
                    Ls2_col<=L2_coltp0;
                    Ls3_col<=L3_col;

                    Ls0_num<=L0_numtp2;
                    Ls1_num<=L1_numtp1;
                    Ls2_num<=L2_numtp0;
                    Ls3_num<=L3_num;
           when others=>null;
      end case;
  end if;
end process;


end rtl;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -