zoukankan      html  css  js  c++  java
  • 状态机中的RAM注意的问题--减少扇出的办法

      可能我不会抓紧时间,所以做事老是很慢。最近在整维特比译码过程深感自己有这样的毛病。

    每天会有一点进展,但是却是一天的时间,感觉别人都做起事情来很快。可能这个东西有点难,做

    不做得出来都不要紧,但我的想法一直都是做一件事,就要把它做好的,所以还应该打起精神开动

    思维去写程序调程序。

    在读RAM时,第一个状态读出地址,第二个状态调用读出的数据,其实用是地址变化前的数据,因为

    数据相对于地址也有一个周期的延时,所以要想调用RAM读出的数据,必须要隔上一个周期。因为这一

    点,我对自己写的程序纠结了很久。

    在软件中经常会用到二倍的地址或数据,形式如下

    X(2*k) ,X(2*k +1)

    用VHDL 怎样实现呢,如下

    RegA[5 downto 1] <= RegA[4 downto 0];

    RegA[0] <= '0';或RegA[0] <= '1';

     关于用计数器来作为计数时钟控制程序,其实只要能用好的话挺好用的。从译码程序中可以

    得到很好的体现,作者很聪明的利用计数器,把每个状态计算4次,总共同64 个状态,多少个

    数都计算的很清楚

    signal encode_sclk_cnt : std_logic_vector(20 downto 0);

    signal encode_bit_state : std_logic_vector(2 downto 0);

    signal encode_state : std_logic_vector(5 downto 0);

    signal encode_num : std_logic_vector(10 downto 0):

    process(sclk)

    begin

      encode_bit_state <= encode_sclk_cnt(2 downto 0);

      encode_state <= encode_sclk_cnt(8 downto 3);

      encode_num <= encode_sclk_cnt(19 downto 9);--从该句可以很清楚看到译了多少个数。

    end process;

     其实RAM的写,如果用写使能控制的话只要把数据,写使能和地址同时有效就行了。而读的话,如果不用

    读使能控制,只要先把地址赋上,一个时钟周期后,数据开始送出,再到一个周期就可以把数据读走了。

  • 相关阅读:
    1.unix网络编程基础知识
    eclipse中如何获得feature与plugin的list
    eclipse中Debug的三种方式
    Eclipse Update Site中Nested Features问题
    java中URL,URLConnection,HttPURLConnection的使用
    iBatis简单入门教程
    Git 常用命令整理
    【整理】chmod和chown命令的用法
    【原创】Gson使用,json转换为java对象
    CSS reset 一份很全的样式表,附YUI的css reset
  • 原文地址:https://www.cnblogs.com/zhongguo135/p/3321660.html
Copyright © 2011-2022 走看看