打印
[FPGA]

分享FPGA经验(连载)

[复制链接]
楼主: andous
手机看帖
扫描二维码
随时随地手机跟帖
81
推荐写法:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;
entity addr_a is
port( clk :in  std_logic;
      load:in  std_logic;
      m   :in  std_logic_vector(7 downto 0);
      addr:out std_logic_vector(23 downto 0)
                  
      );
  end;      
        
ARCHITECTURE  one of addr_a is
   
   
       signal dlta:std_logic_vector(23 downto 0):=(others=>'0');
       signal sum:std_logic_vector(23 downto 0):=(others=>'0');
      
       signal load_d1: std_logic;
       signal load_d2: std_logic;
       signal load_up: std_logic;
      
begin  

        process(clk)
         begin
           if rising_edge(clk) then  
               load_d1<=load;
               load_d2<=load_d1;
           end if;            
         end process;
       load_up<=load_d1 and (not load_d2);  


        process(clk)
         begin
          if rising_edge(clk) then
            if load_up='1' then  
              dlta(7 downto 0)<=m;
              dlta(23 downto 8) <=(others=>'0');
             end if;
           end if;           
         end process;
               
                        
         process(clk)
          begin
           if rising_edge(clk) then
              sum <= dlta + sum;
           end if;
         end process;


    addr<=sum;                  

end one;

使用特权

评论回复
82
ococ| | 2014-5-19 19:43 | 只看该作者
潍坊孩子 发表于 2014-5-19 19:06

我修改了下代码你可以试试。

使用特权

评论回复
83
潍坊孩子| | 2014-5-19 19:55 | 只看该作者
ococ 发表于 2014-5-19 19:27
推荐写法:

您好,您的代码我也试过了,addr还是没有变化,只有一个值0

使用特权

评论回复
84
潍坊孩子| | 2014-5-19 20:05 | 只看该作者
ococ 发表于 2014-5-19 19:43
我修改了下代码你可以试试。

我想知道为什么我的代码中sum<=dlta+sum;这一句描述不对,跟addr<=sum性质不一样吗,而且为什么在quartus自带仿真软件的版本中仿真结果是正确的

使用特权

评论回复
85
ococ| | 2014-5-19 20:25 | 只看该作者
潍坊孩子 发表于 2014-5-19 20:05
我想知道为什么我的代码中sum

C:\Users\jf_wang\Desktop\wave.bmp

wave.bmp (540.57 KB )

wave.bmp

使用特权

评论回复
86
ococ| | 2014-5-19 20:32 | 只看该作者
潍坊孩子 发表于 2014-5-19 20:05
我想知道为什么我的代码中sum

我可以仿真出结果的

使用特权

评论回复
87
潍坊孩子| | 2014-5-19 20:40 | 只看该作者
ococ 发表于 2014-5-19 20:32
我可以仿真出结果的

对哈,我按您的思路,在我原来的代码基础上,把dlta,sum都赋了初值,然后把sum<=sum+dlta放在了进程里,addr<=sum,直接放在了进程外,仿真出了结果也,现在有几个疑问就是,
1,如果dltabu没有赋给初值,就没有结果 ,为什么呢??
2,还是那句sum<=sum+dlta,为什么必须放在进程里面结果才输出呢?
3,为什么最初的代码在quartus里仿真完全正确,在modelsim中就不对呢

使用特权

评论回复
88
ococ| | 2014-5-19 20:45 | 只看该作者
潍坊孩子 发表于 2014-5-19 20:40
对哈,我按您的思路,在我原来的代码基础上,把dlta,sum都赋了初值,然后把sum ...

1.没有初值,modelsim就会默认为是XX的未知值。
2.组合逻辑不能自己给自己赋值。
3.quartus里面可能默认如果没有初值就给默认的0或者1。而且自动将组合逻辑修改了,因为那样描述是错误的。仅仅是猜测。

使用特权

评论回复
89
潍坊孩子| | 2014-5-19 20:48 | 只看该作者
ococ 发表于 2014-5-19 20:45
1.没有初值,modelsim就会默认为是XX的未知值。
2.组合逻辑不能自己给自己赋值。
3.quartus里面可能默认 ...

恩恩,基本了解了,这个问题困扰我好久了,非常感谢您花这么多时间来帮忙找问题,

使用特权

评论回复
90
ococ| | 2014-5-19 20:59 | 只看该作者
潍坊孩子 发表于 2014-5-19 20:48
恩恩,基本了解了,这个问题困扰我好久了,非常感谢您花这么多时间来帮忙找问题, ...

不客气。以后有问题可以单独开贴。跟在帖子后面不容易被看到。

使用特权

评论回复
91
潍坊孩子| | 2014-5-19 21:01 | 只看该作者
ococ 发表于 2014-5-19 20:59
不客气。以后有问题可以单独开贴。跟在帖子后面不容易被看到。

恩恩,好哒,

使用特权

评论回复
92
andous|  楼主 | 2014-5-20 13:06 | 只看该作者
ococ 发表于 2014-5-19 20:45
1.没有初值,modelsim就会默认为是XX的未知值。
2.组合逻辑不能自己给自己赋值。
3.quartus里面可能默认 ...

3:quartus里面可能默认如果没有初值就给默认的0或者1。而且自动将组合逻辑修改了,因为那样描述是错误的。仅仅是猜测。
如果没有初始值得话,所有芯片都会赋值为0

不定状态只是仿真的情况,仿真如果不赋值就是不定态。

2.组合逻辑不能自己给自己赋值。

我觉得还是好好看看数电在思考这些问题比较好。

比如D触发器,与非门的实现等等这块

使用特权

评论回复
93
andous|  楼主 | 2014-5-20 13:17 | 只看该作者
ococ 发表于 2014-5-19 20:25

不错,不错,是对的:)

使用特权

评论回复
94
lee218| | 2014-5-21 15:10 | 只看该作者
lz继续更新啊,搬个小板凳儿听

使用特权

评论回复
95
andous|  楼主 | 2014-5-24 23:55 | 只看该作者
lee218 发表于 2014-5-21 15:10
lz继续更新啊,搬个小板凳儿听

必须,必须,最近忙项目比较紧,现在接近尾声,以后持续更新

使用特权

评论回复
96
andous|  楼主 | 2014-5-25 22:39 | 只看该作者
吐槽一下spartan 6的DDR的读写。
spartan6的DDR读写感觉还是比较难用的,第一,开的buffer太浅,64的,如果是32bit的话,也就是可以存储256个字节,如果是video,最大1920x24bit算,需要多个cmd才能完成读写。第二,因为这个原因,所以要想把DDR带宽利用好,必须抢时间才能完成好。而写时序好像里面有一些问题,操作起来困难重重。
如果有用spartan做DDR存储的话,最好是换一颗便宜,比如V5或者A系列的。
不过现在总算是调试没有问题。

使用特权

评论回复
97
tongluren| | 2014-5-29 16:39 | 只看该作者
andous 发表于 2014-2-22 16:38
不是的,看你的for语句是否能产生的硬件。
比如我要生成8个A模块,那么你可以写成
generate

这不是通过VHDL也可以实现么···

使用特权

评论回复
98
yxm433| | 2014-6-1 23:34 | 只看该作者
学习了~~~~~~~

使用特权

评论回复
99
crature123| | 2014-6-4 09:58 | 只看该作者
FPGA 要有hw 背景,玩起來才好玩

使用特权

评论回复
100
以马内利3005| | 2014-6-4 11:10 | 只看该作者
我也在学ALTERA的EP2C5T144C8,继续关注楼主更新,学习!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则