[FPGA] 分享FPGA经验(连载)

[复制链接]
31614|164
沧海一笑 发表于 2014-4-11 14:08 | 显示全部楼层
这个好,必须支持.
fwfjndx 发表于 2014-4-13 11:38 | 显示全部楼层
楼主,你做IIC总线读取PCF8563时读取字节有没有出错过?我的老是显示00,不知道为什么
188598686 发表于 2014-4-14 15:19 | 显示全部楼层
建议重新开贴详细系统的讲讲,这样让学习者效率降低了不少
lvyunhua 发表于 2014-4-15 12:17 | 显示全部楼层
谢谢楼主分享!
 楼主| andous 发表于 2014-4-16 23:29 | 显示全部楼层
fwfjndx 发表于 2014-4-13 11:38
楼主,你做IIC总线读取PCF8563时读取字节有没有出错过?我的老是显示00,不知道为什么 ...

那你已经成功了,老显示FF说明,说明你的时序不对,I2C总线是高电平,如果显示00说明你读没问题,是反馈的数据
 楼主| andous 发表于 2014-4-16 23:30 | 显示全部楼层
188598686 发表于 2014-4-14 15:19
建议重新开贴详细系统的讲讲,这样让学习者效率降低了不少

我也想系统的讲啊,可惜网站不给我资金和技术支持啊,呵呵,以后我要做讲师了,可以系统的给大家讲讲
 楼主| andous 发表于 2014-4-16 23:30 | 显示全部楼层
fwfjndx 发表于 2014-4-13 11:38
楼主,你做IIC总线读取PCF8563时读取字节有没有出错过?我的老是显示00,不知道为什么 ...

也可以试着看下上拉电阻是否正确
 楼主| andous 发表于 2014-4-16 23:31 | 显示全部楼层
今天调试了一天,感觉FPGA不是最困难的,是要时序对就可以了,最难得是和外部驱动芯片联调,各种头大的问题
zwp0822 发表于 2014-4-29 17:33 | 显示全部楼层
黑色幽默在4系 发表于 2014-5-15 21:44 | 显示全部楼层
路过学习。。。
helloword2010 发表于 2014-5-16 23:44 | 显示全部楼层
楼主,请教下,小弟目前有些工作需要在验证芯片的某些功能,比如串口,SPI 通讯。代码基本是用C编写的,但对其中的过程不甚明了,可否抽空解释下,在FPGA调试芯片的某些功能具体是个怎么回事?
潍坊孩子 发表于 2014-5-19 10:26 | 显示全部楼层
楼主:写了一个vhdl代码,在自带仿真软件的quartusii8.0上仿真结果完全正确,在modelsim中不出结果,tb也完全正确,代码里该初始化的也初始化了,能指教一下吗,或是给个联系方式发代码看一下您
ococ 发表于 2014-5-19 12:50 | 显示全部楼层
潍坊孩子 发表于 2014-5-19 10:26
楼主:写了一个vhdl代码,在自带仿真软件的quartusii8.0上仿真结果完全正确,在modelsim中不出结果,tb也完 ...

复位和时钟都正确吗?
模块里面有用到IP吗?用到了的话需要添加IP库到modelsim才能仿真的。
ap0408133 发表于 2014-5-19 16:07 | 显示全部楼层
很好,过来听课了
潍坊孩子 发表于 2014-5-19 18:35 | 显示全部楼层
ococ 发表于 2014-5-19 12:50
复位和时钟都正确吗?
模块里面有用到IP吗?用到了的话需要添加IP库到modelsim才能仿真的。 ...

输入都是正确的,因为在modelsim中可以正确的看到输入信号,没有用到IP,总共就几行代码,可以传您代码指教一下吗
ococ 发表于 2014-5-19 18:46 | 显示全部楼层
潍坊孩子 发表于 2014-5-19 18:35
输入都是正确的,因为在modelsim中可以正确的看到输入信号,没有用到IP,总共就几行代码,可以传您代码指 ...

发上来看看
ococ 发表于 2014-5-19 18:47 | 显示全部楼层
潍坊孩子 发表于 2014-5-19 18:35
输入都是正确的,因为在modelsim中可以正确的看到输入信号,没有用到IP,总共就几行代码,可以传您代码指 ...

贴个你modelsim仿真的图
潍坊孩子 发表于 2014-5-19 19:00 | 显示全部楼层
ococ 发表于 2014-5-19 18:47
贴个你modelsim仿真的图

LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;
entity addr_a is
port( clk,load:in std_logic;
        m:in std_logic_vector(7 downto 0);
                   addr:buffer std_logic_vector(23 downto 0)
                  
      );
  end;      
        
ARCHITECTURE  one of addr_a is
   
   
       signal dlta:std_logic_vector(23 downto 0);
       signal sum:std_logic_vector(23 downto 0):=(others=>'0');
      
begin  
        process(load,m)
         begin
           if load'event and load='1' then  
            dlta(7 downto 0)<=m;
           end if;
           dlta(23 downto 8) <=(others=>'0');
         end process;
               
         sum <= dlta + sum;
                       
         process(clk,sum)
          begin
           if clk'event and clk='1' then  
            addr<=sum;
           end if;
         end process;
                  
    end one;
         
            
        
      
潍坊孩子 发表于 2014-5-19 19:06 | 显示全部楼层
潍坊孩子 发表于 2014-5-19 19:00
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;



本帖子中包含更多资源

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

×
ococ 发表于 2014-5-19 19:12 | 显示全部楼层
本帖最后由 ococ 于 2014-5-19 19:14 编辑

sum <= dlta + sum; ----这样描述不对的。写到进程里面去,在时钟上升沿进行这个操作试试。
或者去掉这句,把addr<=sum; 改成addr<=dlta+addr;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部