-
Falcon
-
-
Не в сети
-
Осваиваюсь на форуме
-
-
Сообщений: 31
-
Спасибо получено: 8
-
-
|
Вы бы код всего модуля выложили бы.
А то не ясно что вам нужно.
Предполагаю что ниже следующие.
module name_module(
input pwm,
output reg a,
output reg b);
reg delitel;
always @(posedge pwm)
begin
delitel <= delitel + 1; // Если однобитный то лучше сделать так delitel <= ~delitel
if (delitel == 1) // Если однобитный то просто if (delitel)
begin
a<=1;
b<=0;
end
else
begin
a<=0;
b<=0; // Не понятно почему 0 возможно должна быть 1????
end
end
endmodule
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Falcon.
|
-
Игорь
-
-
Не в сети
-
Новый участник
-
-
Сообщений: 4
-
Спасибо получено: 0
-
-
|
Огромное спасибо! Моя ошибка была в том, что я расчитывал на то что у делятеля будет как прямой выход ( выход а ), так и инверсный (выход b).
Еще одна просьба, вы можете помочь с кодом ШИМ разворота. Подобный разворот, используют при работе ШИМ контроллеров, в импульсных источниках питания.
По правде говоря, у меня даже мысли не возникает как это сделать для разового разворота.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Игорь.
|
-
_RVN_
-
-
Не в сети
-
Новый участник
-
-
Сообщений: 3
-
Спасибо получено: 0
-
-
|
Доброго времени суток. Помогите в освоении VERILOGa.
Проблема в следующем: есть внешняя память параметризированной длины. Для обращения к ней нужно сформировать счетчик. Каким образом из параметра - объема памяти вычислить разрядность счетчика адреса, дабы избежать избыточности?
Пример: память 16 слов - счетчик адреса должен быть 4-х разрядным.
На AHDL в этом случае использовал логарифм по основанию 2. А как же сделать на VERILOGe?
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
leshabirukov
-
-
Не в сети
-
Захожу иногда
-
-
Сообщений: 56
-
Спасибо получено: 13
-
-
|
Можно написать логарифм самому:
`define MY_LOG2(x) ( (x)<3 ? 1: ((x)<5 ? 2:((x)<9 ? 3:4)) )
...
parameter MEM_SZ= 8;
reg [MEM_SZ:0] memory;
reg [`MY_LOG2( MEM_SZ )-1:0] ptr;
(Проверил только компилируемость)
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Kas2901
-
-
Не в сети
-
Новый участник
-
-
Сообщений: 12
-
Спасибо получено: 0
-
-
-
-
|
Приветствую всех! Есть потребность реализовать формулу на Verilog`e, но вот беда в ней есть экспонента со степенью. Еще хуже то, что в степени переменные.
Формулька: m2 = m1 * ( exp(Tclk/t) - 1)
Поэтому руками не посчитать. В это связи и вопрос, а инструменты Verilog`а вообще позволяют такое реализовать? После продолжительного серфинга по памяти, книжкам и сети подобных реализаций не встретил... У кого-то вставал такой вопрос?
Или может есть софтинка специально для подобного? Может даже MATLAB HDL code Generator (сам не пользовался, не знаю)...
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
_RVN_
-
-
Не в сети
-
Новый участник
-
-
Сообщений: 3
-
Спасибо получено: 0
-
-
|
Может кому понадобится - вычисление логарифма по основанию 2. Реализовано функцией. Нашел на буржуйском форуме. Спасибо им.
function integer clogb2;
input [31:0] value;
integer i;
begin
clogb2 = 0;
for(i = 0; 2**i < value; i = i + 1)
clogb2 = i + 1;
end
endfunction
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Kas2901
-
-
Не в сети
-
Новый участник
-
-
Сообщений: 12
-
Спасибо получено: 0
-
-
-
-
|
** это же вроде оператор VHDLля для возведения в степень. А для Verilog`a есть чтонить?
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Kas2901.
|
-
_RVN_
-
-
Не в сети
-
Новый участник
-
-
Сообщений: 3
-
Спасибо получено: 0
-
-
|
Это именно VERILOG. :) Это в VERILOG-1995 не было, а уже в VERILOG-2000 добавилась операция возведения в степень.
Источник: Поляков Языки VHDL и VERILOG в проектировании цифровой аппаратуры 2003
По крайней мере, у меня в Quartus-е работает.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
leshabirukov
-
-
Не в сети
-
Захожу иногда
-
-
Сообщений: 56
-
Спасибо получено: 13
-
-
|
А t это переменная времени компиляции или выполнения? Во втором случае, экспоненту надо считать в самом проекте на железе, и дело это не простое и ресурсоёмкое.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Tanya
-
-
Не в сети
-
Новый участник
-
-
Сообщений: 1
-
Спасибо получено: 0
-
-
|
Ребята, дело срочное.
Я реализовала запись данных в файл /txt/ и не могу понять где этот файл найти, куда он сохраняется? В текущий дизайн - нет. Надо заранее создавать этот файл, чтобы туда записывались значения?
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
Время создания страницы: 0.143 секунд