Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Помогите перевести код VHDL на Verilog

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

Stranik1980

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[more] Вот код на VHDL
 
LIBRARY ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
Entity decoder is
Generic (N:  integer := 4); --для моделирование N=4 для программирование ПЛИС N=27000000
Port
(
f0: in std_logic;                    --опорный генератор
kk_8:in std_logic_vector (1 to 8);            --входной код
hexS,hexM:out std_logic_vector(0 to 6);        --выходной вектор значения на 7-индикатор
error:out std_logic_vector(1 to 8)            -- индикация разряда ошибочного бита
 
);
End decoder;
 
ARCHITECTURE Behavior OF decoder IS
 Signal clk:std_logic:='0';  
 signal kk_4:std_logic_vector (0 to 3):="0000";
 signal s:std_logic_vector(4 downto 1):="0000";
 signal kod,kk:std_logic_vector (1 to 8):="00000000";
 Component delitel is             --Делитель частоты опорного генератора
 Port
 (
  f_in:in std_logic;        --частота опорного генератора.
  f_out:out std_logic    --частота 1Гц.
 );
 End component;
 Component hex is        --компонент отображения на семиразрядном индикаторе
 Port
 (
  inp:in std_logic_vector (0 to 3);            --входной вектор значения  
  indicS,indicM:out std_logic_vector(0 to 6)    --выходной вектор значения на 7-индикатор
 );
 End component;
 
Begin
L1: delitel port map (f0,clk);
  Process (clk)
  Variable x:integer range 0 to 15:=0 ;
  Begin    
  if clk'event and clk='1' then
  kod<=kk_8;
  End if;
  s(4)<=kod(1) xor kod(2) xor kod(3) xor kod(4) xor kod(5) xor kod(6) xor kod(7) xor kod(8);
  s(1)<=kod(1) xor kod(3) xor kod(5) xor kod(7);
  s(2)<=kod(2) xor kod(3) xor kod(6) xor kod(7);
  s(3)<=kod(4) xor kod(5) xor kod(6) xor kod(7);
  x:=conv_integer(s);
  if x>7 then  
  if x=8 then
  error<="00000001";
  kk<=kod;
  else
  x:=x-8;  
  for i in 1 to 8 loop
  if i=x then  
  error(i)<='1';
  kk(i)<=not(kod(i));
  else
  kk(i)<=kod(i);
   error(i)<='0';
   end if;
  end loop;
  end if;
  elsif x=0 then
  error<="00000000";
  kk<=kod;  
  elsif x<8 then
  error<="11111111" ;
  kk<="00000000";
  End if;  
  End process;  
kk_4<=(kk(7),kk(6),kk(5),kk(3));
L2:hex port map (kk_4,hexS,hexM);
End Behavior;
 

Всего записей: 1 | Зарегистр. 04-10-2014 | Отправлено: 17:12 04-10-2014
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Помогите перевести код VHDL на Verilog


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru