verilog 闪灯程序 始终不出来,cpld高手们帮帮忙看一下
以前都是拿cpld做扩展IO的并没有深入去领会,突然想试试编点什么玩,总是要从闪灯先开始的咯结果没弄出来。。。我用的是EPM240的片子
外部CLK 50M的有源直接接的
程序如下:
module T3(clk,out);
input clk;
output out;
reg ddd;
regout;
always @(posedge clk) begin
if (ddd==50000000) ddd<=0;
else ddd<=ddd+1;
if (ddd==0) out<=~out;
end
endmodule
想要的效果是1s一亮1s一暗。。。。究竟错在哪里了。。。谢谢各位了 看看是不是50000000整数被当成有符号数了,可以用定长的数值表示来替换一下 回复【1楼】vvvccc123
看看是不是50000000整数被当成有符号数了,可以用定长的数值表示来替换一下
-----------------------------------------------------------------------
这样改吗?
module T3(clk,out);
input clk;
output out;
reg ddd;
regout;
always @(posedge clk) begin
if (ddd=='h2faf080) ddd<=0; //2faf080=50000000
else ddd<=ddd+1;
if (ddd==0) out<=~out;
end
endmodule
诶。。论坛里还是玩cpld的少啊。。。噶久就楼上一个回答,谢谢你啦。。。我在改改
如果可以的话请您也帮忙写写看吧。。。总感觉怪怪的。。 仿真了么? module T3
(clk,
rst_n,
out
);
parameterDLY = 1;
input clk;
output out;
reg ddd;
regout;
always @(posedge clk or negedge rst_n)
begin
if(rst_n == 1'b0)
ddd <= 26'd0;
else if(ddd >= 26'd50000000)
ddd <= #DLY 26'd0;
else
ddd <= #DLY ddd + 26'd1;
end
always @(posedge clk or negedge rst_n)
begin
if(rst_n == 1'b0)
out <= 1'b0;
else if(|ddd == 1'b0)
out <= #DLY ~out;
else ;
end
endmodule LZ 一看就是湖南老乡啊,搞国久还冒得人肥啊 你先加在判断 【6楼】 msdy
为啥不能判断后加? lz 看
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=869468&bbs_page_no=9&bbs_id=1029 module T3(clk,out,rst_n);
input clk,rst_n;
output out;
reg ddd;
regout;
always @(posedge clk or rst_n)
begin
if(!rst_n)
begin
ddd<=26'd0;
out <= 1'b0;
end
else
begin
if (ddd==26'd50000000)
begin
ddd<=0;
out<=!out;
end
else
begin
ddd<=ddd+1;
end
end
end
endmodule
页:
[1]