Иногда нужно следовать самому простому объяснению Генератор там на 12 или сколько там нужно Ориону МГц. Внешний - потому что внутреннего у CPLD (да и у FPGA) нет.
Ок!..
Я просто размышляю, что вот тут разработчики внешний генератор хоть явно и не прицепили,
но, тем не менее, - припасли...
Lavr wrote:Но вобще говоря, кое-что несколько непривычно и забавно!
Вот так (как обычно привыкли) счетчики делать - нельзя!
adv70000.gif
Но счетчики следует делать вот так - как сумматор состояния выхода
регистра с единицей...
count_s0.png
Я бы, наверное, нарошно не придумал такое
Видимо, понапихано у них там кучи сумматоров, по одному на каждый LU... (щютка)
Меня терзают смутные сомнения... ты что, собрался схемы рисовать ?. Избавляйся от этого рудимента и все пиши на VHDL, Verilog или System Verilog (SV). Если выберешь SV, то будь в курсе, что он не поддерживается в Xilinx ISE.
Vasil Ivanov wrote:Меня терзают смутные сомнения... ты что, собрался схемы рисовать ?. Избавляйся от этого рудимента и все пиши на VHDL, Verilog или System Verilog (SV).
Я уже пытался отговорить, с кучей аргументов - не помогло
Да что вы к Lavr'у пристали - если хочет пусть рисует, vhdl успеет попробовать.
Я начинал со схемного ввода и сейчас наполовину им пользуюсь. Ничего страшного в схемном вводе нет.
Специально проделал опыт с EPM3064.
Работающий JTAG никак не мешает работе проекта в ПЛИС - можно
прочитать идентификаторы, состояние выводов.
А вот при обращении по JTAG к регистрам внутрисистемного
программирования проект тут же прекращает работу -
по крайней мере входы/выходы переходят в Z.
По поводу неправильных построений схем и их описания. Вот недавний пример. Попробуйте без ошибок описать на vhdl вот эту схему - у меня не получилось - пришлось рисовать и вставлять как компонент в проект на vhdl. Так работает и нет проблем, а то была ошибка про неправильный сигнал тактирования (вход C триггера).
LIBRARY ieee;
USE ieee.std_logic_1164.all;
LIBRARY work;
ENTITY Block1 IS
PORT
(
ROMTD : IN STD_LOGIC;
A14 : IN STD_LOGIC;
A15 : IN STD_LOGIC;
NASS : IN STD_LOGIC;
IDP : OUT STD_LOGIC
);
END Block1;
ARCHITECTURE bdf_type OF Block1 IS
SIGNAL SYNTHESIZED_WIRE_0 : STD_LOGIC;
SIGNAL DFF_inst5 : STD_LOGIC;
SIGNAL SYNTHESIZED_WIRE_1 : STD_LOGIC;
SIGNAL SYNTHESIZED_WIRE_2 : STD_LOGIC;
BEGIN
SYNTHESIZED_WIRE_0 <= NOT(ROMTD);
SYNTHESIZED_WIRE_2 <= NOT(SYNTHESIZED_WIRE_0 AND A14 AND A15);
SYNTHESIZED_WIRE_1 <= NOT(A14 AND A15);
IDP <= DFF_inst5 AND SYNTHESIZED_WIRE_1;
PROCESS(SYNTHESIZED_WIRE_2,NASS)
BEGIN
IF (NASS = '0') THEN
DFF_inst5 <= '0';
ELSIF (RISING_EDGE(SYNTHESIZED_WIRE_2)) THEN
DFF_inst5 <= '1';
END IF;
END PROCESS;
END bdf_type;
Схема была слишком мелкая, поэтому точно названия выводов не рассмотрел, но это не важно.
Естественно, я тут сжульничал - нарисовал схему и попросил Quartus сделать для нее VHDL, но суть от этого не меняется (оптимальность кода - мы об этом сейчас не говорим)... Кстати, не совсем понимаю, на что могло ругаться - вроде все довольно прозрачно...
newold86 wrote:Естественно, я тут сжульничал - нарисовал схему и попросил Quartus сделать для нее VHDL...
А вот если теперь проверить наоборот: открываем новый проект, создаем файл VHDL,
подставляем в него текст из поста выше, компилируем...
А потом смотрим вьюером - соберет ли Quartus исходную схему или его мнение изменится?
newold86 wrote:Естественно, я тут сжульничал - нарисовал схему и попросил Quartus сделать для нее VHDL...
А вот если теперь проверить наоборот: открываем новый проект, создаем файл VHDL,
подставляем в него текст из поста выше, компилируем...
А потом смотрим вьюером - соберет ли Quartus исходную схему или его мнение изменится?
Lavr wrote:А вот если теперь проверить наоборот: открываем новый проект, создаем файл VHDL,
подставляем в него текст из поста выше, компилируем...
А потом смотрим вьюером - соберет ли Quartus исходную схему или его мнение изменится?
Прежде, чем постить, проверил
Ну тогда утверждение, что "схемный дизайн ведет в тупик" выглядит несколько странно...
Lavr wrote:Ну тогда утверждение, что "схемный дизайн ведет в тупик" выглядит несколько странно...
Вообще не вижу ничего странного - понятно, что схемы такого размера хоть "вручную" из блоков FPGA собирай, разницы особой не будет. И преобразование в VHDL в этом случае тоже будет более-менее понятное (хотя штук 5 позорных строчек даже здесь я все-таки удалил, не вынесла душа поэта)... А вот что-то побольше превратится в совершенно нечитаемое месиво кода.