psbhero 发表于 2009-10-22 11:25:23

想用FPGA制作一个32位的计数器,以测量脉冲的频率,我没有学过FPGA,现学现卖,不知好实现吗

.

real_sugar 发表于 2009-10-22 13:55:10

好实现32位计数器+状态机+接口(以quartus II为例计数器和AVALON接到一起就可以用了)

psbhero 发表于 2009-10-22 14:26:12

谢谢楼上的解答,能推荐一下我应该看哪些知识点吗?我是新手,请多关照,谢谢!

leafing 发表于 2009-10-22 15:04:45

还是不要整什么nios了,直接接个数码管出来好了,楼主需要看看数字电路,另外学一门硬件描述语言,VHDL或Verilog,任意一个即可

psbhero 发表于 2009-10-22 15:24:45

谢谢指点

caosix 发表于 2009-10-23 11:36:38

想用FPGA制作一个32位的计数器,以测量脉冲的频率,——————完全可以,,而且很“适合”!!

——————————————非常容易实现——————————

—————“脉冲”——应该是重复的??有稳定周期的??——才能谈得上“频率”吧!?

做 32位 计数器————可以参考————C1,R1 是12位的计数器,T1是8位的。。。。改成“31”就成了32位计数器了。


entity My_Lhx is
        port (clk_1M,I1,I2,I6,I4,I3,SL,SY:IN Std_Logic;
                O1,O2,O6,Ot4,O3:Out Std_Logic);
end My_Lhx;

architecture inference of My_Lhx is
        signal C1:Std_Logic_Vector(11 Downto 0);
        signal R1:Std_Logic_Vector(11 Downto 0);
        signal T1:Std_Logic_Vector(7 Downto 0);

process (clk_1M)
begin
        if (clk_1M'EVENT and clk_1M='1') then
                if (I1 = '0') then
                  T1 <= T1 + '1';
                  if (T1 = Conv_Std_Logic_Vector(252,8) and C1 > Conv_Std_Logic_Vector(511,12)) then
                        Wr1 <= '1';
                        R1 <= C1;
                  else
                        Wr1 <= '0';
                  end if;
                  if (T1 > Conv_Std_Logic_Vector(254,8)) then
                        C1 <= "000000000000";
                  end if;
                else
                  C1 <= C1 + '1';
                  T1 <= "00000000";
                  Wr1 <= '0';
                end if;                -- END Part Input 1#
            end if;
end process;
end My_Lhx;

psbhero 发表于 2009-10-23 12:42:19

TO 【5楼】 caosix

你好,能提供一个实例吗?先谢谢了!

psbhero 发表于 2009-10-23 18:23:19

感谢caosix网友的帮助,我好好学习学习 呵呵谢谢了
页: [1]
查看完整版本: 想用FPGA制作一个32位的计数器,以测量脉冲的频率,我没有学过FPGA,现学现卖,不知好实现吗