verilog assign延时180度
答案:3 悬赏:60 手机版
解决时间 2021-04-04 08:13
- 提问者网友:皆是孤独
- 2021-04-03 23:32
verilog assign延时180度
最佳答案
- 五星知识达人网友:患得患失的劫
- 2021-04-04 00:53
assign data =#180 b;
意思是过了180个时间单位后,把b的数值给data.这里面的#号是延时的意思,不知道是不是你要的。
意思是过了180个时间单位后,把b的数值给data.这里面的#号是延时的意思,不知道是不是你要的。
全部回答
- 1楼网友:不想翻身的咸鱼
- 2021-04-04 04:04
关于问题补充:其实如果想做赋值的话,一般都会习惯性地定义一下reg型变量,然后在always语句块内直接赋值就可以了,类似于:reg a;a=1。很少有人定义wire型变量然后再赋值的,wire型一般都是在上层模块中调用下层模块的输入输出时才会定义的类型,一般都是这样。而assign命令一般都习惯性地当做连线用,比如想把一个模块的输出给另一个模块当输入,就可以assign input=output;
至于时钟那两句,其实那个也是习惯性的写法,一般都习惯使用时钟信号同步整个模块,而时钟信号就是从testbench文件中发出的。特别是对于大的工程,这样的设定会方便各个模块之间的同步。我可不是什么工程师,只不过是刚学了verilog一年的研究生而已,呵呵
初学者吧?你写的这个有太多不规范的地方= =
虽然assign可以这样用,不过很少有人这么写。assign相当于连线,一般它的用处是将一个变量的值不间断地赋值给另外一个,就像把这两个变量连在一起一样。
替你写了个testbench,应该还算是比较规范的,你可以参考我的改一下。如果还不行的话你把你的源代码给我我可以帮你看一下
`timescale 1ns / 1ps
////////////////////////////////////////////////////////////////////////////////
// company:
// engineer:
//
// create date: 11:03:54 07/01/2010
// design name: tb_bin27seg
// module name: d:/xilinx/11.1/myproject/test12/testbench.v
// project name: test12
// target device:
// tool versions:
// description:
//
// verilog test fixture created by ise for module: tb_bin27seg
//
// dependencies:
//
// revision:
// revision 0.01 - file created
// additional comments:
//
////////////////////////////////////////////////////////////////////////////////
`timescale 1ns / 1ps
////////////////////////////////////////////////////////////////////////////////
// company:
// engineer:搞吓米飞机
//
// create date: 17:14:55 05/08/2010
// design name: test
// module name: d:/xilinx/11.1/myproject/convolution/convolutiontest.v
// project name: convolution
// target device:
// tool versions:
// description:
//
// verilog test fixture created by ise for module: convolution
//
// dependencies:
//
// revision:
// revision 0.01 - file created
// additional comments:
//
////////////////////////////////////////////////////////////////////////////////
module test;
// inputs
reg clk;
reg din;
reg en;
// outputs
wire dout;
// instantiate the unit under test (uut)
bin27seg tb(
.din(din),
.en(en),
.dout(dout));
initial begin
// initialize inputs
clk=0;
din=0;
en=1;
// wait 100 ns for global reset to finish
#100;
en=0;
// add stimulus here
end
always #4 clk=~clk;
always@(posedge clk)
begin
if(din<=4'b
- 2楼网友:话散在刀尖上
- 2021-04-04 02:25
直接取反就好了啊
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯