搜索
bottom↓
回复: 19

ep4sgx530板驱动LCD 1024X600 原理图,测试程序,接线图 资料

[复制链接]

出0入25汤圆

发表于 2015-9-27 18:12:23 | 显示全部楼层 |阅读模式
本帖最后由 hxl_led 于 2015-9-27 22:02 编辑

这是ep4sgx530 FPGA 开发板 驱动LCD (1024X600 )所以资料汇集,包括verilog 测试程序,接口板原理图

FPGA板与接口板接线图示,LCD屏的pdf 等资料

接口板可以外接5V,见原理图,现用板载3.3V供电也可以,只是亮度调低了点,接口板上的R35 1.2 欧在5V供电时应焊上,它是采样电阻

接口板都经过测试,但没有老化,如不显示,可测JS1两端电压为15V--16V,如没有,则检查mp3202 其他的不用怀疑

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入4汤圆

发表于 2015-9-27 20:11:57 | 显示全部楼层
666666666666666

出0入0汤圆

发表于 2015-9-27 21:43:24 | 显示全部楼层
犀利的淡淡的淡淡的淡淡的淡淡的

出0入0汤圆

发表于 2015-9-29 23:52:55 | 显示全部楼层
楼主强人,收藏备用

出90入4汤圆

发表于 2015-9-30 08:49:21 | 显示全部楼层
这个FPGA不便宜吧,看起来高大上啊

出0入42汤圆

发表于 2015-10-6 20:25:36 | 显示全部楼层
多谢楼主

出0入0汤圆

发表于 2015-10-6 20:37:56 | 显示全部楼层
高大帅!

出0入0汤圆

发表于 2015-10-8 16:09:08 | 显示全部楼层
赞!!!!!!!!

出0入0汤圆

发表于 2015-10-12 21:16:29 | 显示全部楼层
正在调试中

出0入0汤圆

发表于 2015-10-18 18:44:16 | 显示全部楼层
楼主好:看到你的作品很票亮。
我也在调试FPGA,但有一个困惑,在写FPGA与MCU通讯模块时,发现用的logic element剧激加大;如果没有加下面这段代码时,总用的逻辑门在1100个,加上下面这段代码时突然跃到5000多个(IC不支持这么多),试着逐一屏蔽参数数量(总有6个参数),发现每个参数约占近800个逻辑门。很疑惑会不会是我的方法不对,请帮忙看看,谢谢了!

//------------------------------------------------

reg Pa1_f1, Pa1_f2;        //接收参数1标志位,完成2次写动作
reg Pa2_f1, Pa2_f2;        //接收参数2标志位,完成2次写动作
reg Pa3_f1, Pa3_f2;        //接收参数3标志位,完成2次写动作
reg Pa4_f1, Pa4_f2;        //接收参数4标志位,完成2次写动作
reg Pa5_f1, Pa5_f2;        //接收参数5标志位,完成2次写动作
reg Pa6_f1, Pa6_f2;        //接收参数6标志位,完成2次写动作

reg[15:0] Pa1_r; //MCU接收到的参数1,异步写入到控制模块
reg[15:0] Pa2_r; //MCU接收到的参数2,异步写入到控制模块
reg[15:0] Pa3_r; //MCU接收到的参数3,异步写入到控制模块
reg[15:0] Pa4_r; //MCU接收到的参数4,异步写入到控制模块
reg[15:0] Pa5_r; //MCU接收到的参数5,异步写入控制模块
reg[15:0] Pa6_r; //MCU接收到的参数6,异步写入到控制模块

always @(posedge clk or negedge rst_n) begin
        if(!rst_n) begin
                Pa1_f1 <= 1'b0;
                Pa2_f2 <= 1'b0;
                Pa3_f1 <= 1'b0;
                Pa4_f2 <= 1'b0;
                Pa5_f1 <= 1'b0;
                Pa6_f2 <= 1'b0;
               
                Pa1_r <= 16'd0;
                Pa2_r <= 16'd0;
                Pa3_r <= 16'd0;
                Pa4_r <= 16'd0;
                Pa5_r <= 16'd0;
                Pa6_r <= 16'd0;
        end

        else if(pos_wr & mcu_wr_reg) begin //判断是不是写指令
                if(mcu_reg_r == 8'h41) begin //如果MCU接收到的指令0X41,则紧跟接收参数1
                        Pa1_f1 <= 1'b1;启动此指令下面的参数接收标志
                end
                else if(mcu_reg_r == 8'h42) begin //如果MCU接收到的指令0X42,则紧跟接收参数1
                        Pa2_f1 <= 1'b1;启动此指令下面的参数接收标志
                end
                else if(mcu_reg_r == 8'h43) begin //如果MCU接收到的指令0X43,则紧跟接收参数1
                        Pa3_f1 <= 1'b1;启动此指令下面的参数接收标志
                end
                else if(mcu_reg_r == 8'h44) begin //如果MCU接收到的指令0X44,则紧跟接收参数1
                        Pa4_f1 <= 1'b1;启动此指令下面的参数接收标志
                end
                else if(mcu_reg_r == 8'h45) begin //如果MCU接收到的指令0X45,则紧跟接收参数1
                        Pa5_f1 <= 1'b1;启动此指令下面的参数接收标志
                end
                else if(mcu_reg_r == 8'h46) begin //如果MCU接收到的指令0X46,则紧跟接收参数1
                        Pa6_f1 <= 1'b1;启动此指令下面的参数接收标志
                end
        end

        else if(pos_wr & !mcu_wr_reg) begin //判断是不是写参数,根据标志来确认参数位置
                if(Pa1_f1 == 1'b1) begin
                        Pa1_f1 <= 1'b0;
                        Pa1_f2 <= 1'b1;
                        Pa1_r[15:8] <= mcu_db_r;//MCU接收到的8位数据放在参数1高8位
                end
                else if(Pa1_f2 == 1'b1) begin
                        Pa1_f2 <= 1'b0;
                        Pa1_r[7:0] <= mcu_db_r;//MCU接收到的8位数据放在参数1低8位
                end

                else if(Pa2_f1 == 1'b1) begin
                        Pa2_f1 <= 1'b0;
                        Pa2_f2 <= 1'b1;
                        Pa2_r[15:8] <= mcu_db_r;//MCU接收到的8位数据放在参数2高8位
                end
                else if(Pa2_f2 == 1'b1) begin
                        Pa2_f2 <= 1'b0;
                        Pa2_r[7:0] <= mcu_db_r;//MCU接收到的8位数据放在参数2低8位
                end
                else if(Pa3_f1 == 1'b1) begin
                        Pa3_f1 <= 1'b0;
                        Pa3_f2 <= 1'b1;
                        Pa3_r[15:8] <= mcu_db_r;//MCU接收到的8位数据放在参数3高8位
                end
                else if(Pa3_f2 == 1'b1) begin
                        Pa3_f2 <= 1'b0;
                        Pa3_r[7:0] <= mcu_db_r;//MCU接收到的8位数据放在参数3低8位
                end
                else if(Pa4_f1 == 1'b1) begin
                        Pa4_f1 <= 1'b0;
                        Pa4_f2 <= 1'b1;
                        Pa4_r[15:8] <= mcu_db_r;//MCU接收到的8位数据放在参数4高8位
                end
                else if(Pa4_f2 == 1'b1) begin
                        Pa4_f2 <= 1'b0;
                        Pa4_r[7:0] <= mcu_db_r;//MCU接收到的8位数据放在参数4低8位
                end
                else if(Pa5_f1 == 1'b1) begin
                        Pa5_f1 <= 1'b0;
                        Pa5_f2 <= 1'b1;
                        Pa5_r[15:8] <= mcu_db_r;//MCU接收到的8位数据放在参数5高8位
                end
                else if(Pa5_f2 == 1'b1) begin
                        Pa5_f2 <= 1'b0;
                        Pa5_r[7:0] <= mcu_db_r;//MCU接收到的8位数据放在参数5低8位
                end
                else if(Pa6_f1 == 1'b1) begin
                        Pa6_f1 <= 1'b0;
                        Pa6_f2 <= 1'b1;
                        Pa6_r[15:8] <= mcu_db_r;//MCU接收到的8位数据放在参数6高8位
                end
                else if(Pa6_f2 == 1'b1) begin
                        Pa6_f2 <= 1'b0;
                        Pa6_r[7:0] <= mcu_db_r;//MCU接收到的8位数据放在参数6低8位
                end
        end
end

assign Pa1 = Pa1_r; //输出到模块接口
assign Pa2 = Pa2_r;
assign Pa3 = Pa3_r;
assign Pa4 = Pa4_r;
assign Pa5 = Pa5_r;
assign Pa6 = Pa6_r;

出0入4汤圆

发表于 2015-10-18 20:13:38 来自手机 | 显示全部楼层
闹了半天,原来是一直仰慕的胡工。哈哈

出0入0汤圆

发表于 2015-10-19 09:34:44 | 显示全部楼层
xlht 发表于 2015-10-18 18:44
楼主好:看到你的作品很票亮。
我也在调试FPGA,但有一个困惑,在写FPGA与MCU通讯模块时,发现用的logic el ...

把if换成case会不会好点?

出0入0汤圆

发表于 2015-10-20 16:11:12 | 显示全部楼层
tjuspring001 发表于 2015-10-19 09:34
把if换成case会不会好点?

谢谢提示!我试试。

出0入0汤圆

发表于 2015-10-20 22:00:45 | 显示全部楼层
tjuspring001 发表于 2015-10-19 09:34
把if换成case会不会好点?

试了,效果相同,没有变化,可能还是变量寄存器占用逻辑单元,暂无解法

出0入25汤圆

 楼主| 发表于 2015-10-20 22:52:22 | 显示全部楼层
本帖最后由 hxl_led 于 2015-10-20 23:01 编辑
xlht 发表于 2015-10-18 18:44
楼主好:看到你的作品很票亮。
我也在调试FPGA,但有一个困惑,在写FPGA与MCU通讯模块时,发现用的logic el ...


回复晚了,见谅,我觉得应该是多次条件判断而生成了大量的多路选择器

您可以看一下RTL视图,  建议换种写法  ----- 只是提供的一个思路(不一定对啊)

//   else if(pos_wr & !mcu_wr_reg) begin //判断是不是写参数,根据标志来确认参数位置
//                if(Pa1_f1 == 1'b1) begin
//                        Pa1_f1 <= 1'b0;
//                        Pa1_f2 <= 1'b1;

assing  Pa1_f2 =  (  pos_wr & !mcu_wr_reg &  Pa1_f1 );   
assign  Pa1_f1  =   !Pa1_f2 ;            

出0入0汤圆

发表于 2015-10-21 00:20:51 | 显示全部楼层
xlht 发表于 2015-10-18 18:44
楼主好:看到你的作品很票亮。
我也在调试FPGA,但有一个困惑,在写FPGA与MCU通讯模块时,发现用的logic el ...

你试着把你的if条件语句改为case语句试试,估计会少的

出0入0汤圆

发表于 2015-10-26 20:23:22 | 显示全部楼层
谢谢上面两位的指导!

出0入0汤圆

发表于 2015-12-20 16:59:36 | 显示全部楼层
非常好的板子,历经接近2年终于面试

出0入0汤圆

发表于 2019-9-18 16:16:42 | 显示全部楼层
高大帅!

出0入0汤圆

发表于 2019-9-18 19:17:18 来自手机 | 显示全部楼层
Mark Mark  
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 06:40

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表