VHDL unang halimbawa ... bistahan plz ... tnx

T

TekUT

Guest
Hi lahat,
bilang unang exercise ko
na sinubukang isalin ang isang eskematiko (kalakip) sa isang VHDL sa pamamagitan ng paggamit ng isang simpleng hierarchical diskarte, ako lang sa simula sa patlang na ito at pagkatapos ay ako na humihingi ng karanasan para sa ilang mga tao na maaaring tumagal ng isang anyo at gimme ilang iminumungkahi tungkol sa aking pagpapatupad.
Karaniwang ko ng dalawang 74HC595 drived ng 4 na linya na sinusundan ng dalawang 74HC165 registers, tingnan ang eskematiko,
ang aking VHDL file ay:

SSI.vhd - tuktok na antas ng paglalarawan
par2ser.vhd (74HC165 paglalarawan)
ser2par.vhd (74HC595 paglalarawan)

dito sa ibaba ang code:

Code:-------------------------------------------------- -----------------------------

- Title: Serial input at serial output interface

- Project: SSI

-------------------------------------------------- -----------------------------

- File: SSI.vhd

- Author: Powermos

- Created: 10/10/2008

- Huling binago: --

-------------------------------------------------- -----------------------------

- Description:

- Nagpapatupad ng isang simpleng SSI interface.

-------------------------------------------------- -----------------------------

- Pagbabago ng kasaysayan:

- 10/10/2008: nilikha

-------------------------------------------------- -----------------------------

library IEEE;

gamitin ieee.std_logic_1164.all;entidad SSI ay

port (SSDAT: sa std_logic; - input serial data ng linya

SSCLK: sa std_logic; - input ng orasan

SSSTR: sa std_logic; - input ng strobe

SSCLR: sa std_logic; - input ng malinaw na signal

PLOAD: sa std_logic; - input kahilera load

SSICLK: sa std_logic; - input ng user SSI orasan

MONOFLOP: sa std_logic; - input monoflop signal

SSIOUT: out std_logic - output serial linya

); - Output ng data

dulo SSI;architecture ssi_arch ng SSI ay

-----------------------------------

- Kahulugan ng mga ginamit na mga bahagi

------------------------------------ Serial sa kahilera module (74HC595)

sangkap ser2par

port (DS: sa std_logic;

SHCP: sa std_logic;

STCP: sa std_logic;

MRN: sa std_logic;

QOUT: out std_logic_vector (7 downto 0);

Q7: out std_logic

);

huling bahagi;

- Kahilera sa serial module (74HC165)

sangkap par2ser

port (PLN: sa std_logic;

CP: sa std_logic;

DS: sa std_logic;

DATAIN: sa std_logic_vector (7 downto 0);

QHH: out std_logic;

QHN: out std_logic

);

huling bahagi;-----------------------------------

- Top-level na paglalarawan

-----------------------------------

hudyat ng internal_bus: std_logic_vector (15 downto 0);

hudyat ng intbit1: std_logic;

hudyat ng intbit2: std_logic;

hudyat ng intbit3: std_logic;

hudyat ng dummy0: std_logic;simulan

dummy0 <='0 '; - Ginamit sa lakas 0 bilang serial input para sa U3 aparatologic_74HC595_U1: ser2par

port mapa (DS => SSDAT, SHCP => SSCLK, STCP => SSSTR, MRN => SSCLR, QOUT => internal_bus (7 downto 0), Q7 => intbit1);

logic_74HC595_U2: ser2par

port mapa (DS => intbit1, SHCP => SSCLK, STCP => SSSTR, MRN => SSCLR, QOUT => internal_bus (15 downto 8), Q7 => bukas);

logic_74HC165_U3: par2ser

port mapa (PLN => PLOAD, CP => SSICLK, DS => dummy0, DATAIN => internal_bus (7 downto 0), QHH => intbit2, QHN => bukas);

logic_74HC165_U4: par2ser

port mapa (PLN => PLOAD, CP => SSICLK, DS => intbit2, DATAIN => internal_bus (15 downto 8), QHH => buksan, QHN => intbit3);SSIOUT <= hindi (MONOFLOP at intbit3);dulo ssi_arch;

 
Hi
Ako nagpunta sa iyong code at maaaring makita ang anumang malaking issue.Kailangan mong isaalang-alang ang ugnayan sa pagitan ng dalawang clocks namely: SSCLK at SSICLK.

Mayroon akong sumulat ng libro at elaborated ang iyong disenyo gamit ang libreng vhdl simulator (ghdl: http://ghdl.free.fr).Ito pumasa okay:

Ito ang aking script (para sa mga linux machine - para sa mga bintana sa huling linya ay isang bit ibang):#! / bin / Bash
ghdl-a - workdir = trabaho - IEEE = synopsys par2ser.vhdghdl-a - workdir = trabaho - IEEE = synopsys ser2par.vhdghdl-a - workdir = trabaho - IEEE = synopsys SSI.vhd
ghdl-e - workdir = trabaho - IEEE = synopsys SSIBaka gusto mong gumawa ng isang pagsubok bench at visually siyasatin ang iyong disenyo sa alon.

Higit pang mga vhdl / verilog / pagtitipon script etc ...
sa http://bknpk.no-ip.biz/

 
ang iyong disenyo ay differe'nt mula sa modelled ICS sa dalawang aspeto:

- HC595 ay may isang gilid ang nag-trigger sa halip na isang antas ang nag-trigger na output aldaba

- Ikaw ay nagdagdag ng isang 9th rehistro sa HC165, na nagiging sanhi marahil unintended pag-uugali.Ang orihinal na lohika ay ganito:
Code:

kung PLN ='0 'at pagkatapos ay

IDATA (7 downto 0) <= DATAIN; - load ang operasyon

- Ang nag-trigger na gawain sa pamamagitan ng pagsikat gilid ng orasan

elsif CP'event at CP ='1 'at pagkatapos ay

para sa ako sa 6 downto 0 loop

IDATA (i 1) <= IDATA (i);

dulo loop;

IDATA (0) <= DS;

dulo kung;

QHH <= IDATA (7);

QHN <= hindi IDATA (7);
 
@ pini_1
Salamat sa iyong oras, ng mga kurso ng isang malaking isyu ay tungkol sa pag-synchronise ng relos na ito sa pagitan ng dalawang signal.Bilang unang ideya ko isip na gumamit ng isang panlabas na pag-synchronise ng relos na may isang mas mataas na dalas tungkol ang dalas na halaga para sa bawat isa sa dalawang mga senyas na ito at gamitin ito sa mga panlabas na orasan sychronize lahat ng ibang mga signal, ay maaaring maging isang solusyon?Ay maaaring ko makita ang ilang metastability isyu at pagkatapos ko na gawin ang syncro yugto na may dalawang FF para sa bawat signal?

@ FvM
Salamat sa dalawang minumungkahi, tungkol sa mga kahilera load isip ko
na ang paggamit ng isang linya tulad ng isang ito PL'event at PL ='1 ', tulad ng para sa mga orasan, ang tama?
Salamat din para sa mga iminumungkahi na ang tungkol sa paghahalili.

Ng mga kurso sa huling pagpapatupad I'll subukin sa gumamit ng isang solong SIPO at PISO sa isang bus ng 16 bit na sa halip na dalawang SIPO at dalawang PISO ng 8 bit.

Mayroon ka na ng ilang mga iba pang mga iminumungkahi tungkol sa aking coding, ay malinis, maliwanag at iba pa?

Salamat muli sa lahat.

Paalam
Yukod

 

Welcome to EDABoard.com

Sponsor

Back
Top