原创 软硬兼施

2008-12-18 20:41 6958 10 14 分类: 工业电子

软硬兼施<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


 


       呵呵,标题有点怪!不过要做个IT牛人达到这个境界那是必须的。我算不上牛人,但是我在努力。手上即将收尾一个小项目,又长了一点见识和经验,也发现最近忙的BLOG也无暇光顾,今晚心情不错,也上来总结总结最近的一点收获。


       做了一个640*480VGA驱动器,800*600的也刚试出来了,电阻一搭256色效果还凑活,预留了8位接口主要是针对MCU的,不过我觉得留给DSP一个16位接口也是可以像模像样的干活。这个驱动器是用的CPLD做的,就是助学小组里EPM240T100的大哥570T100,资源相对于如今动辄上万的FPGA而言那是小巫见大巫,不过小有小的用处,既然不是大项目何必浪费MONEY呢。一个SRAM作为实时显示的VGA图片的缓存,570主要干两个活,一边从SRAM取数据送给VGA显示,一边收数据到SRAM里做显示更新。硬件嘛,当然是并行工作。


       然后本来小陈的活,那家伙忙,MCU送数据部分的任务也落到了我的头上。这个小case不在话下,HDL我设计的当然我对它最熟悉,自己的硬件自己写软件控制那肯定最上手(顺便插一句,个人认为,自己设计硬件自己画PCB自己焊接自己调试自己编程这才是最过瘾的)。不过鄙人的单片机C只能说是一般般,虽然有点基础,也算是写过千行的代码。这次锻炼确实长进不少,在体会进步的同时更是体会到8位机的无奈,呵呵还好我的HDL一直在改进,把MCU的速度发挥到了极限(话说大了,呵呵,只不过让HDL做了MCU最难做的事而已)。


       虽然是小项目,但是还是学到了不少真本领,积攒了一些难能可贵的经验。路还很长,2008,我才刚起步,加油了……


“我愿全速漂移……”


 


 


 


 

PARTNER CONTENT

文章评论4条评论)

登录后参与讨论

用户432476 2012-11-5 23:21

各位。。。我只是看懂了组合循环的成因,但下面这个循环还是没能破,求看,谢了! module SimHex(Hhigh,Hlow,buffer,bufH,bufL); input Hhigh,Hlow; output reg[3:0] bufH,bufL; output reg[7:0] buffer; parameter f=4'b0000; parameter t=4'b0001; parameter HF=4'b1111; always @(Hhigh) bufH<=bufH+t; always @(Hlow) bufL<=bufL+t; always @(bufH or bufL) buffer<={bufH,bufL}; endmodule

用户1629256 2012-9-9 11:39

是,我也遇到过,组合逻辑出现cnt=cnt+1,功能仿真可以,时序仿真就不可以。 还发现一个情况是,在一个状态中 令a=1;到下一个状态时再令b=a; 这种情况貌似也不行

用户413476 2012-3-30 17:02

哎~~~~ 要是早看到这个 就不至于花那么多的时间了,,我也遇到过这种退补出那个状态的情况,要是不要else nstate = STA1;就能行了

用户1633069 2011-10-23 00:20

但是确实改成case(cstate)后,rtl视图和一段式一样。纠结。。

用户1633069 2011-10-19 21:05

楼上的,特权同学所说的延迟一个时钟指的是,检测到输入改变以后到cnt更新之间。 你既然说“而使用case(cstate)会在state改变之后的一个时钟周期更新cnt值”又说“另外如果将三段式中case(nstate)改成case(cstate)不仅不会出现您说所的相差一个周期的问题”这不是前后矛盾么?难道state先改变,然后state和cnt值再同时更新?恕我愚笨,看了1个小时也没看懂你的想法。求解释。。。难道是三个结构块之间阻塞非阻塞运行时序,的理解不同么?

用户1416368 2011-7-21 16:14

我觉得你的例子觉得也不恰当。如果你只想举例状态机的不同风格,就不应该将计数器糅合进来。因为计数器完全可以再用一个always描述。而状态机只生成它所需的cnt_en信号。当然我这可能会和你所理解的“几段式”状态机有所不同。虽然我也认为一个module中不是有三个always,就是三段式的状态机。

用户1416368 2011-7-21 16:06

不明白你的意思。你所说的造成一个时钟周期相差是由于你在三段式中用了case(nstate)而不是case(cstate)。使用case(nstate),会使得在采样到din为高同时改变state和cnt值,而使用case(cstate)会在state改变之后的一个时钟周期更新cnt值。请你参看Clifford E. Cummings的《Synthesizable Finite State Machine Design Techniques Using the New SystemVerilog 3.0 Enhancements》

ilove314_323192455 2011-7-21 15:45

哥,那就不是三段式了,综合工具已经告诉你那是一段式了。你需要弄明白三段式不是简单的分开的三段代码而已

用户1416368 2011-7-21 15:39

改成case(cstate),一段式和三段式的时序就一样了啊。我刚刚特别仿真了一下。

ilove314_323192455 2011-7-21 15:11

case(nstate)改成case(cstate)好像已经相差2个周期了
相关推荐阅读
特权ilove314 2016-06-30 21:16
例说FPGA连载6:FPGA开发所需的技能
例说FPGA连载6:FPGA开发所需的技能 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   前面的文字已经做了很多铺垫,相信读...
特权ilove314 2016-06-28 21:09
例说FPGA连载5:FPGA的优势与局限性
例说FPGA连载5:FPGA的优势与局限性 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   若要准确评估FPGA技术能否满足开...
特权ilove314 2016-06-28 21:05
例说FPGA连载5:FPGA的优势与局限性
例说FPGA连载5:FPGA的优势与局限性 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   若要准确评估FPGA技术能否满足开...
特权ilove314 2016-06-26 22:11
例说FPGA连载4:FPGA语言与厂商介绍
例说FPGA连载4:FPGA语言与厂商介绍 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   Verilog与VHDL 说到FP...
特权ilove314 2016-06-23 21:26
例说FPGA连载3:FPGA与其它主流芯片的比较
例说FPGA连载3:FPGA与其它主流芯片的比较 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   FPGA、ASIC和ASSP...
特权ilove314 2016-06-21 20:32
例说FPGA连载2:FPGA是什么
例说FPGA连载2:FPGA是什么 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   2015年伊始,Intel欲出资百亿美金收...
我要评论
4
10
关闭 站长推荐上一条 /3 下一条