找回密码
 注册
搜索
查看: 1053|回复: 8

[讨论] FPGA的问题

[复制链接]
发表于 2006-12-20 22:24:48 | 显示全部楼层 |阅读模式
我刚学习FPGA,现在想编写这样的一个RAM,有一个输入信号,有两个输出信号.当输入信号有一个上升沿的时候,一个输出信号从零递加到100,而另外一个输出信号则产生一个周期性的站空比为50%的方波信号,也就是一个时钟信号.请问怎么样编写的呢?
发表于 2007-1-8 19:08:51 | 显示全部楼层
问题不清,需要的条件:时钟与输入信号变化的关系,输出的方波信号与输入或时钟信号的关系
点评回复

使用道具 举报

发表于 2007-1-21 14:47:19 | 显示全部楼层
我想你问的应该是
一个时钟输入,然后呐一个计数器从1记到100.在记到50时另一输出反转吧
  这样的话不难.问题不清啊
点评回复

使用道具 举报

发表于 2007-1-21 16:44:05 | 显示全部楼层
上升沿检测电路
input clk,rst_n;
input a;
reg a_d;
reg out;
always @(posedge clk or negedge rst_n) begin
  if(!rst_n) begin
    a_d<=0;
  end
  else begin
    a_d<=a;
  end
end
always @(posedge clk or negedge rst_n) begin
  if(!rst_n) begin
    out<=0;
  end
  else begin
    if(a&&!a_d) begin
      out<=1;
    end
    else begin
      out<=0;
    end
  end
end
点评回复

使用道具 举报

发表于 2007-1-21 20:02:35 | 显示全部楼层
看不太懂4楼写的。有个疑问,为什么语句只有一句时也要加“begin--end”。

我的理解是一个用计数器做的 1/100 倍分频器,同时将计数器也作为一个输出。
点评回复

使用道具 举报

发表于 2007-1-21 14:47:19 | 显示全部楼层
我想你问的应该是
一个时钟输入,然后呐一个计数器从1记到100.在记到50时另一输出反转吧
  这样的话不难.问题不清啊
点评回复

使用道具 举报

发表于 2007-1-21 16:44:05 | 显示全部楼层
上升沿检测电路
input clk,rst_n;
input a;
reg a_d;
reg out;
always @(posedge clk or negedge rst_n) begin
  if(!rst_n) begin
    a_d<=0;
  end
  else begin
    a_d<=a;
  end
end
always @(posedge clk or negedge rst_n) begin
  if(!rst_n) begin
    out<=0;
  end
  else begin
    if(a&&!a_d) begin
      out<=1;
    end
    else begin
      out<=0;
    end
  end
end
点评回复

使用道具 举报

发表于 2007-1-21 20:02:35 | 显示全部楼层
看不太懂4楼写的。有个疑问,为什么语句只有一句时也要加“begin--end”。

我的理解是一个用计数器做的 1/100 倍分频器,同时将计数器也作为一个输出。
点评回复

使用道具 举报

发表于 2007-3-26 16:34:45 | 显示全部楼层
计数器分频
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-24 11:07 , Processed in 0.047581 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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