конвертирате кода от Verilog да VHDL

C

chenghaibo

Guest
Здравейте, всички.
Имам нужда от последващи код, за да бъдат написани на VHDL.
/ / функция: конвертирате сиво двоичен код, за да
модул gray2bin (сиво, хамбар);
параметър SIZE = 4;
вход [SIZE-1: 0] сиво;
продукция [SIZE-1: 0] бен;
обл [SIZE-1: 0] бен;
Аз цяло число;
Винаги @ (сиво) за (I = 0; аз <SIZE;i=i 1) bin = ^(gray>> I);
endmodule
/ /
Знам, значения на кода в Verilog, но моят проект е в VHDL, така че аз трябва да го конвертирате в VHDL.
Проблемът е, че аз не знам как да се справят с>> операция в VHDL.
може някой да ми помогне?

 
VHDL93 включва вградени смяна оператори:

SLL (преместите наляво логично),
SRL (Shift право логически),
SLA (преместите наляво аритметично),
SRA (смяна право аритметика)

Вижте http://www.acc-eda.com/vhdlref/refguide/language_overview/objects__data_types_and_operators/understanding_vhdl_operators.htm
is what u require..

SRL
е това, което изискват от ф ..

пф ..

 
но Qu (до) rtus компилатор не поддържа SRL!
изчакване за помощ .............

 
Предварително-дефинирани SRL оператор работи с малко и малко векторни типове данни САМО
(приемаме, u've сторил никакво претоварване

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />

)
Също така си един VHDL 93 оператора, така че u've да възложи Ур тренажор за използване VHDL 93
синтаксис ..

Както и пристанище, използвани Qu (до) rtus инструмента, така че аз не мога да кажа за това ..
Но можете да използвате този код за дясно Shifter
Цитат:- Родово ЛОГИЧЕСКА ПРАВО SHIFT оператор ФУНКЦИЯShftr функция (N: std_logic_vector; CNT: Integer) завръщане std_logic_vector СЕ

VARIABLE резултат: std_logic_vector (n'LENGTH-1 DOWNTO 0): = (Други => '0 ');

ПОСТОЯННИ дъл: Integer: = n'LENGTH-1;

BEGIN

АКО CNT <= дъл ТОГАВА

резултат (дъл-CNT downto 0): = N (дъл CNT downto);

Крайна сметка, ако;

ВРЪЩАНЕ резултат;

КРАЙ shftr;
 
защо просто не се х-HDL и да го използвате за traslation?maxer

 
Ето какво Ур търси ......
Код:

IEEE библиотека;

употреба ieee.std_logic_1164.all;лице е gray2binгенерични (

РАЗМЕР: Integer: = 4);порт (

Грей: в std_logic_vector (Size-1 downto 0);

бен: Няма std_logic_vector (Size-1 downto 0));края gray2bin;архитектура се държи на gray2bin езапочне - държатпроцес (сив)

променлива bin_tmp: std_logic_vector (Size-1 downto 0);

променлива xor_tmp: std_logic;

започне - процес

Защото в 0 до размер 1 линия

xor_tmp: = '0 ';

за I J в размер на 1 линия

xor_tmp: = xor_tmp XOR сиво (к);

края линия; - J

bin_tmp (и): = xor_tmp;

края линия; - I

бен <= bin_tmp;

край процес;края поведение;
 

Welcome to EDABoard.com

Sponsor

Back
Top