[FPGA开发] 一个。vo文件,帮忙写一个矩形波时钟信号

爱风流   2016-7-13 22:51 楼主

本人小白,希望大神帮忙改改,这个vo文件老是输出一条低电平线,希望改成矩形波的
// Verilog Test Bench template for design : top
//
// Simulation tool : ModelSim (Verilog)
//

`timescale 10 us/ 1 ps
module top_vlg_tst();
// constants                                          
// general purpose registers
reg eachvec;
// test vector input registers
reg handshake;
reg [0:127] key;
reg last;
reg top_clk;
reg [0:127] top_datain;
reg [0:1] top_opcode;
reg top_rst;
// wires                                               
wire top_data_complete;
wire [0:127]  top_dataout;
wire top_rk_complete;

// assign statements (if any)                          
top i1 (
// port map - connection between master ports and signals/registers   
        .handshake(handshake),
        .key(key),
        .last(last),
        .top_clk(top_clk),
        .top_data_complete(top_data_complete),
        .top_datain(top_datain),
        .top_dataout(top_dataout),
        .top_opcode(top_opcode),
        .top_rk_complete(top_rk_complete),
        .top_rst(top_rst)
);
initial                                                
begin                                                  
// code that executes only once                        
// insert code here --> begin                          

// --> end                                             
$display("Running testbench");                       
end                                                   
always                                                
// optional sensitivity list                           
// @(event1 or event2 or .... eventn)                  
begin                                                  
// code executes for every event on sensitivity list   
// insert code here --> begin                          

@eachvec;                                             
// --> end                                             
end                                                   
endmodule


回复评论 (14)

你要哪根线输出矩形波, 你在always 里面添加代码呀。
点赞  2016-7-14 09:56
引用: liwenz 发表于 2016-7-14 09:56
你要哪根线输出矩形波, 你在always 里面添加代码呀。

让top_clk输出矩形波,刚接触这个,不明白怎么加代码
点赞  2016-7-14 14:43
楼主,你好。
代码这样改,你看看是不是你要的。
波形也跑了,如图。
     initial                                                
     begin   
      top_clk = 0;                                                                                         
     $display("Running testbench");                       
     end   

    always #(100 / 2) top_clk = ~top_clk;

    initial
    begin  
        eachvec = 0;      
        while (1) begin
            repeat(10) @(posedge top_clk) eachvec = 0;                                                
            repeat(10) @(posedge top_clk) eachvec = 1;
        end                                       
    end      
  • tb pulse gen.png
MicroPython中文社区https://micropython.org.cn/forum/  
点赞  2016-7-14 20:55
有空看看这个吧,yupc123 写的
[FPGA开发] 这是我数据采集项目里的一个防真程序(HDL)给大家学习用
https://bbs.eeworld.com.cn/thread-494227-1-2.html
MicroPython中文社区https://micropython.org.cn/forum/  
点赞  2016-7-14 21:00
引用: 5525 发表于 2016-7-14 20:55
楼主,你好。
代码这样改,你看看是不是你要的。
波形也跑了,如图。
     initial                    ...

虽然没有成功,可能是我操作的原因吧。谢谢5525的帮助!我做的是一个加密算法的仿真,上面那个vt(打错打成vo了)文件是用start test bench template writer生成的,算法编译没问题,就是仿真时加密部分启动不了。我把仿真图片和代码(代码还是比较有用的)发上来,希望你帮我仿真一下。另外本人真诚希望与你进一步交流,qq2206638817
  • QQ图片20160718211354.png

    sm4v.zip (2016-7-18 21:17 上传)

    10.59 KB, 下载次数: 1

点赞  2016-7-18 21:18
楼主,你好

你那个tb里面,好多 i1 要用的信号 给有做出来,
简单改成下面这样,波形跑出来,红线是少了。

begin   
top_rst = 0;
last = 0;
key = 0;
top_datain = 0;
top_opcode = 0;
handshake = 0;

top_clk = 0;                                               
// code that executes only once                        
// insert code here --> begin                          
repeat(5) @(posedge top_clk)
top_rst = 1;
// --> end                                             
$display("Running testbench");                       
end
  • sm4 sim.png
MicroPython中文社区https://micropython.org.cn/forum/  
点赞  2016-7-18 21:38
真不好意思,十年不用QQ啦。

上面的修改,才只是仿真的 开始而已

后面楼主 要做的事情,就是 弄清  需要 测试什么功能,或者是要输入什么 样的信号给 i1.
在根据这个 需要 在 top_vlg_tstr 里面做出来。
这个需要如果很多,也就是通常说的测试向量 很多的话,不急,先做一个。

MicroPython中文社区https://micropython.org.cn/forum/  
点赞  2016-7-18 21:43
非常感谢5525!!!我需要测试的是输入一串数,看加密后的结果。效果如图(这是一个aes加密算法的,算法现在可以编译,仿真同样有问题),另外,不知道5525您有什么方便的联系方式,真诚渴望您的指导!
  • aes.png

    aes.zip (2016-7-19 19:56 上传)

    10.07 KB, 下载次数: 0

点赞  2016-7-19 19:59
楼主,你不要担心,下面有种办法 虽然土,
但是在开发里面用的最多,为什么,效率高!!

@(posedge top_clk) A = 10; B = 20; // repeat(5) @(posedge top_clk)
@(posedge top_clk) A = 11; B = 21; // repeat(5) @(posedge top_clk)
@(posedge top_clk) A = 12; B = 22;  repeat(4`) @(posedge top_clk)
@(posedge top_clk) A = 13; B = 23; // repeat(5) @(posedge top_clk)
@(posedge top_clk) A = 14; B = 24; // repeat(5) @(posedge top_clk)
MicroPython中文社区https://micropython.org.cn/forum/  
点赞  2016-7-19 21:39
真的,用这个,效率会很高,
根据这个,你可以生成任意波形。
这样,不会有烦人的测试语法纠缠你,你可以迅速的投入到有意义的工作中去

等你,项目到了稳定的阶段,或者你做下一个项目,
觉得这个简单的写法不能提现,你的水平,就可以换文件读写生成波形,用task啦,等等
MicroPython中文社区https://micropython.org.cn/forum/  
点赞  2016-7-19 21:41
输入输出怎么做个串口啊,输入输出挺多的,不知道有没有做串口方面的教程
点赞  2016-7-20 18:07
串口?
A.是要用标准的UART吗,来输入输出吗
B.还是要做和你程序对应的,自己定义的串行输入输出

是哪种啊
MicroPython中文社区https://micropython.org.cn/forum/  
点赞  2016-7-20 19:26
引用: 5525 发表于 2016-7-20 19:26
串口?
A.是要用标准的UART吗,来输入输出吗
B.还是要做和你程序对应的,自己定义的串行输入输出

是 ...

b自己定义的串行输入输出
点赞  2016-7-20 20:01
你自己定义的这个格式,参照下SPI,I2C,UART后自己弄应该可以办到。
另外写testbench的话,就用上面那个简单好使的就行
MicroPython中文社区https://micropython.org.cn/forum/  
点赞  2016-7-20 20:33
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复