接触FPGA不久,新人求助。
这是我的1602程序。打红色的地方存在的时候,液晶不能初始化,但是引脚的电压是对的,即电压是0x38.删掉了才可以初始化,这是为什么呀、、
module LCD_DRIVER(sys_clk, rs, en, io_out);
input sys_clk;
output rs, en;
outputio_out;
wire en;
reg rs;
regio_out;
regbuffer;
reg lcd_clk;
regsys_counter;
reg en_sel;
regstate;
reglcd_counter;
regaction;
parameter Idel = 8'b0000_0000;
parameter START_DISMODE = 8'b0000_0001;
parameter CLOSE_DIS = 8'b0000_0010;
parameter CLR_DIS = 8'b0000_0100;
parameter CURSOR_MOVEMODE = 8'b0000_1000;
parameter CURSOR_DISMODE = 8'b0001_0000;
parameter WRITE_DATA = 8'b0010_0000;
parameter WRITE_COMMAND = 8'b0100_0000;
initial begin
action = START_DISMODE;
end
always@(posedge sys_clk)begin
sys_counter = sys_counter + 1;
if(sys_counter == 50_000)begin
sys_counter = 0;
end
end
always@(posedge sys_clk)begin
if(sys_counter<25_000)
lcd_clk = 1;
else
lcd_clk = 0;
end
always@(posedge lcd_clk)begin
case(state)
START_DISMODE:begin
rs <= 0;
io_out <= 8'h38;
en_sel <= 1;
state <= Idel;
end
Idel:begin
en_sel <= 0;
state <= action;
end
default: state <= action;
endcase
end
always@(posedge lcd_clk)begin
if(action!=Idel)
action<=Idel;
end
assign en = en_sel?lcd_clk:1'b0;
endmodule
撸主,我觉得你不应该一上来就用fpga来玩mcu应该玩的事情。 顶LS and 标题不合格! 头像Mm不错 楼主把FPGA用到MCU的场合去了,你不要一来就贴程序,没人会一句一句看你程序,你最好把问题描述成文字,这样我们好帮你找问题 zxq6 发表于 2013-1-23 21:01 static/image/common/back.gif
撸主,我觉得你不应该一上来就用fpga来玩mcu应该玩的事情。
师兄,该玩儿些什么呢?
我迷茫了 lj_swust 发表于 2013-1-24 00:08 static/image/common/back.gif
楼主把FPGA用到MCU的场合去了,你不要一来就贴程序,没人会一句一句看你程序,你最好把问题描述成文字,这 ...
额,我看那些用文字描述的贴子,后面的那些人都喊贴程序呀~~ Fourier00 发表于 2013-1-23 21:45 static/image/common/back.gif
头像Mm不错
这是我妹妹 jlhgold 发表于 2013-1-23 21:14 static/image/common/back.gif
顶LS and 标题不合格!
额,标题应该怎么写啊~
时间地点人物..?...O(∩_∩)O~ 各位大神,initial语句块,只在仿真的时候有用,实际跑板子的时候不用的吗?
为什么有时候我用initiall给某排管脚电压赋值是对的呢? FPGA和MCU不一样,你这程序就是MCU的思想。太多不规范的地方,有的if没有else,可能会产生锁存器,还有时钟满天飞。
你要首先了解什么是FPGA minchina 发表于 2013-1-24 11:41 static/image/common/back.gif
各位大神,initial语句块,只在仿真的时候有用,实际跑板子的时候不用的吗?
为什么有时候我用initiall给某 ...
initial语句块是不可综合的,不能生成实际电路。
FPGA作为一种系统级的芯片想当MCU玩也可以,灵活正是FPGA的特色。
不知道撸主用的谁家的芯片,用软核+通用外设IP+C语言1602驱动就和MCU驱动1602没有区别了.
感觉你写的太乱了,懒得看都 zhaoxin5002 发表于 2013-1-25 01:16 static/image/common/back.gif
感觉你写的太乱了,懒得看都
额,不好意思,大神,在下FPGA新手,而且注释不能写中文、 pocker5200 发表于 2013-1-24 23:31 static/image/common/back.gif
initial语句块是不可综合的,不能生成实际电路。
FPGA作为一种系统级的芯片想当MCU玩也可以,灵活正是FPG ...
但有时候我发现initial还是有起作用啊
reg init_sel;
initial begin
init_sel = 0;
end
我后面的语句是对init_sel信号进行判断,以执行设备初始化时序。
init_sel=0时,进行初始化。
我没有添加nitial_sel语句块时,无法进行正常的初始化。
我添加initial语句块,用init_sel = 1或者其他不为0的数,同样无法正常初始化。
只有用init_sel=0时,才能正常初始化、 那不是initial语句块起作用,而是综合器默认设置为0,我说的是实际下载到片子里运行的时候。
initial语句只有仿真的时候才用到,想用实际电路跑就得用可综合语句写。 pocker5200 发表于 2013-1-25 10:57 static/image/common/back.gif
那不是initial语句块起作用,而是综合器默认设置为0,我说的是实际下载到片子里运行的时候。
initial语句只 ...
我真是越来越糊涂了....
我也感觉initial应该不会被执行
但是我用1602来显示数值
initial begin
buffer = 8'h38; //buffer为写入1602的数据
end
我确实看到1602上显示8、
initial begin
buffer = 8'h37; //buffer为写入1602的数据
end
确确实实也看着变为7了、、 红字部分相当于,把action改成IDLE……先买一本国外的verilog教材看吧,基础打牢了这些就都不是问题了。 给你个忠告:用现成的代码,省下时间写点有意义的。 zhaoxin5002 发表于 2013-1-27 17:20 static/image/common/back.gif
给你个忠告:用现成的代码,省下时间写点有意义的。
写代码不是要多练嘛? minchina 发表于 2013-1-27 17:59 static/image/common/back.gif
写代码不是要多练嘛?
别当死学生,多看点别人代码 zhaoxin5002 发表于 2013-1-27 18:05 static/image/common/back.gif
别当死学生,多看点别人代码
我看啊,但是不自己写的话,始终锻炼不出来属于自己的思维。
别人的最多只能借鉴。 zhaoxin5002 发表于 2013-1-27 18:05 static/image/common/back.gif
别当死学生,多看点别人代码
不形成自己的思维、编程模式,永远都只是新手。多看别人的代码是必要的,我在一楼贴出的代码就是参考别人写的简单状态机(没写全,因为没有必要,问题不是出在那里,删减了)。
代码方面,C语言模式已经根深蒂固在我的思维里面。所以转换为硬件描述语言或许会花点时间。我前些时候已经写好了1602的驱动了,fpga的,自己的。
用自己的驱动,这就是我的风格。 minchina 发表于 2013-1-27 18:52 static/image/common/back.gif
不形成自己的思维、编程模式,永远都只是新手。多看别人的代码是必要的,我在一楼贴出的代码就是参考别人 ...
学习的目的不是跑来锻炼思维来了,最终目的还是把知识转为效益,毕竟我们只涉及应用层面。永远记得务实,像驱动1602这种能事还要形成思维也就能出现在课堂上,你看看当初教过你的教授们,一辈子的教学成果也打不进市场。有这时间还不如去论坛下几个完整的案例好好研究研究。
代码写不完,有成型的尽量用成型的,闭门造车出门不合辙,多看看大师级写的程序,另外如果不是很高端,执行效率都是次要的。 zhaoxin5002 发表于 2013-1-27 19:41 static/image/common/back.gif
学习的目的不是跑来锻炼思维来了,最终目的还是把知识转为效益,毕竟我们只涉及应用层面。永远记得务实, ...
什么叫做了一辈子的科研,也进不了市场哦?
很多教授年轻的时候都在市场混过,比如我的导师,以前开过公司,研究所,老了过后才来学校养老的。
既然你都知道是学习了,那就是为了锻炼思维!
做项目才是为了应用!
1602是很简单,但是FPGA不简单,我是了解FPGA的思维,不是了解1602的思维。
什么是有现成就用现成的哦,如果是这样的话,于振南为什么还要写znfat,明明都已经有fatfs了。
谁说要闭门造车?
是观之,在取之精华,融入自己的思维。我开发arm的时候,就算是做大项目,我也很少会移植ucos之类的。我多半都是自己写状态机,或者是用我自己写的os,执行效率还更高些。
案例我有的是,基础没打牢,还不敢吃太快。所谓走还没学会,就想学跑了。
这就像是C语言都还没学好,就想学ARM了。
出现看不懂的情况只会更多。 淡定,我只是觉得你在已成熟的东西上再耗时间优化不必要(除非精仪航天)。这个行业太深了,你永远学不完。如果你只相当程序员的话另当别论
有现成就用现成,最后的目的是应用,你也不可能精通 zhaoxin5002 发表于 2013-1-27 20:18 static/image/common/back.gif
淡定,我只是觉得你在已成熟的东西上再耗时间优化不必要(除非精仪航天)。这个行业太深了,你永远学不完。 ...
~我还只是个学生而已、有必要打牢基础、 minchina 发表于 2013-1-27 20:51 static/image/common/back.gif
~我还只是个学生而已、有必要打牢基础、
我也是自动化过来人,听我的吧务实些,其实你说的很多都是我以前的误区,当时我也不明白,别人怎么说也觉得他们不对,现在想想 跟你讲你也不会听。很多事儿必须亲身经历才肯相信,还得自己悟,毕业了你就全清楚了,看好你 建议还是先多看点资料吧,不急着上手,你还年轻,时间还很多! 楼主我没看懂,在没个lcd_clk的时候,action都被清成idel,那么在状态机里,同样的时钟控制,又如何进得了startdis呢?所有的Always都是并行的吧,那第一个lcd_clk来了,不管action初始化成什么样,都被清成idel,然后状态机是不是就进idel吧idel传给state,那就永远是idel了……请楼主明示,我也不太懂 LZ 把FPGA当MCU写了
页:
[1]