Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Verilog输入输出线有问题_Verilog - Fatal编程技术网

Verilog输入输出线有问题

Verilog输入输出线有问题,verilog,Verilog,记录在案,我是一个完全的Verilog新手。我正在编写一个使用一些双向总线的模块 inout wire [KEY_SIZE-1:0] prevKey; inout wire [TAG_SIZE-1:0] prevTag; inout wire [KEY_SIZE-1:0] nextKey; inout wire [TAG_SIZE-1:0] nextTag; 我知道我是怎么从车上读东西的,但是我怎么在上面写东西呢?如果我对reg使用assign语句,当新数据传输到线路上时,reg的值会被删除

记录在案,我是一个完全的Verilog新手。我正在编写一个使用一些双向总线的模块

inout wire [KEY_SIZE-1:0] prevKey;
inout wire [TAG_SIZE-1:0] prevTag;

inout wire [KEY_SIZE-1:0] nextKey;
inout wire [TAG_SIZE-1:0] nextTag;
我知道我是怎么从车上读东西的,但是我怎么在上面写东西呢?如果我对
reg
使用assign语句,当新数据传输到线路上时,
reg
的值会被删除吗?处理
inout
端口是否值得这么麻烦,还是我应该为每个端口创建
输入
输出
总线

如果我对注册表使用assign语句

这句话没有什么意义,你不给regs赋值,你给wire赋值

驱动输入输出导线的简单示例:

inout wire bidir_wire;

reg drive_value;
reg drive_enable;
reg something;

assign bidir_wire = drive_enable ? drive_value : 1'bz; 

always @(posedge clk) begin
    drive_value  <= ... ;  //assign a drive value based on some criteria
    drive_enable <= ...;
    something    <= bidir_wire; //do something with the input value
end
inout-wire-bidir\u-wire;
reg驱动_值;
reg drive_enable;
注册某物;
分配bidir\u导线=驱动器\u启用?驱动_值:1'bz;
始终@(posedge clk)开始

驱动器值因此,尽管分配给
drive\u value
(这反过来反映在
bidir\u wire
)中,您仍然可以读取
bidir\u wire
?@AndyShulman的旧值,很抱歉,这些语句是非阻塞的。因此,每当时钟边缘上升时,bidir_wire的旧值被锁存到寄存器'something'中,而drive_值的新值被锁存到寄存器'something'中,从而覆盖该线。