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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!)    创芯人才网--重磅上线啦!
查看: 7351|回复: 20

[活动] 每日一题1115

[复制链接]
发表于 2012-11-15 21:35:35 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 vipjph 于 2012-11-21 08:56 编辑

1. 预处理器标识#error的目的是什么?
2. 关键字volatile有什么含意?并给出三个不同的例子。
3. What is the principal advantage of Gray Code over straight (conventional) binary?
    Gray code编码比二进制编码有什么优势?

欢迎大家积极讨论,答案稍后揭晓,参与回答者奖励一定信元。
==========================================
1、#error 停止编译并产生错误信息
2、一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:
  ①并行设备的硬件寄存器(如:状态寄存器)
  ②一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)
  ③多线程应用中被几个任务共享的变量
3、不会同时翻转,带来的好处:
  1-时序上消除毛刺,在异步交互中使用
  2-功耗上,同时翻转的小,减少动态功耗
  3-对PAD设计来说,减少计算SSO时同时翻转数,降低对PG pad要求
  4-对总线布线来说,不同时翻转,抑制串扰更容易,时序易达到
发表于 2012-11-16 11:29:10 | 显示全部楼层
#error      停止编译并显示错误信息
发表于 2012-11-16 11:53:26 | 显示全部楼层
3. What is the principal advantage of Gray Code over straight (conventional) binary?
    Gray code编码比二进制编码有什么优势?

格雷码的特点是每次只有一位变化,这样的出错几率最少。
发表于 2012-11-16 20:56:49 | 显示全部楼层
格雷码每次只变一bit,多bits直接跨时钟域,用格雷码不容易出错。
发表于 2012-11-16 21:46:08 | 显示全部楼层
回复 1# vipjph


  3.格雷码每次只有一个bit翻转。常用于异步fifo的读写指针。跨时钟域的时候没有converge的问题。
发表于 2012-11-16 23:21:36 | 显示全部楼层
了解一下,学习
发表于 2012-11-17 00:25:34 | 显示全部楼层
转:
The advantage of the Gray code over pure binary numbers is that a number in
Gray code changes by one bit as it proceeds from one number to the next.
To obtain a different Gray code, one can start with any bit combination and proceed
to obtain the next bit combination by changing only one bit from 0 to 1 or 1 to 0
in any desired random fashion, as long as two numbers do not have identical code
assignments. The Gray code is also known as reflected code.
Since gray code is a unit distance code, every next value differs from previous in
one bit position, will result in a maximum of a single bit error/transition. For example
if the counter changes from “1010” to “1011”, the sampling logic will either
read “1010” (old value) or “1011” (new incremented value) but no other value.
发表于 2012-11-17 06:03:03 | 显示全部楼层
每日一题好有意义呀!
发表于 2012-11-17 13:29:22 | 显示全部楼层
参考网上答案供大家学习
        ->1.强迫编译程序停止编译;
        ->2.一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。     
下面是volatile变量的几个例子:
1)并行设备的硬件寄存器(如:状态寄存器)
2)一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)
3)多线程应用中被几个任务共享的变量
    ->3.格雷码所有相邻整数在它们的数字表示中只有一个数字不同。它在任意两个相邻的数之间转换时,只有一个数位发生变化。它大大地减少了由一个状态到下一个状态时逻辑的混淆。
发表于 2012-11-17 14:43:42 | 显示全部楼层
格雷编码是不是也叫独热编码呀,它的编码优势在于只改变一位去编码,出错率低~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-4-25 06:31 , Processed in 0.034832 second(s), 9 queries , Gzip On, Redis On.

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