Jump to content
X-Ray

Vhdl

Recommended Posts

Необходимо на Vhdl реализовать регистр КР1533ИР32

он аналогичен КР1533ИР26 за исключением отсутсвия z-состояния

Впринципе ничего сложного, но я в VHDL не шарю.

вот мой код

--
--  File: c:\my designs\KP1533IR32\SRC\Ir32.VHD
--  created by Design Wizard: 11/07/12 12:22:45
--
--{{ Section below this comment is automatically maintained
--   and may be overwritten
--{entity {Ir32} architecture {Ir32}}
library IEEE;
use IEEE.std_logic_1164.all;
entity Ir32 is
port (
 D1: in Bit;
 D2: in Bit;
 D3: in Bit;
 D4: in Bit;
 AW0: in Bit;
 AW1: in Bit;
 AR0: in Bit;
 AR1: in Bit;
 WR: in Bit;
 RD: in Bit;
 Q1: out Bit;
 Q2: out Bit;
 Q3: out Bit;
 Q4: out Bit
);
shared variable  R11,R12,R13,R14,R21,R22,R23,R24,R31,R32,R33,R34,R41,R42,R43,R44:Bit;
end Ir32;
--}} End of automatically maintained section
architecture Ir32 of Ir32 is
begin
T1: process(D1)
begin
if WR='0' then
if AW1='0' and AW0='0' then  R11:=D1;
	 R12:=D2;
	   R13:=D3;
	 R14:=D4;
end if;
if AW1='0' and AW0='1' then  R21:=D1;
	 R22:=D2;
	   R23:=D3;
	 R24:=D4;
end if;
if AW1='1' and AW0='0' then  R31:=D1;
	 R32:=D2;
	   R33:=D3;
	 R34:=D4;
end if;
if AW1='1' and AW0='1' then  R41:=D1;
	 R42:=D2;
	   R43:=D3;
	 R44:=D4;
end if;
end if;
if RD='0' then
if AR1='0' and AR0='0' then  Q1<=R11;
	 Q2<=R12;
	   Q3<=R13;
	 Q4<=R14;
end if;
if AR1='0' and AR0='1' then  Q1<=R21;
	 Q2<=R22;
	   Q3<=R23;
	 Q4<=R24;
end if;
if AR1='1' and AR0='0' then  Q1<=R31;
	 Q2<=R32;
	   Q3<=R33;
	 Q4<=R34;
end if;
if AR1='1' and AR0='1' then  Q1<=R41;
	 Q2<=R42;
	   Q3<=R43;
	 Q4<=R44;
end if;
else if RD='1' then		  Q1<='1';
	 Q2<='1';
	   Q3<='1';
	 Q4<='1';
end if;
end if;
end process t1;
 -- <<enter your statements here>>
end Ir32;

На вэйвформах не корректно работает, кто может исправит ошибки?

Или вообще заново напишет?

вообще проблема была такая-при старте, устройство работает, но на последующие изменения на адресных входах не реагирует(

подскажите плиз

Share this post


Link to post
Share on other sites

Я бы начал иначе.(Поглядел спраочник - выходы открытый коллектор. Как объявить не упомню)

PORT(
D:in std_logic_vector(3 ownto 0);
AW:in std_logic_vector(1 downto 0);
AR:in std_logic_vector(1 downto 0);
Q:out std_logic_vector(3 downto 0)
);

)

Далее.

В теле архитектуры

Process(AW, AR)
variable rg4,rg1,rg2,rg3:std_logic_vector(3 downto 0);
begin
case AW is
when "01" => rg1:=D;
when "10"=> rg2:=D;
when "11"=> rg3:=D;
when others => rg0:=D;
end case;
case AR IS
when "01" =>Q<=rg1;
when "10" => Q<=rg2;
when "11" => Q<=rg3;
when others => Q<=rg0;
end case;
end process;

Код не тестировал, но должен сработать.

Share this post


Link to post
Share on other sites

Сейчас будет тест.Спасибо за ответ, проверю.

А открытый коллектор не влияет на логику.

С ходу:в твоём коде нет завязки на входы RD и WR, которые разрешают/запрещают чтение/запись.

Но всё равно большое спасибо!!!!!!!!

В общем начал я тестить.

Скомпилилось.Но подскажи пожалуйста как на вэйв формах подавать например на D значения.

Тоесть при моей реализации я подавал отдельно на каждый разряд(D1-D4), а когда массив-то можно D придать только одно значение(.Как быть?

Edited by X-Ray

Share this post


Link to post
Share on other sites

Технология Maxim Integrated nanoPower: когда малый IQ имеет преимущества

При разработке устройств с батарейным питанием важно выбирать компоненты не просто с малым потреблением, но и с предельно малым током покоя. При этом следует обратить внимание на линейку nanoPower производства компании Maxim Integrated. В статье рассмотрено их применение на примере системы датчиков беспроводной оконной сигнализации.

Подробнее

нет завязки на входы RD и WR, которые разрешают/запрещают чтение/запись.

Ну здрасьте, а упоминание process(AW,AR) в котором реакция на изменение сигналов это что?

В общем начал я тестить.

Скомпилилось.Но подскажи пожалуйста как на вэйв формах подавать например на D значения.

Тоесть при моей реализации я подавал отдельно на каждый разряд(D1-D4), а когда массив-то можно D придать только одно значение(.Как быть?

Я моделирую в моделсиме, пишу тестбенчи.

Примерно так

process
variable cnt:unsigne(3 downto 0):="0000";
constant c1:unsigned(3 downto 0):="0001";
begin
wait 100 ns; D<=std_logic_vector(cnt);
cnt:=cnt+c1;
wait for 100 ns; AR<="00";
wait for 100 ns; AR<="01"; D<=std_logic_vector(cnt);
......
......

Share this post


Link to post
Share on other sites

Meteor77, спасибо тебе большое за ответ.

Я , как уже говорил,просто не шарю в vhdl.И как писать тестбенчи не особо вкурсе,буду разбираться.Но всё равно ОГРОМНОЕ спасибо за помощь!

Если не затруднит, не мог бы ты весь код тестбенча запостить.

Share this post


Link to post
Share on other sites
                     

Платы Nucleo на базе STM32G0: чего можно добиться с помощью связки Nucleo и Arduino

Платы Nucleo и платы расширения X-NUCLEO от STMicroelectronics можно интегрировать в платформу Arduino с помощью библиотеки STM32duino. Связка плат Nucleo и платформы Arduino, и наличие готовых библиотек – представляет удобный инструмент для создания прототипов и конечных приложений в условиях ограниченного времени. Статья содержит пошаговые инструкции по установке библиотек и запуску примеров для Nucleo.

Подробнее...

Всем привет, пишу проект на VHDL ( сдивовый регистр на 24 бита , с параллельной загрузкой по 8 бит) .Ну вообщем это не важно. После написания когда написал тест бенч и почему то некторые выходы остаются неинициализированными, некоторые работает , не могу понять почему. Помогите пожалуйста.

Project.txt

tect bench.txt

post-162841-0-20306100-1355566649_thumb.jpg

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Ты нарушил последовательность действий) 1) Припаиваешь конденсатор К ВЫХОДУ TP4056. Не к двигателю.  2) Вставляешь зарядку для зарядки конденсатора и выходу платы из защиты (стандартная процедура во всех общих случаях). Достаёшь зарядку. Если ты не выполнил правильно последовательность, то работать и не должно было. А если сильно напрягает то, что для выхода из защиты нужно ставить на зарядку, можно сделать автоматический выход из защиты - поставить резистор между B- и OUT-.
    • Поддельные моторы. Моторолла стала ONSEMI в 2000 году и маркировка была другой и корпусов как у правого у ней не было никогда, когда она была мотороллой   Слева правильная моторолла 
    • На фотке были мотороллеры, четко помню. Вот эти хорошие, бета очень линейная до 5 Ампер.
    • Здрасти. Эт снова я. Малая обновка. в УНЧ 50 8 были заменены дубовые транзюки П308М, на 2N5551. На одном выходе была постоянка 30мв, на другом было все в порядке - 8мв. Потому что на том на котором было 8мв, я ранее корректировал резисторы R5(3.9к) и R8(3.9к) до 4.7к. А на том канале на котором было 30мв, был скорректирован только R5. Добил еще и R8 и стало на выходе 12мв. На этом можно успокоиться. Также запаял помехогасящий конденсатор на первичную обмотку транса от возможных помех в сети.  Есть идея скорректировать резисторы рядом с выходными транзюками 1Ом 0,5 Вт до 0.33Ом. Говорят положительно сказывается на динамике и низких.  А так осталось привести макинтош в божеский вид. Отшкурить, залакировать (возможно покрасить). Также надо бы как то изготовить пластиковые кнопки для рычажков преда моно/стерео и тонкомпенсации + крутилку записи (хотя там оно отключено, но для эстетики надо). Есть друг занимающийся 3д печатью, думаю к нему обратиться с этой задачей.
    • У тебя хоть иногда возникают свои собственные мысли, чтобы подобные выводы делать? - или только умеешь повторять как попугай, патриот ты наш ?  Где это я об этом написал? Отсебячину несёшь. Если бы не любил жить, где родился, тогда бы давно отсюда сдристнул. А так буду по возможности очищать свою страну от воров, бандитов, убийц и другой твари.   
    • Вообще-то это не коммутатор, а 4-х канальный аудиопроцессор. Китайский аналог процессора TDA7313D. Выпускаются аналоги: PT7313, PT2313L, SC2313. CSC2313... На казусе я когда-то писал об этих микросхемах. Да и в интернете на профильных сайтах неоднократно упоминаются эти микросхемы при ремонте аудиоаппаратуры, в основном автомагнетол.
    • Staryy можно ссылку на удобоваримом ? или если у кого есть готовая печатная плата индикации в lay то скиньте пожалуйста
×
×
  • Create New...