集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
楼主: fpgaw

至芯科技【夏宇闻教授专栏】与你一起搞定FPGA设计!

[复制链接]
jessie9940509 发表于 2011-12-21 19:34:19 | 显示全部楼层
夏宇闻老师,各位前辈高人,FPGA 与DSP并口通信的问题
夏宇闻老师,各位前辈高人:
我正在做FPGA 与DSP并口通信,就是把FPGA 当做SRAM一样的读写,但是仿真不对,麻烦给看看代码,哪里的问题呢?


module CommandOperate(resetcommandmainprocess,
                                          DSP_DATA,DSP_ADDR,dsp_we,dsp_rd,cs_fpga,
                                          LED1);
input              resetcommandmainprocess;
input                 dsp_we,dsp_rd,cs_fpga;
inout[15:0]  DSP_DATA;
input[12:8]         DSP_ADDR;
output                LED1;//LED2;
/////////////////////////////////////////
reg[15:0]         Reg_LED1;//Reg_LED2;
reg[15:0]         rd_data;

        always @(posedge dsp_rd or posedge resetcommandmainprocess )
                begin
                        if (resetcommandmainprocess) begin
                                rd_data  <= 16'bzzzz_zzzz_zzzz_zzzz;
        
                        end
                        else if (( DSP_ADDR[12:8] == 5'b11000)&&(cs_fpga == 0))
                                 rd_data  <= Reg_LED1;
            else rd_data  <= 16'bzzzz_zzzz_zzzz_zzzz;

                end
assign DSP_DATA=rd_data ;               
///////////////////////////////////////////////
always @(posedge dsp_we or posedge resetcommandmainprocess)
                begin
                        if (resetcommandmainprocess)begin
                                 Reg_LED1<=16'h0000;
                                 end
                        else if(( DSP_ADDR[12:8] == 5'b11000)&&(cs_fpga == 0))
                                 Reg_LED1<= DSP_DATA;

                end
assign LED1=1'b1;//Reg_LED1[0];                                
endmodule
夏宇闻 该用户已被删除
夏宇闻 发表于 2011-12-22 01:04:52 | 显示全部楼层
本帖最后由 夏宇闻 于 2011-12-22 01:13 编辑
夏宇闻老师,各位前辈高人,FPGA 与DSP并口通信的问题
夏宇闻老师,各位前辈高人:
我正在做FPGA 与DSP并 ...
jessie9940509 发表于 2011-12-21 19:34


您应该认真读一遍我编写的书中关于三态总线的那一节。可综合模块不能给寄存器变量赋高阻值,只能给它赋1或0,来控制三态门的开关。您似乎对硬件缺乏了解,必须先搞清电路结构,才能写出行为正确又可综合的电路。看您的程序知道您没有认真读过数字系统设计的书,程序中没有硬件的构造、沿触发时钟状态机产生控制电平的概念,设计思想混乱。
jessie9940509 发表于 2011-12-22 08:19:13 | 显示全部楼层
本帖最后由 夏宇闻 于 2011-12-22 14:03 编辑

老师太好了。能跟您这样交流,我好高兴啊。我这就去研究去,及时跟您汇报。我以前是用单片机的,51 avr arm  dsp 都用过,但是都要使用C写,大同小异。这个FPGA 刚接触,思路完全不一样。我有很多编程想法,却不知道怎么实现。还得多练,多跟您学习啊。

夏老师答:有单片机基础对学习FPGA很有帮助。但编程习惯要改变,从顺序执行思考改为并行处理思考,从单纯的数据流思考改为数据流和控制流的思考。还要考虑存储单元的位置区域和读写方式,数据的同步和精度问题,运算的速度问题,设计思考更立体、更全面,因而水平更高,难度更大。
jessie9940509 发表于 2011-12-22 09:02:34 | 显示全部楼层
老师,按照你说的,我又去看了你的书,问题解决了。我买了8本FPGA的书,只有你的那本蓝书最全。适合于应用。哈哈。以后有问题还得请教老师。
老师还想请教你下,我看你写的例子里(那I2C),子程序都是用的任务来写的,但我看有的书上说任务不可以综合,还有的说任务不知道会综合处什么,我要做的东西也要有很多子程度,不知道可以用这个写不?
夏宇闻 该用户已被删除
夏宇闻 发表于 2011-12-22 13:51:30 | 显示全部楼层
老师,按照你说的,我又去看了你的书,问题解决了。我买了8本FPGA的书,只有你的那本蓝书最全。适合于应用。 ...
jessie9940509 发表于 2011-12-22 09:02

任务其实就是一段程序,只不过把这段程序起个名字罢了,如果程序是可综合的,用这段程序定义的任务也是可以综合的。
jessie9940509 发表于 2011-12-22 18:41:40 | 显示全部楼层
谢谢夏老师,我再去充充电
qq376784106 发表于 2011-12-23 19:08:13 | 显示全部楼层
本帖最后由 夏宇闻 于 2011-12-24 05:25 编辑

夏老师您好!我在用quartus自带的浮点乘法器的IP核遇到这样一个问题,就是乘法器的输入是两组数据对应相乘,每组数据64个点,为什么出来的数据总是末尾少四个呢,我设置的乘法器的数据运算时延是5,这个与数据运算时延有关系吗?谢谢老师!!!

夏老师答:浮点运算器运算是否正确与运算延时肯定有关系。您多试几组数据,用不同的时延设置试一下就知道了。
lijxok 发表于 2011-12-26 10:28:45 | 显示全部楼层
本帖最后由 夏宇闻 于 2011-12-26 19:51 编辑

夏老师您好!学校有个设计的题目是基于FPGA的图像采集系统,要求实现对单路视频的采集,大于等于25帧每秒的图像数据输出,这个题有什么比较简单的实现方法吗?就是没有什么多余的功能的。
谢谢老师!

夏老师答:图像的分辨度是多少?24位真彩色,还是其他形式的彩色或单色?图像如何保存、传送和显示…,还有许多许多问题必须明确才能动手设计。如摄象芯片采用什么型号?数据如何传递?串行、并行、还是LVDS信号?…如果老师出这样笼统的设计题,说明这个老师不懂设计,也不知道真要设计一个有使用价值的项目。
zombes 发表于 2011-12-31 17:17:50 | 显示全部楼层
本帖最后由 夏宇闻 于 2012-1-2 06:49 编辑

夏老师:新年快乐!
问题:状态机有时候会很复杂,尤其是分支跳转多的情况,需要使用多个嵌套的if进行判断,那么,这个嵌套的格式会对时序造成什么样的影响?其建立保持时间会不会不满足?如何解决这个问题呢?

夏老师答:在开始编写状态机前一定先认真分析需要多少状态,这些状态之间的层次关系,尽可能用多个简单的状态机,通过不同状态机之间的层次关系来表达复杂的状态逻辑,这样每个独立的FSM不会很大,综合后的电路也不复杂,但总的状态机可以十分复杂,但它是由小的多层次的多个同步时钟触发的FSM构成,由于综合器对同步时钟状态机的分析转换和优化技术已十分成熟,按样板编写的状态机综合后生成的电路是相当可靠的。编写FSM时,尽可能按标准样板编写,不要独出新裁。
风中的承诺 发表于 2012-1-17 17:18:39 | 显示全部楼层
本帖最后由 夏宇闻 于 2012-1-24 03:46 编辑

回复 225# 夏宇闻

夏老师:
         你好,最近我一直在调试TFT显示图片,图片数据量太大,FPGA内部ROM不够。不知道怎么存储,我想了两种方法,一种是把数据直接烧写到扩展FLASH,但不知道怎么烧写,数据文件是bin或是hex,mif格式。第二种是在nios2下实现,采用了外部的SDRAM,将数据直接放在数组中,但这种方法也没有调试过。请教夏老师,有什么好的方法?

夏老师答:

我建议采用外部SDRAM,再加上采用嵌入式处理器核,例如,Niosii或其他CPU核,我几年前编写的书,高级verilogSOPC实验教程,中有TFT图片显示的设计举例。您可以参考模仿。现在高版本的Quartus已经用Qsys来代替SopcBuild,新工具应该比原来的好用一些,也许有FLASH接口的宏模块,但我还没用过。您可以自己摸索,如果设有具体例子指导,把设计调试通过,直到满足客户要求是很费时间的,但也很锻炼人,可测试您解决问题的毅力。
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-11-16 07:32 , Processed in 0.065315 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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