我试图完全理解Verilog的抽象级别之间的差异,我得到了每个级别的描述,但我仍然无法在游戏中得到它.
对于这种情况,我将粘贴一些Verilog代码以及我对它们的看法:
以下代码位于行为级别.
always @ (a or b or sel)
begin
y = 0;
if (sel == 0) begin
y = a;
end else begin
y = b;
end
end
Run Code Online (Sandbox Code Playgroud)这(仅举例)是门级
module test(clk, ready, next, Q);
input clk, enable, next;
output Q;
\**SEQGEN** reg_1 (.clear(1'b0), .next_state(next), .clocked_on(clk), .Q(Q), .synch_enable(enable) );
endmodule
Run Code Online (Sandbox Code Playgroud)我不知道这段代码是在RTL还是门级(我希望always关键字使这个RTL而不是门级)
module dff_from_nand();
wire Q,Q_BAR;
reg D,CLK;
nand U1 (X,D,CLK) ;
nand U2 (Y,X,CLK) ;
nand U3 (Q,Q_BAR,X);
nand U4 (Q_BAR,Q,Y);
// Testbench of above code
initial begin
$monitor("CLK …Run Code Online (Sandbox Code Playgroud)我使用 rbenv 安装了 Ruby 2.7.2,但是当我运行以下代码时:
require 'webrick'
WEBrick::VERSION
=> "1.6.0"
WEBrick::HTTPUtils.method(:mime_type).source_location
=> ["/Users/my_user/.rbenv/versions/2.7.2/lib/ruby/2.7.0/webrick/httputils.rb", 133]
Run Code Online (Sandbox Code Playgroud)
我有 webrick 1.6 版,它有一个安全问题,已在ruby 2.7.2中修补。
如果我们使用带有 ruby 2.7.2 的 docker 映像,这也会发生在我们的 dev/prod 环境中,因此,我认为这不是 rbenv 问题。
我想知道的是,为什么我的 ruby 解释器使用 2.7.0 版本的库?