//уберите reg перед LCD_dclk
output LCD_dclk;
//в запускающем алвайс блоке надо сделать импульс
//1 такт
start <= 1;
//1 такт
start <= 0;
//далее попробуте организовать так
reg key;
reg state;
assign LCD_dclk = (key) ? clk_1k : 0;
always @(posedge clk_1k) //такт одна микросекунда
begin
case(state)
0: begin
if (start)
begin
state <= 1;
LCD_massiv_count <= 0;
end
end
1: begin
if(LCD_massiv_count <= 72)
begin
LCD_din <= LCD_massiv[LCD_massiv_count];
LCD_massiv_count <= LCD_massiv_count + 1;
key <= 1;
end else begin
state <= 0;
key <= 0;
end
end
endcase
end
Verilog как шахмоты, научившись ходить, не значит что научился играть. От таком раскладе я чето не подумал. Сейчас обкатан такой драйвер непрерывной работы:
Спойлер
// LCD_driver
always @(posedge clk_1k) //такт одна микросекунда
begin
if(LCD_massiv_count <= 72)
begin
LCD_load = 0;
if(LCD_dclk == 0) // если на ноге LCD_clk = 0, то прогнать драйвер, если 1 то установить ноль.
begin
#1000 LCD_din = LCD_massiv[LCD_massiv_count];
#1000 LCD_massiv_count = LCD_massiv_count + 1;
#1000 LCD_dclk = 1;
end
else LCD_dclk = 0;
end
else
begin LCD_massiv_count <= 1; LCD_load = 1; end
end
Оказывается от функциях я ни чего не знаю. Если в LCD_massiv написать какое то число то оно полностью отобразится на экране, а вот если прогнать такую строчку:
Спойлер
Вроде и ПДФ американский скачал, чтоб посмотреть как это пишется, все равно результат один, записывается только первый бит. Остальные нули.
И добавил......................
Меня вот что вымораживает: Если весь алвайс блок заменить на дону строчку LCD_massiv <= LCD_massiv + 1; // прогнать все пиксели - Проект занимает 200 вентилей. Проект работает исправно.
А без этой строчки, с CASE блоком, со счетчиками, тригерами и в 100 раз навешаной лубуды, занимает всего 80 вентилей. и фигню какую то показывает. я ужже незнаю что делать
В этом и отличие от простого программирования. Тут Вы описываете схему - а не просто алгоритм. Поэтому надо смотреть warning'и и после компиляции желательно зайти в RTL Viewer и посмотреть получившуюся схему.
И это ни как не отключить? У любого компилятора по идее должно настраиваться степень ужатия кода, что у C#, что у АВР, это есть.
Я блин двое суток пытался упорядочить рыбок в аквариуме. Вкурсе что рыбки за лазерной указкой бегают как и кошаки???
Операторы присваивания в Verilog делятся на блочное «=" и внеблочное «<=". Блочное присваивание выполняется сразу, в том месте, где оно встретилось, причем переменная меняет свое значение мгновенно и это может происходить неоднакратно в одной ветви алгоритма. Внеблочное присваивание изменяет значение переменной только в момент выхода из блока.
Нет, про рыбок не вкурсе
Подход в программировании ПЛИС сильно отличается от обычного программирования. Вы описываете схему. Почитайте тут http://marsohod.org/index.php/verilog тоже полезные статьи. Про блокирующие и не блокирующие присваивания знал
Вы как раз и отключили,только не то, что надо.Вот это: encoder_binaru -у Вас отсутствует в описании входов и выходов модуля.Это же должны быть входы,правильно?
Интересно, как люди пишут сложнейшие прогрммы? если тут в трех соснах обломался. Вроде код написан по всем правилам.
А еще в квартусе не работает логический анализатор SignalTap, видишлите отключена функция TalkBack. А чтоэто и где ее найти чтоб включить в интернете так и не нашел. Хотя я на эту функцию возлогал много надежд. Функция должна была быть моими глазами в происходящих внутрисхемных процессах.
А еще в квартусе не работает логический анализатор SignalTap, видишлите отключена функция TalkBack.
SignalTap к TalkBack не имеет никакого отношения.
SignalTap включается галочкой в окне свойств проекта и требует перекомпиляции проекта, а TalkBack включается Tools-Options-Internet Connectivity. TalkBack - служба статистики Альтеры и ни на что не влияет
Ошибка (265013): Не удается открыть логический анализатор SignalTap II. Убедитесь, что файл лицензии существует и хранится в нужном месте. Если вы используете программное обеспечение Web Edition Quartus II, необходимо включить функцию TalkBack использовать логический анализатор SignalTap II.
переведен текст на Руссский язык.
Спасибо, включил. И сразу все заработало. Оказывается мне надо было все бинарные числа перевести в десятичные. Завтра попробую будильник с зумером прикошачить. Тоесть он уже прикручен, только из за алгоритма будильника перестает работать алгоритм переноса десятичных чисел на следующий сегмент самих часов. Спойлер
Накатал вот такую строчку: , где clock_alarm1 и clock_alarm2 это живые контакты плиса. Как думаете они выгорят, если на них подцепить Пьезозвонок типо ЗП-19?
Как думаете они выгорят, если на них подцепить Пьезозвонок типо ЗП-19?
Выгореть не должны, но многие пьезозвонки громко работают только на своей резонансной частоте, а иначе их почти не слышно. Нагрузочная способность вывода ПЛИС не менее 1 ТТЛ, т.е 5-7 мА отдать можно.
Доброй ночи, эт снова я.\
Подскажите как правильно потключить в схемотехнике пины от тригера 74_174 к массиву? То меня послали долеко и без возвратно: Error (275044): Port "pins[6..0]" of type LRdecoder of instance "inst" is missing source signal
Вам надо от шины сделать отводы сигналов от pins[0] до pins[6] и их уже подключать дальше.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)