Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] Generating Bubble sorting for 8-bit in VHDL using structural design

Status
Not open for further replies.
N

Nitesh Annabhimoju

Guest
Newbie level 1
Anyone out there, please help me to Generate Bubble sorting for 8-bit in VHDL using structural mode by using the attached file.

View attachment code.docx.pdf


Code VHDL - [expand]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity bubble is
port (S1 : in std_logic;
south_b : in std_logic;
north_b : in std_logic;
data_out : out std_logic_vector(7 downto 0));
end bubble;
architecture bubble_sort of bubble is
type memory is array (1 to 5) of std_logic_vector(7 downto 0);
begin
SORT : process(S1,south_b,north_b)
variable rami : memory :=
("00000001","00000010","00000100","00001000","00010000");
rami(
1) := "00000100" ;
rami(
2) := "00010000" ;
rami(
3) := "00000100" ;
rami(
4) := "00100000" ;
rami(
5) := "10000000" ;
constant ramo : memory := rami ;
variable t1,t2: integer;
variable tmp : std_logic_vector(7 downto 0);
variable x : integer := 1;
variable y : integer := 1;
begin
for i in 1 to 5 loop
t1 := 6;
while t1 > i loop
t2 := t12;
t1 := t11;
if(t1 >= 2) then
if rami(t1) < rami(t2) then
tmp := rami(t1);
rami(t1) := rami(t2);
rami(t2) := tmp;
end if;
end if;
end loop;
end loop;
if (S1 = '1') and (south_b = '1') then
data_out <= rami(5);
x := 4;
elsif (S1 = '1') and (north_b = '1' )then
data_out <= rami(x) ;
x := x1;
if (x = 0) then
x := 5;
end if;
end if;
if (S1 = '0') and (south_b = '1') then
data_out <= ramo(1);
y := 2;
elsif (S1 = '0') and (north_b = '1' )then
data_out <= ramo(x) ;
y := y+1;
if (y = 6) then
y := 1;
end if;
end if;
end process SORT;
end bubble_sort;

 
Last edited by a moderator:

Hmm, another obvious attempt of someone trying to write VHDL as if it were a software language.

Don't any of the professors at the universities these students come from tell them that VHDL is a Hardware Description Language?

No clocks, no sense of time, using "variables" because that's what they call them in C.

I think you need to read a book on synthesizable VHDL before you try writing code or at least look at some synthesizable VHDL examples. https://www.asic-world.com/examples/vhdl/
 
Besides the points that ads-ee has mentioned, your code is purely behavioral and has nothing to do with structural description level.

Please review your text books and lecture scripts what structural level means.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top