Описание тега verilog

Verilog - это язык описания оборудования (HDL), используемый для моделирования электронных систем. Чаще всего он используется при проектировании, проверке и реализации микросхем цифровой логики.
1 ответ

Кодирование простого калькулятора на уровне ворот Verilog

Привет, я студент EE на курсе Digital Systems, и у меня есть задание написать код калькулятора в Verilog. Я не должен использовать поведенческие коды, кроме * и / и у меня есть 3 вопроса относительно моего кода. Мой код выглядит следующим образом. m…
30 апр '17 в 02:55
3 ответа

109-битный компаратор дерева с генерацией и для цикла

Я пытаюсь написать код Verilog для 109-битного компаратора дерева, но я все еще новичок в цикле генерации. Пока я написал некоторый код, но я получаю некоторые ошибки. Кроме того, я не уверен, могу ли я использовать двумерные массивы для сигналов g …
23 июл '17 в 06:18
1 ответ

Замените двухпортовую ОЗУ двумя однопортовыми ОЗУ для процессора J1 Forth на ПЛИС Altera

Замечательный процессор J1 Forth ( исходный код Verilog) предназначен для работы на Xilinx FPGA. Я пытался перенести его на ПЛИС Altera Cyclone II. У меня проблемы с настройкой мегафункции двухпортовой оперативной памяти Altera. Судя по коду Verilog…
14 окт '13 в 20:02
1 ответ

Икар не знает, как анализировать массивы localparam?

Я использую v10 Icarus Verilog, Windows 8.1 и у меня возникают проблемы при компиляции 1D-массивов, например: localparam [15:0] A[0:5] = { 0, 10920, 21840, 32760, 43680, 54600 }; или 2D массив, например: localparam [1:0] B[0:5][0:2] = { {2'b00, 2'b1…
02 июн '17 в 09:31
4 ответа

Влияет ли задержка времени в блоке последовательной логической схемы на синтез или место или результат маршрута?

Я использую Xilinx ISE в качестве IDE. Если я добавлю задержку 100 пс при каждом назначении в всегда (Verilog)/ процессе (VHDL) с чувствительным списком, только часы и сброс. Как это. always@(posedge clk) if(rst) a <= #100 'd0; else a <= #100 …
16 авг '17 в 03:59
1 ответ

Как скомпилировать и запустить программу Verilog, которая вызывает функцию C?

Я не пытаюсь использовать вызов DPI, а просто программу Verilog, которая внутренне использует свой PLI для вызова функции, написанной на языке Си. Я не знаю о статических ссылках. Я использую edaplayground. Может кто-нибудь сказать мне, какой симуля…
16 авг '15 в 00:47
2 ответа

Очень запутанная ошибка без указания причины

Может кто-нибудь сказать мне, почему я получаю эту ошибку? Я все еще очень плохо знаком с Verilog, так что прошу прощения за любые очевидные недостатки. Спасибо! module func(clk,d,out); input [3:0] d; input clk; reg [3:0] q[1:0]; output [3:0] out; a…
26 май '13 в 07:02
2 ответа

В чем разница между = и <= в verilog?

Я новичок здесь, как в Verilog... Я хочу спросить о разнице между = и <= в этой программе? а как распечатать значение данных? module always_example(); reg clk,reset,enable,q_in,data; always @ (posedge clk) if (reset) begin data &lt;= 0; end else if …
16 фев '16 в 14:40
2 ответа

Verilog: реализация с использованием примитивных модулей против побитовых операторов

В учебнике, который я читаю, реализованы 1-битные сумматоры с использованием встроенных примитивных модулей: module yAdder1(z, cout, a, b, cin); output[0:0] z, cout; input[0:0] a, b, cin; wire[0:0] tmp, outL, outR; xor left_xor(tmp, a, b); xor right…
30 июн '17 в 20:58
2 ответа

Назначение идентификационного номера или кода для модуля Verilog

Я разработал модуль (A) в Verilog, и мне нужно создать его экземпляр четыре раза в верхнем модуле. Два модуля взаимодействуют друг с другом и некоторыми другими модулями. "А" посылает некоторые сигналы, которые должен принять другой экземпляр "А". С…
21 апр '14 в 08:23
1 ответ

Искаженное утверждение в verilog

Привет, я использую следующий код для разработки n-битного счетчика. В зависимости от начала и конца я хочу создать счетчик вверх или вниз. Но я получаю "Неверное утверждение". Пожалуйста помоги. module nbitUpCounter(startc,endc , clk, rst_n,actlow,…
14 фев '14 в 04:51
2 ответа

Verilog Force - релиз

Можно ли дважды форсировать сигнал перед его выпуском в verilog? Что-то вроде ниже, initial begin force top.dut.xyz.abc.dout = 1; #5ns; force top.dut.xyz.abc.dout = 0; #5ns; release top.dut.xyz.abc.dout = 0; end Какая сила будет высвобождена, когда …
18 сен '17 в 09:48
3 ответа

О задержке в флип-флопе

Я хочу буферизовать однобитовый сигнал "сделано" двумя однобитными триггерами. Готовый сигнал будет повышаться только в течение одного такта в моем дизайне. Поэтому я написал следующий код. //first level buffer done signal for one cycle to get ciphe…
16 июн '12 в 16:12
0 ответов

Волновая форма для переноски сумматора

Мой тестовый стенд показан ниже, мне нужна следующая волновая функция: форма волны при 150 нс module rca_dataflow_tb; reg [3:0] a; reg [3:0] b; reg cin; wire [3:0] s; wire cout; rca_dataflow dut(.a(a),.b(b),.cin(cin),.s(s),.cout(cout)); initial begi…
24 апр '18 в 13:30
1 ответ

Verilog: если заявление неожиданное поведение

Я реализую путь данных MIPS (поведенческий) в Verilog, и когда я имитирую свой код, поведение является неожиданным. Здесь показан случай инструкций BEQ и BNE (ветвь, если равно / не равно). ALU_Out определяет, равны ли два регистра или нет. Ни один …
14 ноя '15 в 11:29
1 ответ

Verilog несколько проверок при назначении

Я не могу понять, почему в этом коде есть ошибка синтаксиса: mem_check_msk = (membytes[i] == 3) ? 32'h00ffffff : (membytes[i] == 2) ? (mempa[i][1:0] == 2'b00) ? endianess ? 32'hffff0000 : 32'h0000ffff : (membytes[i] == 1) ? (mempa[i][1:0] == 2'b00) …
03 авг '17 в 15:18
1 ответ

Ошибка при проверке синтаксиса

module mult(a, b, p); input [16:0] a; input [16:0] b; output p; wire [31:0] p; reg i; wire pv; wire bp; assign pv = 32'b0; assign bp = {16'b0,b} ; initial begin for (i = 0; i &lt; 32 ; i = i + 1) begin if (a[i] == 1'b1) begin pv &lt;= pv + bp; end b…
14 фев '17 в 06:09
4 ответа

В Verilog я пытаюсь использовать $readmemb для чтения.txt файла, но он только загружает xxxxx (не заботится) в память

Мне нужно загрузить память с некоторыми данными первоначально в двоичном формате. Я читал, что $readmemb может быть использован для этого, и есть даже способ сделать синтезируемым. Итак, я создал другой модуль с именем RAM_IN (который не является мо…
10 май '16 в 10:28
2 ответа

Синтез "всегда" блоков

Справочное руководство Verilog Golden на стр. 12 предостерегает от несомненного always блокирует и дает шаблоны, которым нужно следовать, чтобы уменьшить вероятность непреднамеренного создания несинтезируемого always блоки. Однако в руководстве не …
02 апр '12 в 16:40
1 ответ

Могу ли я назначить переменные многомерным элементам массива в Verilog?

Могу ли я назначить что-то вроде этого в Verilog: reg [4:0] synd[0:4]={s0,s1,s2,s3,s4};//s0,s1,s2....s4 are 5 bit values. Кроме того, при обращении к этому массиву из блока 'Always', я должен просто ссылаться на него, как скажем synd[0] для s0 и так…
10 авг '17 в 15:47