qjs412_51 发表于 2012-2-4 15:20:13

Verilog点灯失败

用的是actel的FPGA
http://cache.amobbs.com/bbs_upload782111/files_51/ourdev_715998O39DPG.jpg
(原文件名:未命名.jpg)

上面一段代码中,软件提示clk没有被使用到,导致,引脚分配时,没有clk
请高手赐教,问题在呢

sdu1028 发表于 2012-2-4 15:27:27

估计是被综合软件优化掉了,你再加一个输入,比如叫SW1,让LED1 <= SW1 ;就不会优化了

qjs412_51 发表于 2012-2-4 15:28:35

回复【1楼】sdu1028
-----------------------------------------------------------------------

好的,感谢,试试看

qjs412_51 发表于 2012-2-4 15:34:30

回复【1楼】sdu1028
-----------------------------------------------------------------------

好了,谢谢,

另外,我有一个问题,选单片机时除了功能,速度要求外,主要是看单片机的RAM,ROM或flash的大小

那么选择FPGA时,我们一般都注重那些参数

womenhome 发表于 2012-2-4 15:50:26

如果单纯点灯的话,干脆 assign led1 = 1'b0;

womenhome 发表于 2012-2-4 15:53:05

回复【3楼】qjs412_51
回复【1楼】sdu1028
-----------------------------------------------------------------------
好了,谢谢,
另外,我有一个问题,选单片机时除了功能,速度要求外,主要是看单片机的ram,rom或flash的大小
那么选择fpga时,我们一般都注重那些参数
-----------------------------------------------------------------------


里面有多少逻辑资源, 多少PIN,多少RAM啥的。

我也是新手,不是很懂。

qjs412_51 发表于 2012-2-4 16:05:01

回复【5楼】womenhome
-----------------------------------------------------------------------

呵呵。。。谢谢


如果采用这个写法的话assign led1 = 1'b0;
moduleLED   (Key,clk,LED1);

    inputclk,Key;
    output reg LED1;
    always@ (posedge clk)   
            begin
                  assign    LED1 = 1'b0;
                end
endmodule
会报错
好像定义为output的直接赋值常数,不是很懂

womenhome 发表于 2012-2-4 16:10:50

REG 型 不能用 assign.

你改成 output wire led1,应该就可以了。

而且压根不用 always 语句。

module led (led1);

output led1;
wire led1;

assign led1 = 1'b0;

endmodule

qjs412_51 发表于 2012-2-4 16:22:01

试过了,没有问题
感觉自学FPGA和自学单片机比起来难多了
-_-!!!

zd911 发表于 2012-2-5 15:17:44

回复【8楼】qjs412_51
-----------------------------------------------------------------------
学FPGA是自己造寄存器,而学单片机是用寄存器。当然感觉不一样啦~~~~

redcore 发表于 2012-2-5 16:16:49

两种方法都可以:
1.
reg led;
always @ (*) led <= 1'b1;

2.
wire led;
assign led = 1'b1;

这两种方法生成的电路是完全一样的。
页: [1]
查看完整版本: Verilog点灯失败