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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 8599|回复: 20

[活动] 每日一题1115

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

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

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

×
本帖最后由 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 | 显示全部楼层
格雷编码是不是也叫独热编码呀,它的编码优势在于只改变一位去编码,出错率低~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-7-11 02:28 , Processed in 0.075493 second(s), 6 queries , Gzip On, MemCached On.

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