Форум программистов, компьютерный форум, киберфорум
Программируемая логика: ПЛИС, ПАИС
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.86/14: Рейтинг темы: голосов - 14, средняя оценка - 4.86
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 225

Базовые вещи при освоении ПЛИС в части ввода-вывода информации

03.05.2024, 12:11. Показов 4227. Ответов 55
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Подскажите пожалуйста по такому вопросу.
Каковы базовые вещи при освоении ПЛИС в части ввода-вывода информации?
С такими задачами сталкиваюсь впервые, киньте какую-нибудь идею, может есть какая-нибудь литература, которая может помочь в решении данной задачи?
Конкретный пример задачи: реализовать на ПЛИС ввод информации со спутника в память, затем вывод информации на один из выходов ПЛИС.
Можно также другие простые задачи, чтобы я мог поработать над ними и потестировать в отладочной среде.
Буду очень признателен за помощь!

Добавлено через 3 часа 7 минут
Есть множество понятий в голове, которые ещё сложно ещё выстроить в единую картинку.
Кажется, что ввод-вывод - это какая-то простая концепция. Наподобие, "с помощью клавиатуры введите число от 0 до 1000, выводите его на семисегментный четырёхразрядный индикатор и храните в энергонезависимой памяти, чтобы после отключения и включения ПЛИС это значение сохранялось".
В то же время, какие-то серилайзеры и десерилайзеры, блоки контроля импеданса, SDR и DDR триггеры, различные типы задержек для компенсации неодинаковости линий, собственные PLL для более точной подстройки блоков данных, высокосортная память и т.д.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.05.2024, 12:11
Ответы с готовыми решениями:

Нужны базовые рекомендации, и поддержка в освоении
Доброго времени суток! Пару часов назад захотел освоить базовые функции этой прекрасной проги(как я думаю) А именно меня интересует...

Замена метода ввода вывода информации на возврат строки информации об объекте, который дальше можно выводить на экран
1)Заменить метод вывода информации об объекте на метод который возвращает строку информации об объекте который дальше можно выводить на...

Базовые вещи о справочниках и не только
Моя обработка: &НаКлиенте Процедура Команда1(Команда) Команда2(); КонецПроцедуры &НаСервере Процедура Команда2() ...

55
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 225
27.06.2024, 08:17  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Skryp Посмотреть сообщение
Плис хорошо перемножает сигналы. Ваш пример должен работать. Также можете использовать встроенные умножители dsp48, но для скоростей i2c интерфейса и на распределенных ресурсах всё будет успевать умножаться. В Плис xilinx есть готовый блок ip core cordic, для вычисления различных математических операций. У intel есть аналогичные модули.
А у них есть команды интегрирования/дифференцирования входного сигнала?
0
 Аватар для Worldmaster
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
27.06.2024, 08:32
Цитата Сообщение от Istorik Посмотреть сообщение
`timescale 1 ns / 1 ns
Это для моделирования нужно. В плис это не используется.

Цитата Сообщение от Istorik Посмотреть сообщение
// Model base rate: 0.2
// Target subsystem base rate: 0.2
Может матлаб сам умеет что то там моделировать и это указатели для него?
Для моделирования то лучше ModelSim наверное. Ужасно устаревший и писец не дружелюбный, но со своими задачами справляется.

На электрониксе есть тема по умножению для ПЛИС. Там вам больше помогут. Но ссылку тут положить нельзя.

Еще вот есть документ о синтезиуемости блоков https://tp.prosoft.ru/docs/sha... download=1

Как правило в IDE есть корки которые реализуют те или иные функции.
1
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 225
27.06.2024, 09:05  [ТС]
Цитата Сообщение от Worldmaster Посмотреть сообщение
Может матлаб сам умеет что то там моделировать и это указатели для него?
Для моделирования то лучше ModelSim наверное. Ужасно устаревший и писец не дружелюбный, но со своими задачами справляется.
Матлаб мне нужен, чтобы схему в HDL преобразовать. А тестирование я буду делать в Модельсиме, тем более, что я уже это делал. Тут в теме об этом писал. Базовые вещи при освоении ПЛИС в части ввода-вывода информации
0
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 225
27.06.2024, 11:52  [ТС]
Подскажите, как изменить отображение с пикосекунд на наносекунды?

0
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 225
27.06.2024, 11:56  [ТС]
Нашёл. Wave -> Wave Preferences -> Grid & Timeline и там можно выбрать единицу измерения.
0
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 225
28.06.2024, 13:06  [ТС]
Ребята, а можно реализовывать триггер на ПЛИС путём прописывания его базовых элементов и взаимосвязей между ними (т.е. без использования always posedge negedge и т.д.)? Например, RS-триггер:

Code
1
2
3
4
5
6
7
module RStrigger(input R,S, output Q,iQ);
wire or1o,or2o;
nor or1(or1o,or2o,R);
nor or2(or2o,or1o,S);
assign Q = or1o;
assign iQ = or2o;
endmodule
И тестбенч для него:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
`timescale 1ns / 1ns 
module RStrigger_tb; 
wire Q_out; 
wire iQ_out;
reg t_R, t_S; 
RStrigger example(.R(t_R), .S(t_S), .Q(Q_out), .iQ(iQ_out)); 
initial 
begin 
t_R = 1'b0; t_S = 1'b0; #5;
t_R = 1'b1; t_S = 1'b0; #5;
t_R = 1'b0; t_S = 1'b1; #5;
t_R = 1'b1; t_S = 1'b1; #5;
end 
endmodule
Вот исходная схема:



А это результаты из МодельСима. Вроде бы похоже. Будет ли такое устройство работать в реальности?

0
Нарушитель
266 / 143 / 3
Регистрация: 25.01.2012
Сообщений: 6,330
Записей в блоге: 196
01.07.2024, 06:30
Будет ли такое устройство работать в реальности?
такое устройство работать не будет. Точнее не должно. Об этом писали ещё в журналах с 2012 года. Насчёт тест бенчей его не помню, но там писали - нет такой халвы в FPGA. Вечером скину ссылку. В симуляции нужно пробовать - она вернее покажет, чем компилятор. Там писали, что код может компилироваться, но проверять его работоспособность нужно иначе. Я свои схемы в симуляторе проверял и отладивал, исключал ошибки (там так- не исправлять, а исключать, по крайней мере - в моих схемах).
У меня в коде триггер попроще выглядит, а инвертный вывод делаю просто добавляя, на обычный, элемент not.
1
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 225
01.07.2024, 09:04  [ТС]
Цитата Сообщение от Hretgir Посмотреть сообщение
Вечером скину ссылку. В симуляции нужно пробовать - она вернее покажет, чем компилятор.
Результаты из МодельСима есть ниже, после кода тестбенча. https://www.cyberforum.ru/atta... 1719569049 Графики вроде как похожи на работу RS-триггера.
0
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 225
01.07.2024, 09:32  [ТС]
Ещё сделал вот такую штуку. Она сдвигает сигнал на 1 такт. Хз, вроде как на основе D-триггера. Может кому-то пригодится.

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
module shift4bit(clock, data, out, outRegA, outRegB, outRegC);
input clock;
input [3:0] data;
output [3:0] out;
output [3:0] outRegA;
output [3:0] outRegB;
output [3:0] outRegC;
reg [3:0] RegA;
reg [3:0] RegB;
reg [3:0] RegC;
 
always @(posedge clock) begin
RegA <= data;
RegB <= RegA;
RegC <= RegB;
end
 
assign out = data;
assign outRegA = RegA;
assign outRegB = RegB;
assign outRegC = RegC;
 
endmodule
И тестбенч:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
`timescale 1ns / 1ps
module shift4bit_tb; 
// Inputs
reg [3:0] data;
reg clock;
// Outputs
wire [3:0] out;
wire [3:0] outRegA;
wire [3:0] outRegB;
wire [3:0] outRegC;
// Instantiate the Unit Under Test (UUT)
shift4bit uut (.clock(clock),.data(data),.out(out),.outRegA(outRegA),.outRegB(outRegB),.outRegC(outRegC));
initial begin
// Initialize Inputs
data  = 4'd0;
clock  = 1'b1;
// Wait 100 ns for global reset to finish
#20;
// Add stimulus here
data = 4'd1; #20;
data = 4'd2; #20;
data = 4'd3; #20;
data = 4'd4; #20;
data = 4'd5; #20;
data = 4'd6; #20;
data = 4'd7; #20;
data = 4'd8; #20;
end
always #10 clock = ~clock;  
endmodule
Результаты:

0
Нарушитель
266 / 143 / 3
Регистрация: 25.01.2012
Сообщений: 6,330
Записей в блоге: 196
01.07.2024, 20:36
Вот
https://303421.selcdn.ru/soel-... 120158.pdf

Вообще без проблем пол RS триггера
Code
1
2
3
4
5
6
7
8
(input S, R, 
 output reg Q);
always @(*) begin
Q =0;
if (S==1) Q=1;
if (R==1) Q=0;
end
endmodule
Для инверсного выхода, когда надо, я просто подключаю элемент NOT. Но стоит отметить, что бывает надо, в процентах 25 случаев - не часто, очень редко и при усложнении схемы-надстройках внешних модулей всё реже и реже. Но я сам пока новичок в этом.
К сожалению я не могу посмотреть как он устроен, так как у GOWIN это считается стандартным элементом...а код я вроде как сам придумал, не долго думая, посмотрел в списках их экземпляров базовых - есть такой, но устройства не описывается
Миниатюры
Базовые вещи при освоении ПЛИС в части ввода-вывода информации  
1
Нарушитель
266 / 143 / 3
Регистрация: 25.01.2012
Сообщений: 6,330
Записей в блоге: 196
01.07.2024, 20:51
Может и ваш будет работать - я не знаю, но мне как-то спокойней, что к моему коду нашёлся базовый экземпляр от производителя. Просто когда код писал - понимал, что инверсный выход нужен не всегда и для его реализации достаточно всего одного элемента NOT.
Точно такой-же триггер как и у вас пытался сделать и я, но беда - симулятор выдавал ошибку, и я понимал что она не избежна. Тогда я нашёл то, на что дал вам ссылку, там есть такой текст
ТИПИЧНАЯ ОШИБКА
ПРОЕКТИРОВАНИЯ – ЗАДАНИЕ
ТРИГГЕРА В ВИДЕ
СТРУКТУРНОГО ОПИСАНИЯ
СХЕМЫ ИЗ ЛОГИЧЕСКИХ
ЭЛЕМЕНТОВ
Пользователи САПР программи
руемых логических интегральных
схем, не знакомые с основами схем
ной реализации VHDLконструкций,
часто пытаются описать триггер в
виде схемы из логических элемен
тов или в виде взаимосвязанных ло
гических выражений, что в конеч
ном счёте одно и то же ....
в ISE выдаётся пред
упреждение о наличии в схеме логи
ческого цикла (обратной связи), и при
моделировании схема не выполняет
функции триггера
.
Но на самом деле проблема там далеко не в обратных логических связях, а в том, что там нет стартового значения ни у одного из нужных проводов, хотя это может быть одно и то-же, но мне кажется что нет, так как мой опыт из пошаговой симуляции работы такого триггера - не работает.
1
Нарушитель
266 / 143 / 3
Регистрация: 25.01.2012
Сообщений: 6,330
Записей в блоге: 196
01.07.2024, 21:08
Вот случай, например, когда мне нужен и инверсный выход - вообще без проблем
Миниатюры
Базовые вещи при освоении ПЛИС в части ввода-вывода информации  
0
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 225
02.07.2024, 07:53  [ТС]
Hretgir, спасибо вам за комментарии, чуть позже напишу свои.

Добавлено через 1 минуту
Ребята, вопрос вот такой: на ПЛИС можно делать сколько угодно генераторов тактовых импульсов (клоков), например clk1, clk2, clk3 ... clkn, или есть основной генератор с определённой частотой, а другие получать только путём манипуляций с ним (например, делители частоты и т.д.) ?
0
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 225
02.07.2024, 14:44  [ТС]
Цитата Сообщение от Worldmaster Посмотреть сообщение
Сделайте ячейку Debounce которая будет убирать дребезг контактов при нажатии кнопки.
Попробуйте использовать экземпляры ячейки для разных кнопок.
Лампочкой помигать.
В моделсиме построить диаграмму работы.
Я сделал следующим образом. Вот код для имитации дребезга с блоком Debouncing, которая убирает дребезг контактов.

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
module randnum (signal, clock, r, c_out, pos_neg_edge, signal_for_rattling, mask_for_signal, signal_with_rattling, signal_after_filtering_from_bouncing);
input signal;
input clock;
reg [3:0] n;
reg c;
reg [$clog2(DEBOUNCE_LIMIT)-1:0] r_Count = 0;
reg r_State = 1'b0;
 
output [3:0] r;
output c_out;
output pos_neg_edge;
output signal_for_rattling;
output mask_for_signal;
output signal_with_rattling;
output signal_after_filtering_from_bouncing;
//Parameters
parameter DELAY = 10;
parameter DEBOUNCE_LIMIT = 20;
reg [DELAY-1:0] signal_delay;
//
always @(posedge clock) begin
    n <= $random%15;
    signal_delay <= {signal_delay[DELAY-2:0], signal};
    if (signal_with_rattling !== r_State && r_Count < DEBOUNCE_LIMIT-1) begin
    r_Count <= r_Count + 1;
    end
    else if (r_Count == DEBOUNCE_LIMIT-1) 
    begin
    r_State <= signal_with_rattling;
    r_Count <= 0;
    end
    else 
    begin
    r_Count <= 0;
    end
end
assign r = n;
assign c_out = ($signed(n) < $signed(4'b0000)) ? 1'b1 : 1'b0;
assign pos_neg_edge = (signal != signal_delay[DELAY-1]) ? 1'b1 : 1'b0;
assign signal_for_rattling = signal || pos_neg_edge; 
assign mask_for_signal = !(c_out && pos_neg_edge);
assign signal_with_rattling = signal_for_rattling && mask_for_signal;
assign signal_after_filtering_from_bouncing = r_State;
endmodule
И тестбенч:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
`timescale 1ns / 1ps
module randnum_tb; 
// Inputs
reg clock;
reg signal;
// Outputs
wire [3:0] r;
wire c_out;
wire pos_neg_edge;
wire signal_for_rattling;
wire mask_for_signal;
wire signal_with_rattling;
wire signal_after_filtering_from_bouncing;
// Instantiate the Unit Under Test (UUT)
randnum uut (.signal(signal),.clock(clock),.r(r),.c_out(c_out),.pos_neg_edge(pos_neg_edge),.signal_for_rattling(signal_for_rattling),.mask_for_signal(mask_for_signal),.signal_with_rattling(signal_with_rattling),.signal_after_filtering_from_bouncing(signal_after_filtering_from_bouncing));
initial begin
// Initialize Inputs
clock  = 1'b1;
#10;
signal = 1'b0; #100;
signal = 1'b1; #100;
signal = 1'b0; #100;
// Wait 100 ns for global reset to finish
end
always #0.5 clock = ~clock;  
endmodule
Это чисто учебный проект. Кому нужно - пользуйтесь наздоровье. Модель дребезга я придумал сам, а блок Debouncing сделал на основе примера из книги Getting Started with FPGAs.Digital Circuit Design, Verilog, and VHDL for Beginners by Russell Merrick на странице 106. Код не самый сложный, но в паре мест ещё поразбираюсь. В целом, это не какой-то сложный алгоритм фильтрации.



Если будут вопросы, предложения и замечания по коду - пожалуйста пишите.
0
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 225
02.07.2024, 15:02  [ТС]
Hretgir, Я почитал статью, которую вы сбросили. Ну допустим, код моделируется в некоторых симуляторах, но на устройстве вряд ли синтезируется. А может попробовать и посмотреть, что получится? У меня сейчас под рукой нет платы. Могу я вас попросить (если вас не затруднит) залить код на устройство и рассказать, что выйдет. Буду очень признателен.
0
Нарушитель
266 / 143 / 3
Регистрация: 25.01.2012
Сообщений: 6,330
Записей в блоге: 196
02.07.2024, 20:18
Цитата Сообщение от Istorik Посмотреть сообщение
Hretgir, Я почитал статью, которую вы сбросили. Ну допустим, код моделируется в некоторых симуляторах, но на устройстве вряд ли синтезируется. А может попробовать и посмотреть, что получится? У меня сейчас под рукой нет платы. Могу я вас попросить (если вас не затруднит) залить код на устройство и рассказать, что выйдет. Буду очень признателен.
В воскресенье, думаю, сделаю полноценную публикацию, хотя сомнительно что успею до воскресения, но вообще планирую. Там программируемый автомат последовательной активации, планируется памяти, программируется игнорирование/учёт . Как раз планирую память для кэша команд своего процессора (планируется на статической логике, попробую сделать быстрый). Процессора пока не будет в публикации, но атомат активации - будет. Прийдётся подождать, иначе если отвлекаться - не успевать буду сильно.

Не по теме:

Купите gowin nano 9k, вообще дешман ведь...просто ждать долго с Китая...и IDE бесплатная.

0
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 225
03.07.2024, 06:41  [ТС]
Цитата Сообщение от Hretgir Посмотреть сообщение
Там программируемый автомат последовательной активации, планируется памяти, программируется игнорирование/учёт . Как раз планирую память для кэша команд своего процессора (планируется на статической логике, попробую сделать быстрый). Процессора пока не будет в публикации, но атомат активации - будет. Прийдётся подождать, иначе если отвлекаться - не успевать буду сильно.
Ничего страшного, просьба не срочная, доделывайте спокойно свои дела в первую очередь. А я пока попробую достать плату и работать в симуляторе.
0
Нарушитель
266 / 143 / 3
Регистрация: 25.01.2012
Сообщений: 6,330
Записей в блоге: 196
04.07.2024, 07:02
Хорошо, я как раз вчера вечером разобрался с массивами проводов, думаю что в воскресенье публикацию успею. Массивы проводов и шлейфов - самая специфичная область наверное верилога, накладывающаяся на особенности разных IDE.
0
Нарушитель
266 / 143 / 3
Регистрация: 25.01.2012
Сообщений: 6,330
Записей в блоге: 196
07.07.2024, 12:04
Проблема - не могу соединить шину экземпляра Mych с внешними проводами.
Задал вопросы и буду искть решение самостоятельно.
Модуль MyTop в самом низу кода
Кликните здесь для просмотра всего текста
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
module Trs
(input S, R, 
 output reg Q);
always @(*) begin
Q =0;
if (S==1) Q=1;
if (R==1) Q=0;
end
endmodule
 
module MyCF
(input StartTact, Set, ResLim, ResFil, Fillsin, limit,  Run, Zero, Unit, InJamp, InFillsin, InStub1, InFStub, InFStub1, Sel, Sel2,  
 output  Finish, OutJamp, OutFillsin, OutStub1, OutFStub, OutFStub1,  MemoriOut);
wire sig0;
bufif1 bf0(InFillsin, Fillsin, Sel);
Trs trs0(InFillsin, ResFil, trs0_0);
and a0(f1_0, Sel, limit);
Trs trs1(f1_0, ResLim, OutFStub);
not n0(OutFStub1, OutFStub);
xor x0(x0_0, OutFStub1, Sel2);
//bufif1 bf1(InFillsin, InFStub1, InFStub);
bufif1 bf2(OutFillsin, InFillsin, x0_0);
and an0(an0_0,  trs0_0, Unit);
and an1(an1_0,  trs0_0, Zero);
Trs trs2(an0_0, an1_0, trs2_0);
and an2(an2_0,  sig0, trs2_0);
and an3(an3_0,  InJamp, an2_0);
and an4(MemoriOut,  an3_0, StartTact);
and an5(an5_0, Sel, Run);
bufif1 bf3(InJamp, an5_0, an5_0);
Trs trs3(Set, MemoriOut, sig0);
xor x1(x1_0, trs2_0, sig0);
//bufif1 bf4(InJamp, InStub1, InStub1);
and an6(an6_0,  x1_0, x0_0);
not n1(OutStub1, an6_0);
bufif1 bf5(OutJamp, InJamp, an6_0);
and an7(Finish,  MemoriOut, OutFStub);
endmodule
 
module MyC
(input StartTact, Set, ResLim, ResFil, Fillsin, limit,  Run, Zero, Unit, InJamp, InFillsin, InStub1, InFStub, InFStub1, Sel, Sel2,
 output  Finish, OutJamp, OutFillsin, OutStub1, OutFStub, OutFStub1,  MemoriOut);
wire sig0;
bufif1 bf0(InFillsin, Fillsin, Sel);
Trs trs0(InFillsin, ResFil, trs0_0);
and a0(f1_0, Sel, limit);
Trs trs1(f1_0, ResLim, OutFStub);
not n0(OutFStub1, OutFStub);
xor x0(x0_0, OutFStub1, Sel2);
bufif1 bf1(InFillsin, InFStub1, InFStub);
bufif1 bf2(OutFillsin, InFillsin, x0_0);
and an0(an0_0,  trs0_0, Unit);
and an1(an1_0,  trs0_0, Zero);
Trs trs2(an0_0, an1_0, trs2_0);
and an2(an2_0,  sig0, trs2_0);
and an3(an3_0,  InJamp, an2_0);
and an4(MemoriOut,  an3_0, StartTact);
and an5(an5_0, Sel, Run);
bufif1 bf3(InJamp, an5_0, an5_0);
Trs trs3(Set, MemoriOut, sig0);
xor x1(x1_0, trs2_0, sig0);
bufif1 bf4(InJamp, InStub1, InStub1);
and an6(an6_0,  x1_0, x0_0);
not n1(OutStub1, an6_0);
bufif1 bf5(OutJamp, InJamp, an6_0);
and an7(Finish,  MemoriOut, OutFStub);
endmodule
 
module Mych
(input StartTact, Set,  ResLim, ResFil, Fillsin, limit, Run, Zero, Unit, InJamp, input wire  [0:0]se[0:5],
output  FinishTact, Finish, output wire [0:0]ActivMemo[0:5]);
genvar i;
generate
wire [0:2]OtJam, OutFillsi[0:5], OutStu1[0:5], OutFStu[0:5], OutFStu1[0:5], ORi[0:5], Fini[0:5];
MyCF mycf(StartTact, Set,  ResLim, ResFil, Fillsin, limit, Run, Zero, Unit,InJamp,,,,
,se[0],,Fini[0],ORi[0], OutFillsi[0], OutStu1[0], OutFStu[0], OutFStu1[0], ActivMemo[0]);
bufif1 bf0(FinishTact, ActivMemo[0], ActivMemo[0]);
bufif1 bf1(Finish, Fini[0], Fini[0]);
for (i=0; i<5; i=i+1 ) begin:MyC_generation
//assign se2[i] = se[i];
MyC myc(StartTact, Set,  ResLim, ResFil, Fillsin, limit, Run, Zero, Unit, ORi[i], OutFillsi[i], OutStu1[i], OutFStu[i], OutFStu1[i]
,se[i+1],se[i], Fini[i+1],ORi[i+1], OutFillsi[i+1], OutStu1[i+1], OutFStu[i+1], OutFStu1[i+1], ActivMemo[i+1]);
bufif1 bf0(FinishTact, ActivMemo[i+1], ActivMemo[i+1]);
bufif1 bf1(Finish, Fini[i+1], Fini[i+1]);
end
endgenerate
endmodule
 
 module MyTop();
 
wire  [0:0]se1[0:5];
wire  [0:0]Mout1[0:5];
//wire  [];
Mych mych1(,,,,,,,,,,se1,,,);
 
endmodule
0
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 225
08.07.2024, 07:15  [ТС]
Подскажите какую-нибудь литературу или примеры по работе ПЛИС с памятью: обработка, запись на устройство, обращение к устройству.
Например, задача вот такая: сжать картинку, записать на флешку А под определённым именем, обратиться к флешке А, взять картинку и скопировать её на флешку В.

Добавлено через 31 секунду
Цитата Сообщение от Hretgir Посмотреть сообщение
Проблема - не могу соединить шину экземпляра Mych с внешними проводами.
Задал вопросы и буду искть решение самостоятельно.
Модуль MyTop в самом низу кода
А что это за устройство?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.07.2024, 07:15

Разъясните базовые вещи по maven
Добрый день, осваиваю maven + idea. Допустим я создал учебный проект на java 8. Сохранил. Прописал в настройках maven'a и самой идеи , что...

Организация ввода / вывода информации
вариант №9

Организация ввода/вывода информации
Всем здравствуйте! Уже пол дня бъюсь над заданием:umnik: сил больше нет, жду помощи профессионала:) Задание: Организуйте ввод с...

Контроль ввода вывода информации
Помоги пожалуйста как написать так что если пользователь вводит информацию не правильно то выводилось соответствующее сообщение . Вот...

организация ввода-вывода информации в мк-51
Вид числа – распакованное; мк осуществляет Вывод; Начальный адрес – 20Н; Длина массива в P1.7; Инициатор – MK; Уровни...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru