集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
楼主: fpgaw

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

[复制链接]
eee 发表于 2011-10-10 22:11:59 | 显示全部楼层
输入两个正弦信号
经滤波输出其中一个
这个滤波器
该如何写呀?
不使用IPCORE
eee 发表于 2011-10-10 22:17:41 | 显示全部楼层
跪求高手解答
NgdBuild:604 - logical block 'DATA_OUT/RAM' with type 'RAM_16800' could
   not be resolved. A pin name misspelling can cause this, a missing edif or ngc
   file, or the misspelling of a type name. Symbol 'RAM_16800' is not supported
   in target 'virtex5'.
哪个高手遇到过这个问题 急需解答  多谢了
eee 发表于 2011-10-10 22:19:10 | 显示全部楼层
一个led闪烁灯求解答
module ledwater (clk_50M,led_out);
input   clk_50M;       //系统时钟输入50M  input  pin23
                       //意味每一秒要变化50,000,000HZ

output  led_out;       //每一秒闪烁一下

reg [24:0] count;  //分频计数器,25,000,000HZ
reg  div_clk;     //利用分频计数器得到显示一秒的闪烁效果
reg  led_out;

//分频计数器。得到一秒的频率
always @ ( posedge clk_50M )
begin
if ( count==25000000 )
begin     //我们的时钟本身是每一秒要变化50,000,000HZ
           //我们现在用count这个计数器让它自加到25,000,000HZ
  div_clk<=~div_clk;  //在这里我们就得到了0.5秒变化一次的信号。
                      //所以一个周期就是1Hz也就是一秒。
   count<=0;          //把计数器清零。
  end
else
  count<=count+1;     //计数器自加。
  led_out <= div_clk;  //利用分频计数器得到显示一秒的闪烁效果
                      //在LED灯上面表现出来。
end

endmodule


请问
reg [24:0] count;  //分频计数器,25,000,000HZ        这个是什么意思   

if ( count==25000000 )
2个语句有什么联系   为什么我改一个后   灯就不闪烁了
eee 发表于 2011-10-10 22:21:07 | 显示全部楼层
程序错误
大家帮忙看看下面的程序,有错误,帮忙改改,万分感谢
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity mycounter_60 is
    port(clk,clr,en,bcd1wr,bcd10wr:in std_logic;
         din:in std_logic_vector(3 downto 0);
         bcd1: out std_logic_vector(3 downto 0);
         co: out std_logic;
         bcd10: out std_logic_vector(2 downto 0));
end mycounter_60;

architecture art2 of mycounter_60 is
signal bcd1n:std_logic_vector(3 downto 0);
signal bcd10n:std_logic_vector(2 downto 0);
begin
    PROCESS(clk,clr,en,bcd1wr) is
    begin
        if(clr='0') then
            bcd1n<=(others=>'0');
            bcd10n<=(others=>'0');
        elsif(clk'event and clk='1') then
            if(bcd1wr='1' and en='1') then
                bcd1n<=din;
            elsif(en='1') then
                bcd1n<=bcd1n+1;
                if(bcd1n>=9) then
                    bcd1n<="0000";
                end if;
            end if;
        end if;
    end process;
   
    process(bcd10wr,en,bcd1n) is
    begin
        if(bcd10wr='1' and en='1') then
            bcd10n<=din(2 downto 0);
        elsif(bcd1n=9 and en='1') then
            bcd10n<=bcd10n+1;
            if(bcd10n=5) then
                bcd10n<="000";
                co<='1';
            else
                co<='0';
            end if;
        end if;
    end process;
   
    bcd1<=bcd1n;
    bcd10<=bcd10n;
end art2;
夏宇闻 该用户已被删除
夏宇闻 发表于 2011-10-11 15:16:31 | 显示全部楼层
本帖最后由 夏宇闻 于 2011-10-11 15:21 编辑
一个led闪烁灯求解答
module ledwater (clk_50M,led_out);
input   clk_50M;       //系统时钟输入50M  i ...
eee 发表于 2011-10-10 22:19

这个寄存器有25位,当计数值到25000000后就清零,重新从零开始计数。认真读书,把基本语法搞懂后再提问题我没有时间回答书上已明确讲述的内容。
夏宇闻 该用户已被删除
夏宇闻 发表于 2011-10-11 15:27:54 | 显示全部楼层
本帖最后由 夏宇闻 于 2011-10-11 15:29 编辑
跪求高手解答
NgdBuild:604 - logical block 'DATA_OUT/RAM' with type 'RAM_16800' could
   not be res ...
eee 发表于 2011-10-10 22:17


从错误信息看很可能你引用的IP核在Vertex5器件的库中不存在,也有可能库的路径设置不正确,也可能是引脚名拼写错误,总之具体错误必须根据提示逐一排除。
夏宇闻 该用户已被删除
夏宇闻 发表于 2011-10-11 15:45:03 | 显示全部楼层
输入两个正弦信号
经滤波输出其中一个
这个滤波器
该如何写呀?
不使用IPCORE
eee 发表于 2011-10-10 22:11

你应该先学会用Matlab如何滤掉那个不想要的正弦信号。然后再学会如何设计数字系统来解决这个问题。信号处理的数学方法在先,逻辑电路设计在后。
ccc 发表于 2011-10-11 21:18:07 | 显示全部楼层
请问在test bench文件中inout变量应怎么定义呀?
夏宇闻 该用户已被删除
夏宇闻 发表于 2011-10-12 05:48:31 | 显示全部楼层
请问在test bench文件中inout变量应怎么定义呀?
ccc 发表于 2011-10-11 21:18

在testbench中包括一个激励模块在该模块的端口上定义一inout端口。
ys_66888 发表于 2011-10-13 11:25:24 | 显示全部楼层
夏老师,您的联系方式方不方便与我留一下呢?QQ:757256737,邮箱可发至QQ邮箱。谢谢!
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-15 23:29 , Processed in 0.064811 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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