VHDL fejl til simulering

J

Jaffry

Guest
Hej alle. Jeg har ikke brugt VHDL for lang tid. Nu, hvor jeg er vendt tilbage til det jeg lavede et simpelt program, men jeg vender følgende fejl under simulation.
# ** Error: counter.vhd (28): Underprogram "+" er tvetydig. Egnede definitioner findes i pakker "std_logic_unsigned" og "std_logic_signed". # ** Error: counter.vhd (33): VHDL Compiler spændende # ** Error: C :/ modeltech_6.5c/win32/vcom mislykkedes
Hvor får jeg forkert.. Jeg har bogført koden til min simpel tæller design. Undlad venligst kommentar
Code:
 library IEEE, brug IEEE.STD_LOGIC_1164.ALL, brug IEEE.STD_LOGIC_unsigned.ALL, brug IEEE.STD_LOGIC_signed.ALL - Udkommenter følgende bibliotek erklæring, hvis du bruger - regnefunktioner med signed eller unsigned værdier bruge IEEE . NUMERIC_STD.ALL, brug IEEE.STD_LOGIC_ARITH.ALL - Afkommentér følgende bibliotek erklæring, hvis instantiere - alle Xilinx primitiver i denne kode. - Bibliotek UNISIM - anvendelse UNISIM.VComponents.all, enhed counter er Port (cnt: InOut STD_LOGIC_VECTOR (3 downto 0); clk: i std_logic; rst: i std_logic) ende tæller, arkitektur adfærdsmæssige af tælleren er begynde processen (CLK) begynd if (clk'event og clk = '1 ') og derefter cnt
 
Dette vil være, fordi du har modstridende biblioteker. I dette tilfælde kommer konflikten mellem std_logic_signed std_logic_unsigned og. De har begge definere "+"-funktioner for std_logic_vectors, så når du siger: cnt
 
Ahh ....! Mange tak. Oprindeligt jeg inkluderer std_logic_signed og std_logic_unsigned men når fejlen opstår så jeg trådte arth.all og numeric.all bibliotek Mange tak for detaljer og hurtig reaktion med andre nyttige tips. Jamen jeg har ikke forstår forskellen mellem bufferen og InOut. Er det sammenlignes med "tråd" og "REG 'output i verilog. Også Er der noget som blokering / ophævelse af blokering af procedurerne i VHDL, da indvendig proces bruger vi kun én type erklæring. Bests, jaffry
 
InOut er beregnet til tri-state buffere (dvs. '0 ', '1' eller 'Z' tilstand) og ud er simpelthen en udgang. En buffer er en udgang, kan du læse inde i design (det er en særhed af VHDL, at de udbedret med det VHDL2008 standard, der dybest set fjernet behovet for "buffer"). Im ikke sikker på, hvordan de kan sammenlignes med tråd og reg fordi min Verilog viden er temmelig dårlig. Hvad angår blokere og ophæve blokeringen, ligesom jeg sagde min Verilog viden er dårlig. Men jeg tror, ​​den bedste equivolent i VHDL er signaler og variabler. Signaler opdateres, når en proces suspenderer, så du kan tildele flere ting til dem, men output vil være den sidste tildelte ting. variable opdateres aflukket. overveje disse to bit kode:
Code:
 signal a: integer: = 0; proces (CLK) variabel b: integer: = 0; begynd hvis rising_edge (CLK) en
 

Welcome to EDABoard.com

Sponsor

Back
Top