标签: verilog

快速 Verilog HDL 提示(初学者)

我是 Verilog HDL 的初学者,并尝试从逻辑图中对一些模块进行建模。如果两条线输入到与非门,然后再输入另一个反相器,理论上这只是一个与门吗?由于所需的输出线位于逆变器的另一侧。可不可能是。

AND
    g1(F,A,B)
Run Code Online (Sandbox Code Playgroud)

A 和 B 是输入,F 是输出。另外,为了将来的知识,我将如何使用 Verilog 实现逆变器?

verilog hdl

-1
推荐指数
1
解决办法
6552
查看次数

如何在系统verilog中取消注册

如果我不知道大小,我如何取消系统verilog中的寄存器?例如,如果我有:

reg [DATA_WIDTH-1:0] data_stack;
Run Code Online (Sandbox Code Playgroud)

DATA_WIDTH给模块一些参数.是否可以为寄存器分配零data_stack

注意,初始化类似于reg零的就足够了,因为我可以简单地执行按位并在两者之间执行并使其无效data_stack.

此外,任何推荐的网站,我可以学习这些东西?谷歌搜索让我只有一些贫血的网站.

verification verilog system-verilog

-1
推荐指数
1
解决办法
647
查看次数

一行verilog代码

我有一行verilog代码,我上网了,我不明白这意味着什么.

rom_data <= #`DEL {rom[rom_addr+3],rom[rom_addr+2],rom[rom_addr+1],rom[rom_addr]};
Run Code Online (Sandbox Code Playgroud)

有人可以帮我揭穿这个吗?

syntax verilog

-1
推荐指数
1
解决办法
90
查看次数

为什么 gtkwave 不接受我的 verilog 代码?

我想在 gtkwave 上显示代码的波形,但是在 CMI 中输入这些语句后:

iverilog -o task_compiled task.v

vvp任务编译

=> VCD 信息:转储文件 main.vcd 打开用于输出

gtkwave任务.vcd

=> GTKwave 分析仪...

 error opening .vcd file `task.vcd`
Run Code Online (Sandbox Code Playgroud)

如果这是一个愚蠢的问题,我提前道歉,但我真的厌倦了在这件事上浪费时间。我只想做作业


timescale 1ns/10ps
module main(A_i, B_i, C_i, Y_o);  
    input A_i, B_i, C_i;
    output Y_o;
    wire w1, w2, w3, w4;
    assign   Y_o = w4 ~& w2;
    assign   w1 = B_i & C_i;
    assign   w2 = w1 | w3;
    assign   w3 = w4 | A_i;
    assign   w4 = A_i ~| w1;
endmodule
module main_tb;         
    reg a1, b1, c1; …
Run Code Online (Sandbox Code Playgroud)

verilog

-1
推荐指数
1
解决办法
4494
查看次数

VHil等效于Verilog @(posedge clk)

我不熟悉verilog.我尽力尝试转换它.

虽然模拟时钟从'0'变为'x',这很奇怪.我怀疑这部分是问题所在

repeat(9) @(posedge clk);
   DataIn_i <= 1'b1;
   DataIn_q <= 1'b1;
@(posedge clk);
  FillSel <= 1'b0;
  DataIn_i <= 1'b0;
  DataIn_q <= 1'b0;
Run Code Online (Sandbox Code Playgroud)

这里有两个长椅的链接.

Verilog工作台 - http://a.pomf.se/fvamqd.v Vhdl工作台 - http://a.pomf.se/riolvf.vhd

欢迎任何意见,提前谢谢.

编辑:任何人都可以解释上面给出的verilog代码?

verilog fpga vhdl

-1
推荐指数
1
解决办法
6029
查看次数

为什么我的 Verilog 测试台永远不会停止?

教授给出了下面的代码,我要弄清楚为什么它永远不会停止。

module tb_problem1();

reg a, b, c, d, e;
wire x;
reg [4:0] ins;

problem1 dut(a, b, c, d, e, x);

initial begin
    ins = 0;
    while(ins < 32) begin
        {a, b, c, d, e} = ins;
        #20;
        ins = ins + 1;
    end
end

endmodule
Run Code Online (Sandbox Code Playgroud)

那是因为我们需要做ins = ins+1'b1;吗?

verilog

-1
推荐指数
1
解决办法
125
查看次数

我不明白我的 iverilog 中的语法错误是什么

我这样写代码:

module alu(input[7:0] a,input[7:0]  b,input [2:0] op,output reg [7:0] y);
always@(a or b or op) begin
 case(op)
  3'b000: y = a + b;
  3'b001: y = a - b;
  3'b010: y = a * b;
  3'b011: y = a / b;
  3'b100: y = a & b;
  3'b101: y = a | b;
  3'b110: y = ~a;
  3'b111: y = a ^ b;
endcase
 $display("base 10 : %dns :?op=%d b=%d y=%d" , $stime, op, a, b, y);
 $display("base  2 : …
Run Code Online (Sandbox Code Playgroud)

verilog iverilog

-1
推荐指数
1
解决办法
862
查看次数

Verilog中1和1'b1之间的差异

在verilog代码中仅给出1和给出1'b1有什么区别?

embedded verilog system-verilog iverilog

-1
推荐指数
1
解决办法
44
查看次数

电线和三角网,魔杖和三角网有什么区别?

我正在学习 Verilog。我不明白电线和三网类型、魔杖和三网类型之间的区别。我们究竟需要在哪里将网络指定为魔杖和三和?

verilog

-2
推荐指数
1
解决办法
6291
查看次数

旋转左 verilog 大小写

我的任务是用 verilog 编写一个 16 位 ALU。我在做需要旋转操作数和做2的补码加减法的部分时发现困难。我知道如何用纸和铅笔解决这个问题,但我无法想出在 Verilog 中的方法。例如:A 表示为 a15 a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 如果我要旋转 4 位,答案将是 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 a15 a14 a13 a12

我试过串联,但结果是不正确的。需要大家帮忙...

verilog rotation shift

-3
推荐指数
1
解决办法
3万
查看次数

Verilog比较器

我是一个verilog的新手.

我做了很多研究,最后编写了这段代码,但似乎无法正常工作.

任何人都可以帮我解决吗?

module comparator();
    reg[3:0] a, b;
    wire[1:0] equal, lower, greater;    

    if (a<b) begin

        equal = 0;
        lower = 1;
        greater = 0;
    end

    else if (a==b) begin
        equal = 1;
        lower = 0;
        greater = 0;
    end

    else begin
        equal = 0;
        lower = 0;
        greater = 1;
    end;

    initial begin
                $monitor($time, 
                         "a=%b, b=%b, greater=%b, equals=%b, lower=%b",
                          a, b, greater, equal, lower);

                a=9; b=10;
                #100 $display ("\n", $time, "\n");
        end
endmodule 
Run Code Online (Sandbox Code Playgroud)

verilog comparator

-3
推荐指数
1
解决办法
2万
查看次数

插入符号 (^) 是什么意思?

^Verilog hdl 语言中的插入符号 ( ) 是什么意思?a在带有输入和b输出的verilog公式中c,这c = a ^ b意味着什么?

verilog

-3
推荐指数
1
解决办法
7589
查看次数