在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3217|回复: 12

[讨论] 请教一个问题

[复制链接]
发表于 2010-5-7 09:31:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 qd0090 于 2010-5-7 09:33 编辑

一直对FPGA的工作过程不是太清楚,请教一个问题

process(clk)
begin
if rising_edge (clk) then
   if signal_1='1' then
       a<=b;
   end if;
end if;
end process;

假设我们的时钟周期是25ns,如果b=’1‘发生在时钟上升沿过后的2ns,
请问程序能在第一个周期内执行a<=b么?,
如果b=’1‘发生在时钟上升沿过后的5ns呢?10ns又如何?
具体如下图所示(画图时有点马虎,呵呵,从左到右依次是第一个上升沿,第二个上升沿,第三个上升沿):
question.bmp
发表于 2010-5-7 09:39:02 | 显示全部楼层
应该是SIGNAL_1 = '1' 在时钟上升沿后2ns吧,那样在第一个上升沿采不到的,会在第二个上升沿时执行
a <= b。
发表于 2010-5-7 09:50:30 | 显示全部楼层
首先,FPGA不是一个程序,数字电路最忌讳的事情就是用程序运行的思路去考虑电路的工作
其次,这个是一个寄存器的标准描述,你可以简单的理解成在时钟上升那一瞬间,A寄存器把此刻B的值锁存进去
最后,如果需要进一步的考虑这个电路的描述,请搜索 setup time. hold time 等概念
发表于 2010-5-7 09:59:49 | 显示全部楼层
楼上正解。发现很多人都把hdl当成程序来理解。而忽略了它硬件描述的根本。
发表于 2010-5-7 10:08:15 | 显示全部楼层
要考虑好信号的建立时间与保持时间
发表于 2010-5-7 10:12:46 | 显示全部楼层
同意3,4楼言论,这是HDL与C根本不同的一点。另外建议把if--else写全,否则综合成锁存而不是dff后期做timing会不大好看
 楼主| 发表于 2010-5-7 11:39:21 | 显示全部楼层
本帖最后由 qd0090 于 2010-5-7 11:56 编辑

谢谢各位的精彩回答,呵呵,我有点明白了。
还有一个问题:
A,B是两个输出端口(port),signal_1是信号
A  : out std_logic_vector(2 downto 0);
B : out std_logic_vector(2 downto 0);
signal signal_1: std_logic_vector(2 downto 0);
signal integer_1: integer  range 0 to 3:=2;
如果我进行如下操作:
A<=signal_1 + integer_1;
B<=signal_1;

请问:A和B是同时变化,还是A会比B延时一会呢?

由于对fpga的工作过程不是很了解,导致我对这些概念不清楚,有什么书或者资料能让我补充一下这方面的知识呢?
发表于 2010-5-7 11:46:41 | 显示全部楼层
在仿真的时候是同时,但是综合出来可能会有延时。而且个人觉得最好不要混合signal和integer。
这个概念和数字设计和HDL有关,和是不是用FPGA并没有太大联系(数字ASIC也是这一套)。从VHDL/verilog书学起吧,推荐verilog HDL高级数字设计(影印),原著ciletti。
发表于 2010-5-7 12:00:02 | 显示全部楼层
lz还是不太明白HDL的意思。这个东西的最终目的是生成一个硬件电路。实实在在的由门和触发器构成的电路。所以信号怎样变化,取决于综合出来的硬件结构和硬件上的延迟。你的代码只是能调整这种结构,但是改变不了电路固有的一些特性。
发表于 2010-5-7 12:17:13 | 显示全部楼层
同意ls。写HDL的时候应该想想哪一个变量会变成触发器,哪一行代码会变成门/组合逻辑,换句话说写HDL的时候脑子里做下综合,就能理解为什么要这么写了,还是多看HDL书
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-11 18:51 , Processed in 0.043499 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表