M
modeonz
Guest
Sto usando spartano 3e ...Io cerco di comunicare con il pc tramite la comunicazione seriale .....utilizzare i 50 MHz clk .....Voglio arrivare a 9600 baud rate per inviare un registro a 8 bit ....qual è il valore del divisore dovrebbe prendere i .....ho usato per il 5208 ho provato anche divisore 1302, ma io non ricevere nulla al hyberterminal ?!!!!!!whatshould fareHo fatto questo codice
itried questo codice nel simulatore e ottenere una vera e propria uscita dal usind divisore = 5 bando di gara per l'output in modo penso che l'errore sarà il baud ratec è l'orologio
y è la tx
BIBLIOTECA IEEE;
USO ieee.std_logic_1164.all;
USO ieee.std_logic_arith.all;
ieee.std_logic_unsigned.all uso;ENTITY giudice
PORT (
c: IN std_logic;
rst: IN std_logic;
y: OUT std_logic
);
- Dichiarazioni
FINE giudice;
- Hds interface_end
ARCHITETTURA DI muha giudice
segnale tm: std_logic_vector (15 downto 0): = (altri =>'0 ');
costante div: integer: = 5208;
segnale clk: std_logic;
segnale di occupato: std_logic: ='0 ';
segnale mess: std_logic_vector (9 downto 0): = (altri =>'0 ');
segnale giudice: std_logic_vector (15 downto 0): = (altri =>'0 ');
BEGIN
clkgen: processo (rst, c)
iniziare
se rst ='1 ', quindi
tm <= (altri =>'0 ');
clk <='0 ';
elsif c ='1 ', quindi
clk <='0 ';
tm = se poi div
tm <= (altri =>'0 ');
clk <='1 ';
altro
tm <= tm 1;
end if;
end if;
fine processo;
shif: processo (c)
iniziare
se occupato ='0 ', quindi
mess <= "0111010111";
occupato <='1 ';
elsif (occupato ='1 '), poi
if (clk ='1 'e c ='1'), poi
y <= disordine (9);
mess (9 downto 1) <= disordine (8 downto 0);
cout <= tribunale 1;
end if;
end if;
se poi giudice = 20
occupato <='0 ';
cout <= (altri =>'0 ');
end if;
fine processo;
FINE muha;
itried questo codice nel simulatore e ottenere una vera e propria uscita dal usind divisore = 5 bando di gara per l'output in modo penso che l'errore sarà il baud ratec è l'orologio
y è la tx
BIBLIOTECA IEEE;
USO ieee.std_logic_1164.all;
USO ieee.std_logic_arith.all;
ieee.std_logic_unsigned.all uso;ENTITY giudice
PORT (
c: IN std_logic;
rst: IN std_logic;
y: OUT std_logic
);
- Dichiarazioni
FINE giudice;
- Hds interface_end
ARCHITETTURA DI muha giudice
segnale tm: std_logic_vector (15 downto 0): = (altri =>'0 ');
costante div: integer: = 5208;
segnale clk: std_logic;
segnale di occupato: std_logic: ='0 ';
segnale mess: std_logic_vector (9 downto 0): = (altri =>'0 ');
segnale giudice: std_logic_vector (15 downto 0): = (altri =>'0 ');
BEGIN
clkgen: processo (rst, c)
iniziare
se rst ='1 ', quindi
tm <= (altri =>'0 ');
clk <='0 ';
elsif c ='1 ', quindi
clk <='0 ';
tm = se poi div
tm <= (altri =>'0 ');
clk <='1 ';
altro
tm <= tm 1;
end if;
end if;
fine processo;
shif: processo (c)
iniziare
se occupato ='0 ', quindi
mess <= "0111010111";
occupato <='1 ';
elsif (occupato ='1 '), poi
if (clk ='1 'e c ='1'), poi
y <= disordine (9);
mess (9 downto 1) <= disordine (8 downto 0);
cout <= tribunale 1;
end if;
end if;
se poi giudice = 20
occupato <='0 ';
cout <= (altri =>'0 ');
end if;
fine processo;
FINE muha;