[請益] 用VHDL 實作 Bubble sort
各位大大好, 這是我第一次在這邊PO文, 有些不懂的地方還請予以指教^^"
因為最近上課學了VHDL,老師出了兩項作業
1. 以方法論步驟設計一個電路執行給定的bubble sort 演算法
演算法如下:
unsigned char ram[10] = {13,5,7,9,2,4,6,8,0};
unsigned char temp1;
unsigned char temp2;
for (int i=0; i<10; i++)
{
temp1 = ram[i];
for (int j=i+1; j<10; j++)
{
temp2 = ram[j];
if (temp1>temp2)
{
ram[i]=temp2;
ram[j]=temp1;
temp1=temp2;
}
}
}
2. [X,Y,Z] = [M] * [R,G,B]
其中[M]為一3x3矩陣:
[M] = [0.4125, 0.3576, 0.1805;
0.2126, 0.7152, 0.0722;
0.0193, 0.1192, 0.9505]
請分別基於最低成本和最高效能考量,設計兩個電路執行此一色彩轉換
兩個都是要寫成VHDL 還有畫 Grafcet
不過因為上課時間過短, 且腳步緊湊, 實在很難學到些什麼,
第一項作業我找了許多資料硬擠一些東西出來
不過因手邊沒有編譯軟體可用, 所以也不知道有沒有錯
再加上只有學短短4堂課許多觀念還不懂
希望大大們能予以指教
以下是我第一項作業的 VHDL, 希望大大們能指正我這個VHDL新手的錯誤
(我是參考某大學的教學投影片的語法來寫, 不過我自己覺得錯誤應該很多 ~"~)
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity Bubble_Sort is
port (
CLK : in std_logic
);
end entity Bubble_Sort;
architecture behavior of Bubble_Sort is
type ram_array is array (1 to 10) of std_logic_vector (3 downto 0);
signal ram : ram_array;
signal temp1 : std_logic_vector (3 downto 0);
signal temp2 : std_logic_vector (3 downto 0);
begin
ram <= (X"1", X"3", X"5", X"7", X"9", X"2", X"4", X"6", X"8", X"0");
sort : process (CLK)
begin
if (CLK'EVENT AND CLK='1') then
OutLP : for i in 1 to 10 loop
temp1 <= ram(i);
InLP : for j in i+1 to 10 loop
temp2 <= ram(j);
if (temp1 > temp2) then
ram(i) <= temp2;
ram(j) <= temp1;
temp1 <= temp2;
end if;
end loop InLP;
end loop OutLP;
end if;
end process sort;
end behavior;
希望有好心的大大可以指導我完成這次作業, 感恩
(方才改了點東西, 不知道對不對 ~"~)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 編輯: Lizstlin 來自: 140.115.202.53 (01/08 23:56)
→
01/09 00:29, , 1F
01/09 00:29, 1F
→
01/09 00:32, , 2F
01/09 00:32, 2F
→
01/09 00:37, , 3F
01/09 00:37, 3F
※ 編輯: Lizstlin 來自: 140.115.202.53 (01/09 02:22)
→
01/09 02:23, , 4F
01/09 02:23, 4F
→
01/09 02:23, , 5F
01/09 02:23, 5F
→
01/09 02:26, , 6F
01/09 02:26, 6F
→
01/09 12:34, , 7F
01/09 12:34, 7F
→
01/09 13:15, , 8F
01/09 13:15, 8F
→
01/09 23:43, , 9F
01/09 23:43, 9F
→
01/09 23:44, , 10F
01/09 23:44, 10F
→
01/11 13:54, , 11F
01/11 13:54, 11F
→
01/11 13:55, , 12F
01/11 13:55, 12F
→
01/11 13:56, , 13F
01/11 13:56, 13F
→
08/13 19:07, , 14F
08/13 19:07, 14F
→
09/17 23:01, , 15F
09/17 23:01, 15F
→
11/11 16:05, , 16F
11/11 16:05, 16F
→
01/04 22:15,
5年前
, 17F
01/04 22:15, 17F