微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 求助 啊

求助 啊

时间:10-02 整理:3721RD 点击:
`timescale 1ms /100psmodule trafficlight(clock);        output clock;        reg clock;//        reg red,yellow,green,clock;//        parameter red_sec=500;//        parameter yellow_sec=30;//        parameter green_sec=700;//        parameter ON=1,OFF=0;        always                begin                        #20 clock = 1;                        #20 clock = 0;                end endmodule程序如上,为什么产生不了方波啊,我是小白啊。

RTL?还是仿真?感觉很奇怪的。
如果rtl不准使用#20这种概念哦。

always @(posedge clk or posedge rst)begin
     if (rst== 1‘b1) outclock <= 1’b0;
   else outclock <= ~outclock;
end

我猜是你仿真时间不够长。
run 1000ms看看。

你这能compile成功么,clock重复定义了;
而且如果是写tb,也没用必要把它作为output;
写的有点乱!


我都仿真1s了啊,还是没反应。


是不是在软件编译和仿真的时候因为始终输入口没有信号才导致不能用#20时延啊。


clock没有重复定义,我把它注释了啊。



    这样吧,你先别产生方波了,你先试试工具有没有工作,直接赋值试试
initial begin
  clk <= 1'b0;
#5 clk <= 1'b1;
end
对了把`timescale 也改改试试,这个有时候也会有影响吧

回复:仿真时时间精度和最小单位时间不要随便写,会影响仿真时间的。建议修改为“`timescale 1ns /100ps”

直接用modelsim跑了一下这段代码
reg clock;
always               
    begin                       
        #20 clock = 1;
        #20 clock = 0;
    end
可以生成方波

仿真的始终产生要在testbench里面写,不要在代码里写产生时钟,引个端口进来就ok啦
产生始终的方式(我自己的)
initial   clk = 1‘b1;
always #20 clk=~clk;
用上面的这两句就ok啦,亲


是啊,在modelsim中可以生成,在quartus中报错,并且不能生成方波。

我自己来回来吧,这个语句是不可综合的。用单纯的仿真时可以实现的,但是一旦综合就不行,硬件完成不了这样的电路。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top