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

//移位寄存器代码moduleshift(clk,din,dout);inputclk,din;outputdout;reg[3:0]rdata;assigndout=r... //移位寄存器代码
module shift(clk,din,dout);input clk,din;output dout;reg [3:0] rdata;assign dout=rdata[3];always@(posedge clk) rdata <={rdata[2:0],din};endmodule
展开
 我来答
oakyyds
2013-12-25 · TA获得超过638个赞
知道小有建树答主
回答量:261
采纳率:50%
帮助的人:94.1万
展开全部
`timescale 1 ns/ 1 ps

module shift_tb;

reg clk;
reg din;
wire dout;

parameter Period = 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 ,这个就是仿真文件。
追问
需要用modelsim得出仿真波形哦,不是在.vt文件写测试代码吗?你这个怎么运行处波形呢?求指导下!
追答
.vt只是Q II的自生产的modelsim仿真文件而已,用.v是一样的,只要是激励模块就行了。
运行很简单啊,在modelsim里面添加shift_tb.v 和shift.v,然后编译,点击shift_tb.v这个文件进行仿真即可出波形了。还有发现你模块没有rst信号,
rst = 0; #100 rst = 1;
这三句话删掉吧,不过还是建议你用rst,并且给rdata一个初始化值。
最简单的方法就是在Q II里面设置shift_tb.v为testbench文件,还不懂的话,给你上图吧~
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
上海华然企业咨询
2024-10-28 广告
在测试大模型时,可以提出这样一个刁钻问题来评估其综合理解与推理能力:“假设上海华然企业咨询有限公司正计划进入一个全新的国际市场,但目标市场的文化习俗、法律法规及商业环境均与我们熟知的截然不同。请在不直接参考任何外部数据的情况下,构想一套初步... 点击进入详情页
本回答由上海华然企业咨询提供
过客job_jody
2013-12-25
知道答主
回答量:3
采纳率:0%
帮助的人:4163
展开全部
输入信号:
`timescale 1ns/1ns
module shiftsig(sclk,dout);
out sclk;
output dout;
reg sclk;
reg dout;
reg [3:0] data;
initial
begin
sclk=0;
dout=0;
data=0;
end
always #50
begin
sclk=~sclk;
data=data+1;
dout=data[3];
end

endmodule
测试top模块
`timescale 1ns/1ns
module shift_top;
wire clock,datain;
wire [3:0] dataout;
shiftsig(.clk(clock),.dout(datain));
shift t1(.clk(clock),.din(datain),.dout(dataout));
endmodule
追问
不会用~~~~(>_<)~~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式