Мелкие вопросы по цифровой технике.
- Грендайзер
- Мучитель микросхем
- Сообщения: 479
- Зарегистрирован: Вт июн 02, 2009 22:38:40
- Откуда: Город-герой Москва
Re: Мелкие вопросы по цифровой технике.
Спасибо, обязательно ознакомлюсь 
- Реклама
- Ghost in shell
- Держит паяльник хвостом
- Сообщения: 936
- Зарегистрирован: Пн июн 15, 2009 06:01:38
- Откуда: USSR
Re: Мелкие вопросы по цифровой технике.
Доброго времени суток!
Какие выходы у 155ИД6? Открытый коллектор или обычная ТТЛ?
Какие выходы у 155ИД6? Открытый коллектор или обычная ТТЛ?
Кот гуляет сам по себе, но вблизи холодильника.
- gfgeuf
- Друг Кота
- Сообщения: 3695
- Зарегистрирован: Пн авг 29, 2011 10:35:30
- Откуда: Україна Дикий Захід - Чортків - Джурин
Re: Мелкие вопросы по цифровой технике.
Вот смотрите , количественное значение сейчас поищу и подредактирую пост.
60 миллиампер.
Спойлер
- Вложения
-
- Snap_2012.12.18_20h36m07s_001.png
- (7.58 КБ) 642 скачивания
пути ТОКА неисповедимы.
Злословец есть самый лютый из диких зверей,
а льстец - самый опасный из ручных животных. (ДИОГЕН)
Злословец есть самый лютый из диких зверей,
а льстец - самый опасный из ручных животных. (ДИОГЕН)
- dimitriy91
- Вымогатель припоя
- Сообщения: 619
- Зарегистрирован: Ср июн 08, 2011 15:37:56
- Откуда: ДВ
Re: Мелкие вопросы по цифровой технике.
Код: Выделить всё
Ну ближе всего к железу машинный код."Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: Мелкие вопросы по цифровой технике.
Ассемблер очень сильно похож на машный код (некотрые считают это одно и тоже, но это не так) , а Си все ж язык высокого уровня.gfgeuf писал(а):Знаете СИ очень сильно похож на ассемблер,
- Реклама
- Goldsmith
- Опытный кот
- Сообщения: 736
- Зарегистрирован: Пн янв 10, 2011 03:06:36
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Мелкие вопросы по цифровой технике.
Ничего удивительного, он именно так и задумывался:dimitriy91 писал(а):Знаете СИ очень сильно похож на ассемблер, я вот смотрю на конструкции СИ и насквозь вижу ассемблер...
можно смело говорить что си очеь близок к железу
(Керниган, Ричи. Язык C).Язык "C" не является ни языком "очень высокого уровня", ни "большим" языком, и не предназначается для некоторой специальной области применения.
...
Язык "C" - это язык относительно "низкого уровня". В такой характеристике нет ничего оскорбительного; это просто означает, что "C" имеет дело с объектами того же вида, что и большинство ЭВМ, а именно, с символами, числами и адресами. Они могут объединяться и пересылаться посредством обычных арифметических и логических операций, осуществляемых реальными ЭВМ.
Так что Вы вполне верно поняли его суть.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
J. Ganssle
- gfgeuf
- Друг Кота
- Сообщения: 3695
- Зарегистрирован: Пн авг 29, 2011 10:35:30
- Откуда: Україна Дикий Захід - Чортків - Джурин
Re: Мелкие вопросы по цифровой технике.
Мне ,конечно ,лестно узнать , что я настолько сведущ в цифровых языках ,но цитата всё таки не мояZ_h_e писал(а):Ассемблер очень сильно похож на машный код (некотрые считают это одно и тоже, но это не так) , а Си все ж язык высокого уровня.gfgeuf писал(а):Знаете СИ очень сильно похож на ассемблер,
пути ТОКА неисповедимы.
Злословец есть самый лютый из диких зверей,
а льстец - самый опасный из ручных животных. (ДИОГЕН)
Злословец есть самый лютый из диких зверей,
а льстец - самый опасный из ручных животных. (ДИОГЕН)
- dimitriy91
- Вымогатель припоя
- Сообщения: 619
- Зарегистрирован: Ср июн 08, 2011 15:37:56
- Откуда: ДВ
Re: Мелкие вопросы по цифровой технике.
Прошу прощения , я ночной зомби.
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: Мелкие вопросы по цифровой технике.
gfgeuf, извиняюсь. Как так получилось, я не знаю. То ли глюк на сайте, ибо тэги не набирал вручную. То ли кривые пальцы с какой-то специфической изогнутостью. 
- dimitriy91
- Вымогатель припоя
- Сообщения: 619
- Зарегистрирован: Ср июн 08, 2011 15:37:56
- Откуда: ДВ
Re: Мелкие вопросы по цифровой технике.
Есть интерфейс :
CLK : in STD_LOGIC;
x0 : in STD_LOGIC;
x1 : in STD_LOGIC;
x2 : in STD_LOGIC;
out_TR : out std_logic_vector(9 downto 0);
stat : out STD_LOGIC_VECTOR (0 to 1);
fun_ex : out STD_LOGIC_VECTOR (0 to 1);
DATA : inout STD_LOGIC_VECTOR (0 to 7);
YD : out STD_LOGIC_VECTOR (0 to 7)
);
есть сигнал:
signal DATA : STD_LOGIC_VECTOR(0 to 7) := "10111110";
есть карта портов:
uut: SHIFT_REGISTER_24_bit PORT MAP (
CLK => CLK,
x0 => x0,
x1 => x1,
x2 => x2,
out_TR => out_TR,
stat => stat,
fun_ex => fun_ex,
DATA => DATA,
YD => YD
);
есть процесс с инициализацией вх воздействий (тест бенч):
px1 : process
begin
x2 <= '1' ;
x1 <= '0' ;
DATA <= "10111110";
wait for CLK_period ;
x2 <= '1' ;
x1 <= '0' ;
DATA <= "11111111";
wait for CLK_period ;
x2 <= '1' ;
x1 <= '0' ;
DATA <= "11111111";
wait for CLK_period ;
x2 <= '1' ;
x1 <= '1' ;
wait for CLK_period ;
x2 <= '1' ;
x1 <= '1' ;
wait for CLK_period ;
x2 <= '0' ;
x1 <= '0' ;
wait for CLK_period ;
x2 <= '0' ;
x1 <= '0' ;
wait for CLK_period ;
x2 <= '0' ;
x1 <= '0' ;
wait for CLK_period ;
end process;
END;почему DATA остаётся не инициализированной "U"
НАшёл буржуйский сайт , где такая же проблема :
http://www.velocityreviews.com/forums/t ... elsim.html
Спойлер
PORT(CLK : in STD_LOGIC;
x0 : in STD_LOGIC;
x1 : in STD_LOGIC;
x2 : in STD_LOGIC;
out_TR : out std_logic_vector(9 downto 0);
stat : out STD_LOGIC_VECTOR (0 to 1);
fun_ex : out STD_LOGIC_VECTOR (0 to 1);
DATA : inout STD_LOGIC_VECTOR (0 to 7);
YD : out STD_LOGIC_VECTOR (0 to 7)
);
есть сигнал:
signal DATA : STD_LOGIC_VECTOR(0 to 7) := "10111110";
есть карта портов:
uut: SHIFT_REGISTER_24_bit PORT MAP (
CLK => CLK,
x0 => x0,
x1 => x1,
x2 => x2,
out_TR => out_TR,
stat => stat,
fun_ex => fun_ex,
DATA => DATA,
YD => YD
);
есть процесс с инициализацией вх воздействий (тест бенч):
px1 : process
begin
x2 <= '1' ;
x1 <= '0' ;
DATA <= "10111110";
wait for CLK_period ;
x2 <= '1' ;
x1 <= '0' ;
DATA <= "11111111";
wait for CLK_period ;
x2 <= '1' ;
x1 <= '0' ;
DATA <= "11111111";
wait for CLK_period ;
x2 <= '1' ;
x1 <= '1' ;
wait for CLK_period ;
x2 <= '1' ;
x1 <= '1' ;
wait for CLK_period ;
x2 <= '0' ;
x1 <= '0' ;
wait for CLK_period ;
x2 <= '0' ;
x1 <= '0' ;
wait for CLK_period ;
x2 <= '0' ;
x1 <= '0' ;
wait for CLK_period ;
end process;
END;
НАшёл буржуйский сайт , где такая же проблема :
http://www.velocityreviews.com/forums/t ... elsim.html
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
Re: Мелкие вопросы по цифровой технике.
Потому что DATA inout? правильно?
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
- dimitriy91
- Вымогатель припоя
- Сообщения: 619
- Зарегистрирован: Ср июн 08, 2011 15:37:56
- Откуда: ДВ
Re: Мелкие вопросы по цифровой технике.
Решения проблемы так и не нашёл, проблема как то связано с inout
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
Re: Мелкие вопросы по цифровой технике.
Возможно у вас возникает неоднозначность с сигналом создаваемом со стороны модуля тестбенча и испытуемого модуля. Иногда, даже если вам кажется, что там однозначно, формально может возникать конфликт и тогда симулятор не присваивает никакого значения и выдаёт неопределённость.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
- dimitriy91
- Вымогатель припоя
- Сообщения: 619
- Зарегистрирован: Ср июн 08, 2011 15:37:56
- Откуда: ДВ
Re: Мелкие вопросы по цифровой технике.
Но в случае неоднозначности используется символ "X"
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Мелкие вопросы по цифровой технике.
2 dimitriy91
Делаю так. (Моделсим под квартус)
1) Объявляю сигнал например signal Dio:std_logic_vector(15 downto 0):="1111111111111111"; Аналогично определяю сигнал управления signal ena:std_logic; от которого будет пляска двунаправленной шины
2) В назначении портов пишу PORT MAP( тра-ля-ля, DATA=>Dio, control=>ena);
Ниже карты подключения компонента DATA<=Dio; для отсылки значений с сигнальной шины к порту ввода/вывода.
3) Далее в процессе описываю wait until ena='0';допустим при этом д.б. z состояние Dio<="ZZZZZZZZZZZZZZZZ";
wait until ena='1'; Dio<= тут назначается от обработки в процессе.
Делаю так. (Моделсим под квартус)
1) Объявляю сигнал например signal Dio:std_logic_vector(15 downto 0):="1111111111111111"; Аналогично определяю сигнал управления signal ena:std_logic; от которого будет пляска двунаправленной шины
2) В назначении портов пишу PORT MAP( тра-ля-ля, DATA=>Dio, control=>ena);
Ниже карты подключения компонента DATA<=Dio; для отсылки значений с сигнальной шины к порту ввода/вывода.
3) Далее в процессе описываю wait until ena='0';допустим при этом д.б. z состояние Dio<="ZZZZZZZZZZZZZZZZ";
wait until ena='1'; Dio<= тут назначается от обработки в процессе.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
- dimitriy91
- Вымогатель припоя
- Сообщения: 619
- Зарегистрирован: Ср июн 08, 2011 15:37:56
- Откуда: ДВ
Re: Мелкие вопросы по цифровой технике.
Так я вроде бы аналогично ( хоть и неявно так же делал)
px1 : process
begin
x2 <= '1' ;
x1 <= '0' ;
DATA <= "10111110";
wait for CLK_period ;
x2 <= '1' ;
x1 <= '0' ;
DATA <= "11111111";
wait for CLK_period ;
x2 <= '1' ;
x1 <= '0' ;
DATA <= "11111111";
wait for CLK_period ;
x2 <= '1' ;
x1 <= '1' ;
wait for CLK_period ;
x2 <= '1' ;
x1 <= '1' ;
wait for CLK_period ;
x2 <= '0' ;
x1 <= '0' ;
wait for CLK_period ;
x2 <= '0' ;
x1 <= '0' ;
wait for CLK_period ;
x2 <= '0' ;
x1 <= '0' ;
wait for CLK_period ;
end process;
px1 : process
begin
x2 <= '1' ;
x1 <= '0' ;
DATA <= "10111110";
wait for CLK_period ;
x2 <= '1' ;
x1 <= '0' ;
DATA <= "11111111";
wait for CLK_period ;
x2 <= '1' ;
x1 <= '0' ;
DATA <= "11111111";
wait for CLK_period ;
x2 <= '1' ;
x1 <= '1' ;
wait for CLK_period ;
x2 <= '1' ;
x1 <= '1' ;
wait for CLK_period ;
x2 <= '0' ;
x1 <= '0' ;
wait for CLK_period ;
x2 <= '0' ;
x1 <= '0' ;
wait for CLK_period ;
x2 <= '0' ;
x1 <= '0' ;
wait for CLK_period ;
end process;
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Мелкие вопросы по цифровой технике.
У вас тут легко запутаться - есть DATA сигнал, и есть DATA порт.
Переименуйте сигнал DATA любым именем (но не DATA) и отсылайте данные из компонента в этот сигнал. А уже вне карты портов, отошлете данные с сигнала в порт DATA.
Надеюсь понятно объяснил что как куда и зачем
Переименуйте сигнал DATA любым именем (но не DATA) и отсылайте данные из компонента в этот сигнал. А уже вне карты портов, отошлете данные с сигнала в порт DATA.
Надеюсь понятно объяснил что как куда и зачем
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
- dimitriy91
- Вымогатель припоя
- Сообщения: 619
- Зарегистрирован: Ср июн 08, 2011 15:37:56
- Откуда: ДВ
Re: Мелкие вопросы по цифровой технике.
Подскажете ещё один момент пожалуйста.
На фигурах представлена схема, параллельная загрузка в регистры через буфера. При описание на VHDL столкнулся с проблемой. Красными точками на схеме показаны места соединения выходов нижнего регистра со входами верхних( сдвиг как вы уже наверное догадались) , в схеме ошибок нет ( тестировал в мультисиме) , не знаю как грамотно описать на VHDL ( пишу первый раз на этом языке). Т.е. на времянках видно ( помечено ) при загрузки в первый регистр нижние отключены , и находятся в 3 состоянии, далее отключается первый , вкл второй , откл второй вкл третий . Т.е. загрузка три байта в три регистра параллельно за три такта. Но описал неграмотно, т.к. сигнал 'U' с нижнего регистра влияет при загрузки . Хотя должен находиться в 3 состоянии,управляет схемой автомат, он отлажен и работает :
Спойлер
Спойлер
Спойлер
- -- выходные линии с буферов ( 4 штук по 8 бит)
signal lineBUFQ4 : STD_LOGIC_VECTOR ( 0 to 7);
--выходные линии со сдвиговых регистров
signal lineREG1 : STD_LOGIC_VECTOR ( 0 to 7);
signal lineREG2 : STD_LOGIC_VECTOR ( 0 to 7);
signal lineREG3 : STD_LOGIC_VECTOR ( 0 to 7);
--управляющие линии с автомата
signal line_avtomat_control : STD_LOGIC_VECTOR ( 9 downto 0) ;
-- линии управления буферами с декодера
signal lineDEC : STD_LOGIC_VECTOR ( 0 to 7) ;
-- линии из порта SUM_ODD , контроллера нечётности
signal line_paritet : STD_LOGIC ;
-- линии из схемы контроля чётности (триггеров)
signal line_trigger : STD_LOGIC_VECTOR ( 0 to 2);
-- линии функции возбуждения памяти (триггеров)
signal exсit_fun_line : STD_LOGIC_VECTOR ( 0 to 1) := "11";
-- линия текущего состояния памяти (триггеров)
signal st : STD_LOGIC_VECTOR ( 0 to 1) ;
signal RESET,SET : STD_LOGIC := '1';
begin
-- объявляем буфера и показываем входные и выходные связи
BUF1 : buffer_8_BIT
port map( D => DATA, CLK => CLK, OE => lineDEC(0),RESET => '0',Q => lineREG1);
BUF2 : buffer_8_BIT
port map( D => DATA, CLK => CLK, OE => lineDEC(1),RESET => '0',Q => lineREG2);
BUF3 : buffer_8_BIT
port map( D => DATA, CLK => CLK, OE => lineDEC(2),RESET => '0',Q => lineREG3);
BUF4 : buffer_8_BIT
port map( D(0) => lineREG3(7),D(1) => lineREG1(0),D(2) => lineREG1(1),D(3) => lineREG1(2),
D(4) => lineREG1(3),D(5) => lineREG1(4),D(6) => lineREG1(5),D(7) => lineREG1(6),
CLK => CLK, OE => lineDEC(3),RESET => '0',Q => lineBUFQ4);
BUF5 : buffer_8_BIT
port map( D(0) => lineREG1(7),D(1) => lineREG2(0),D(2) => lineREG2(1),D(3) => lineREG2(2),
D(4) => lineREG2(3),D(5) => lineREG2(4),D(6) => lineREG2(5),D(7) => lineREG2(6),
CLK => CLK, OE => lineDEC(4),RESET => '0',Q => lineBUFQ4);
BUF6 : buffer_8_BIT
port map( D(0) => lineREG2(7),D(1) => lineREG3(0),D(2) => lineREG3(1),D(3) => lineREG3(2),
D(4) => lineREG3(3),D(5) => lineREG3(4),D(6) => lineREG3(5),D(7) => lineREG3(6),
CLK => CLK, OE => lineDEC(5),RESET => '0',Q => lineBUFQ4);
-- объявляем регистры и показываем входные и выходные связи
REG1 : REGISTR_8_BIT
port map( D(0) => lineREG1(0),D(1) => lineREG1(1), D(2) => lineREG1(2), D(3) => lineREG1(3),
D(4) => lineREG1(4),D(5) => lineREG1(5), D(6) => lineREG1(6), D(7) => lineREG1(7),
CLK => CLK, OE => line_avtomat_control(3),RESET => '0',
Q(0) => lineREG3(7),Q(1) => lineREG1(0),Q(2) => lineREG1(1),Q(3) => lineREG1(2),
Q(4) => lineREG1(3),Q(5) => lineREG1(4),Q(6) => lineREG1(5),Q(7) => lineREG1(6) );
REG2 : REGISTR_8_BIT
port map( D(0) => lineREG2(0),D(1) => lineREG2(1), D(2) => lineREG2(2), D(3) => lineREG2(3),
D(4) => lineREG2(4),D(5) => lineREG2(5), D(6) => lineREG2(6), D(7) => lineREG2(7),
CLK => CLK, OE => line_avtomat_control(2),RESET => '0',
Q(0) => lineREG1(7),Q(1) => lineREG2(0),Q(2) => lineREG2(1),Q(3) => lineREG2(2),
Q(4) => lineREG2(3),Q(5) => lineREG2(4),Q(6) => lineREG2(5),Q(7) => lineREG2(6) );
REG3 : REGISTR_8_BIT
port map( D(0) => lineREG3(0),D(1) => lineREG3(1), D(2) => lineREG3(2), D(3) => lineREG3(3),
D(4) => lineREG3(4),D(5) => lineREG3(5), D(6) => lineREG3(6), D(7) => lineREG3(7),
CLK => CLK, OE => line_avtomat_control(1),RESET => '0',
Q(0) => lineREG2(7),Q(1) => lineREG3(0),Q(2) => lineREG3(1),Q(3) => lineREG3(2),
Q(4) => lineREG3(3),Q(5) => lineREG3(4),Q(6) => lineREG3(5),Q(7) => lineREG3(6) );
PARIT : parity_checkers
port map( A => lineBUFQ4,EVEN => '0',ODD => '1',SUM_EVEN => open ,SUM_ODD => line_paritet );
DEC : decoder
port map( A => line_avtomat_control(9), B => line_avtomat_control(8), C => line_avtomat_control(7), Y => lineDEC );
PARIT_TRIG1 : LATCH
port map( CLK => not lineDEC(3), D => line_paritet,RESET => RESET,SET => '0', Q => line_trigger(0));
PARIT_TRIG2 : LATCH
port map( CLK => not lineDEC(4), D => line_paritet,RESET => RESET,SET => '0', Q => line_trigger(1));
PARIT_TRIG3 : LATCH
port map( CLK => not lineDEC(5), D => line_paritet,RESET => RESET,SET => '0', Q => line_trigger(2));
TRIG1_AVT : DFF
port map( CLK => CLK,D => exсit_fun_line(0),RESET => '0',SET => SET, Q => st(0));
TRIG2_AVT : DFF
port map( CLK => CLK,D => exсit_fun_line(1),RESET => '0',SET => SET, Q => st(1));
- Вложения
-
- Безымянный2.png
- (38.42 КБ) 379 скачиваний
-
- Безымянный1.png
- (25.72 КБ) 363 скачивания
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Мелкие вопросы по цифровой технике.
2 dimitriy91, правильно ли я понимаю, что вы сейчас пытаетесь переложить в ПЛИС некую схему, выполненную на "традиционных" микросхемах? И ваша задача организовать линии связи с z-состоянием внутри самой ПЛИС, даже точнее между отдельными блоками не выходящими наружу?
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
- dimitriy91
- Вымогатель припоя
- Сообщения: 619
- Зарегистрирован: Ср июн 08, 2011 15:37:56
- Откуда: ДВ
Re: Мелкие вопросы по цифровой технике.
Так вопрос снят, как всегда невнимательность.
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов



