VHDL - sērijas, lai paralēli pāreju reģistrēties ar vērpjot.

P

Pheetuz

Guest
Hi folks.

Got projektu, es esmu strādā pie ATM, kur i ir uzņemt vairākas paralēli un pārvērst / nosūtiet to, izmantojot saiti sērijas formātā un pēc tam konvertēt šīs datu plūsmas atpakaļ paralēli ir outputted uz septiņu segmentu displeju.

Es esmu uzrakstījis raidītāja kods ar nelielu problēmu, bet esmu, kam daži jautājumi ar uztvērēju.

Trasnsmitter piešķir kodu "1011", lai sākotnējie dati pirms nosūtīšanas (labajā pusē sākotnējos datus) ...Šis ir mans identifikācijas kods, kas es izmantot, lai pastāstītu uztvērēju, kad dati ir pārvietoti pareizs vairākas reizes.

Man ir iekšējā failu ar nosaukumu temp, ka es esmu, izmantojot kā pārmaiņas reģistru un tikai vēlas temp būt kopēts produkciju, ja "1011" ir temperatūra (3 downto 0).

Papildus tam, es tikai vēlos temp būt kopēts ouput ja temp (5) ir loģika "0" (ja temp (3 downto 0) = "1011"), citādi es gribu citu kodu kopēt uz izejas - exaclty ko kods tas būs, ir Nav zināms pašlaik.

Zemāk ir daži kodu, ka es esmu uzrakstījis, tas nav apkopot šobrīd un im gatavojas šķirošanas, ka, lol, bet visas atsauksmes būtu appreciated.bibliotēkas IEEE;
izmantot ieee.std_logic_1164.all;
izmantot ieee.numeric_std.all;vienība Shift_reg ir osta (
reset, CLK, bin: ar std_logic;
menca: no std_logic_vector (3 downto 0));

beigās Shift_reg;arhitektūra reg no Shift_reg ir

sākt
Tiesības: process (CLK, bin, reset)
mainīgā temperatūra: std_logic_vector (7 downto 0);
mainīgais temp1: std_logic_vector (7 downto 0);
mainīgais temperror: std_logic_vector (3 downto 0);
sākt

- Temperror: = "0110"

ja rising_edge (CLK), tad

temperatūra: = temperatūra srl 1;
temperatūra (7): = bin;vēl

ja temp (3 downto 0) = "1011", tad

ja temp (5) = "0", tad
menca (3 downto 0) <= temp (7 downto 4);
temperatūra: = temperatūra srl 1;elsif temp (5) = "1", tad
menca <= temperror (3 downto 0);

beidzas, ja;beidzas, ja;

beidzas, ja;- [Ja bit 5 = 1 un pēc tam menca <= KĻŪDA];gala procesa;
beigās reg;

Liels paldies.

/ Pete

 
Kods:

ja rising_edge (CLK), tadtemperatūra: = temperatūra srl 1;

temperatūra (7): = bin;vēlja temp (3 downto 0) = "1011", tadja temp (5) = "0", tad

menca (3 downto 0) <= temp (7 downto 4);

temperatūra: = temperatūra srl 1;
 
Paldies Vipin.

Es tikko atkal rakstisku kodu, lai mēģinātu tās padarītu skaidrākas un ir jānāk klajā ar šo, ir iespējams izmantot paziņojumu, piemēram,

ja temp (3 downto 0) un pagrieziet = "0", tad ....?

Kods:

bibliotēkas IEEE;

izmantot ieee.std_logic_1164.all;

izmantot ieee.numeric_std.all;vienība Shift_reg ir osta (

reset, CLK, bin: ar std_logic;

menca: no neparakstīts (3 downto 0));beigās Shift_reg;arhitektūra reg no Shift_reg irsākt

Tiesības: process (CLK, bin, reset)

mainīgā temperatūra: neparakstīts (7 downto 0);

mainīgais temp1: neparakstīts (7 downto 0);

mainīgā kļūda: neparakstīts (3 downto 0);

mainīgais pagrieziet: std_logic;

sāktja rising_edge (CLK), tadtemperatūra: = temperatūra ROR 1;

temperatūra (7): = bin;

pagriezt: = '1 ';

kļūda: = "0110";ja temp (3 downto 0) - un pagrieztu = "0", tadja temp (5) = "1", tad

menca <= kļūda;vēl

menca <= temp (7 downto 4);

pagriezt: = '1 ';beidzas, ja;beidzas, ja;beidzas, ja;gala procesa;

beigās reg;
 
Otrais kodekss nebūs nekādu problēmu saistībā ar synthesis.But jums ir, lai modelētu, un redzētu, vai tā strādā tā, kā vēlaties.

- Vipin
http://vhdlguru.blogspot.com/

 

Welcome to EDABoard.com

Sponsor

Back
Top