verilog问题 为下面的代码 写个测试信号(.vt文件) 用于modelsim仿真 (急用)

verilog问题 为下面的代码 写个测试信号(.vt文件) 用于modelsim仿真 (急用),第1张

`timescale 1 ns/ 1 ps

module shift_tb

regclk

regdin

wiredout

parameterPeriod = 10

shift u1 (

.clk(clk),

.din(din),

.dout(dout)

)

initial

begin

clk = 0

din = 1'b0// 初始化输入din

rst = 0 // 低电平复位

#100

rst = 1 // 复位结束

end

always #(Period/2) clk <= ~clk // clk为10ns

always @(posedge clk)

begin

din <= {$random} % 2 // 产生0和1的随机数,用来做随机输入值

end

endmodule

建立.v文件,文件名为 shift_tb.v ,这个就是仿真文件。

`timescale 1ns / 1ps

////////////////////////////////////////////////////////////////////////////////

// Company:

// Engineer:

//

// Create Date: 16:19:44 06/21/2010

// Design Name: sell

// Module Name: D:/Xilinx/11.1/myproject/baidu/test.v

// Project Name: baidu

// Target Device:

// Tool versions:

// Description:

//

// Verilog Test Fixture created by ISE for module: sell

//

// Dependencies:

//

// Revision:

// Revision 0.01 - File Created

// Additional Comments:

//

////////////////////////////////////////////////////////////////////////////////

module test

// Inputs

reg one_dollar

reg half_dollar

reg reset

reg clk

// Outputs

wire collect

wire half_out

wire dispense

reg k

// Instantiate the Unit Under Test (UUT)

sell uut (

.one_dollar(one_dollar),

.half_dollar(half_dollar),

.collect(collect),

.half_out(half_out),

.dispense(dispense),

.reset(reset),

.clk(clk)

)

initial begin

// Initialize Inputs

one_dollar = 0

half_dollar = 0

reset = 0

clk = 0

k=0

// Wait 100 ns for global reset to finish

#100

reset=1

// Add stimulus here

end

always #5 clk=~clk

always@(posedge clk)

begin

if(reset==0)

begin

one_dollar = 0

half_dollar = 0

end

else

begin

if(k==0)

begin

one_dollar=1

half_dollar=0

end

else

begin

half_dollar=1

one_dollar=0

end

if(collect==1)

begin

k=~k

end

end

end

endmodule

程序的语法没有问题,但实际上这程序根本无法工作。你把问题简化的太简单了

verilog里一般不声明输出类型的话 默认是wire型的

如果你想在输出处寄存一下:比如使用always语句,则必须声明为reg类型

wire是线网,就是相当于实际中的连接线,你想assign的话就是直接连接,就是用wire型,他的值是随时变化的。比如你想寄存一下,让他在时钟边沿才变化就需要reg类型了

你的问题应该是主要讨论下wire型和reg型的应用区别吧

另外,团IDC网上有许多产品团购,便宜有口碑


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11788247.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存