jobwork 发表于 2011-7-11 16:36:34

弄傻了cpld+sram驱动vga

谁做过这个,不懂verilog,小马哥的那个verilog程序自然没看懂。
我用的是issi51216,理论上是够做800*600显存的
问题是stm32发来的x,y(800*600)被cpld接收,如何转成sram地址
想了一个笨办法就是x最大800得10位   y600也得10位,总共需20位,可是issi51216只有19位地址不够,
该怎么弄呀,

NJ8888 发表于 2011-7-11 16:46:34

addr=行*600+列地址

jobwork 发表于 2011-7-11 16:48:19

如果用单片机这个方法很好实现,但
cpld资源太少了这个乘法没法实现

jobwork 发表于 2011-7-11 17:13:02

小马哥,能说说吗

jobwork 发表于 2011-7-11 19:27:22

大侠,帮帮忙,讲讲哦

NJ8888 发表于 2011-7-11 20:06:50

*600=*(512+64+16+8) 数据左移9位+左移6位+左移4位+左移3位,在CPLD里,连移位都不用,直接跳过去连线做加法

jobwork 发表于 2011-7-11 21:28:50

嘿,谢谢楼上了,看来你很有经验哦

zgq800712 发表于 2011-7-11 21:35:26

楼主如果是800*480就是好办了,哈哈。
5楼的意思明白。

jobwork 发表于 2011-7-11 22:31:21

回复【7楼】zgq800712 SEED
楼主如果是800*480就是好办了,哈哈。
5楼的意思明白。
-----------------------------------------------------------------------

800*(512-32)??????????

NJ8888 发表于 2011-7-11 22:37:44

回复【8楼】jobwork无业游侠
回复【7楼】zgq800712 seed
楼主如果是800*480就是好办了,哈哈。
5楼的意思明白。
-----------------------------------------------------------------------
800*(512-32)??????????
-----------------------------------------------------------------------

不开窍:10+9=19根地址线

jobwork 发表于 2011-7-13 08:57:27

回复【5楼】888888888888
*600=*(512+64+16+8) 数据左移9位+左移6位+左移4位+左移3位,在cpld里,连移位都不用,直接跳过去连线做加法
-----------------------------------------------------------------------
工程用Y*(800)+X=Y*(512+256+32)+X
Y*(512+256+32)=Y*512+Y*256+Y*32=Y&"000000000"+Y&"00000000"+Y&"00000"
最后+x
还是没搞定,加法太多,资源不够了,这下看来彻底完蛋了,
还有哪位大侠支支招啊。

snoopyzz 发表于 2011-7-13 09:06:52

stm32 乘好了再发过来....

jobwork 发表于 2011-7-13 09:46:19

回复【11楼】snoopyzz
stm32 乘好了再发过来....
-----------------------------------------------------------------------

我最初就是这么做的,可是论坛里不是有用240做成的

gaoyukun 发表于 2011-7-17 13:28:55

嗯,看下·

aureole 发表于 2011-7-23 21:13:37

240资源够

chenming1989 发表于 2011-7-26 18:21:37

有点晕啊

vois9999 发表于 2011-7-27 15:09:31

学习中,SDRAM确实很难搞

Robbins 发表于 2014-4-10 18:25:19

mark,sdram可以移植terasic官网的,altera官网也有sdram控制器参考代码
页: [1]
查看完整版本: 弄傻了cpld+sram驱动vga