1. bit, byte, word, dword, qword的区别 ?


1 qword = 4 word;

1 dword = 2 word;

1 word = 2 byte;

1 byte = 8 bit;

百度百科的解释:

qword

1个二进制位称为1个bit,8个二进制位称为1个Byte,也就是1个字节(8位),2个字节就是1个Word(1个字,16位),q就是英文quad-这个词根(意思是4)的首字母,就是一个word的4倍。所以它自然是word(2字节,0~2^16-1)的四倍,8字节,0~2^64-1)

凡是带word的(比如dword(4字节,0~2^32),qword),都是非负数,一般在0 .. 18446744073709551615之间。


2. 什么是原码,反码,补码,符号-数值码。以8bit为例,给出各自表示的数值范围。


原码:

原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:

[+1]原 = 0000 0001

[-1]原 = 1000 0001

第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:

[1111 1111 , 0111 1111]

[-127 , 127]

反码:

反码的表示方法是:

正数的反码是其本身

负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.

[+1] = [00000001]原 = [00000001]反

[-1] = [10000001]原 = [11111110]反

可见如果一个反码表示的是负数, 人脑无法直观的看出来它的数值. 通常要将其转换成原码再计算.

由于每一个数都有其对应的反码,所以反码表示的数的范围也为:[-127 , 127]

补码:

补码的表示方法是:

正数的补码就是其本身

负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)

[+1] = [00000001]原 = [00000001]反 = [00000001]补

[-1] = [10000001]原 = [11111110]反 = [11111111]补

对于负数, 补码表示方式也是人脑无法直观看出其数值的. 通常也需要转换成原码在计算其数值.

由于+0与-0对应同一个补码0000_0000,故编码1000_0000可表示-128,故补码的取值范围是:[-128~127]

总结:

补码能表示的有符号数的范围是[-2^{N-1},2^{N-1}-1].

参考链接:【 数字信号处理 】定点数的表示之二进制数的原码与补码

原码, 反码, 补码 详解


3. 十进制转换为二进制编码: 127, (-127),127.375,(-127.375)


十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。

十进制整数转换为二进制整数采用"除2取余,逆序排列"法。

具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

故:127可以转换为二进制0111_1111

(-127)D=(1111_1111)原码=(1000_0000)反码=(1000_0001)补码

负数一般用补码表示,所以最终为(-127)D=(1000_0001)B

十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。

具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,此时0或1为二进制的最后一位。或者达到所要求的精度为止。

然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。

0.375*2=0.75     取0

0.75*2=1.5         取1

0.5*2 = 1            取1

故0.375对应的二进制为:0.011

127.375对应的二进制为:01111_1111.011

(-127.375) 对应的二进制是什么呢?

见链接:负小数如何用二进制表示?

浮点数在计算机中用原码表示,故(-127.375)=(1111_1111.011)

参考链接:

https://zhidao.baidu.com/question/117636295.html

https://baike.baidu.com/item/%E5%8D%81%E8%BF%9B%E5%88%B6%E8%BD%AC%E4%BA%8C%E8%BF%9B%E5%88%B6


4. 设计BCD译码器,输入0~9。采用verilog描述并画出门级电路图。


`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2019/04/22 18:25:41
// Design Name:
// Module Name: bcd_encoder
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 共阳极数码管
//module bcd_encoder(input en,input [3:0] data_in,output reg [7:0] data_out);always@(*) beginif(en) begincase(data_in)4'b0000: begindata_out = 8'h3f;end4'b0001: begindata_out = 8'h06;end4'b0010: begindata_out = 8'h5b;end4'b0011: begindata_out = 8'h4f;end4'b0100: begindata_out = 8'h66;end4'b0101: begindata_out = 8'h6d;end4'b0110: begindata_out = 8'h7d;end4'b0111: begindata_out = 8'h07;end4'b1000: begindata_out = 8'h7f;end4'b1001: begindata_out = 8'h6f;enddefault: begindata_out = 8'hzz;endendcaseendelse ;endendmodule


5. 异步FIFO深度为17,如何设计地址格雷码?


稍后!暂时未解决。

https://www.embedded.com/print/4015117

【Verilog HDL 训练】第 01 天相关推荐

  1. 【Verilog HDL 训练】第 11 天(分频电路)

    设计一个占空比50%的三分频电路. 针对这个分频器,博文的末尾会给出一个反面教材,这是我上次写的一个分频器,看起来很好,其实是不能综合的.针对其中的错误,我令立博文记录之:[ Verilog ]alw ...

  2. 【Verilog HDL 训练】第 06 天(边沿检测)

    1. 复习verilog语法 [选做题] - reg和wire的区别 寄存器数据类型 Verilog中规定,凡是在程序块中被赋值的变量,都必须是寄存器类型的.(程序块:例如always块) 这里未免还 ...

  3. 【Verilog HDL 训练】第 07 天(串并转换)

    串并转换 1. 复习verilog语法 [选做题] - 文件操作fopen fdisplay fwrite fclose - 生成随机数 random - 初始化 readmemh readmemb ...

  4. 【Verilog HDL 训练】第 05 天(序列检测)

    1. dff和latch有什么区别. 锁存器是一种对脉冲电平(也就是0或者1)敏感的存储单元电路,而触发器是一种对脉冲边沿(即上升沿或者下降沿)敏感的存储电路. "触发器" 泛指一 ...

  5. 【Verilog HDL 训练】第 04 天(竞争、冒险、译码等)

    1. 什么是竞争和冒险? 记得我刚学FPGA那会,恶补基础知识,其中之一就是竞争与冒险,我参考了<FPGA之道>,记录了几篇博客: [ FPGA ]组合逻辑中的竞争与险象问题(一) 第一篇 ...

  6. 【Verilog HDL 训练】第 14 天(glitch-free的两个时钟切换电路)

    2019年5月13日 glitch-free的两个时钟切换电路. 可以看到这是一个星期之前的题目了,现在才抽空做,把这篇颠倒个顺序吧,也是最后一天了,以后的题目都是讨论性质的,不会以第多少天的形式来写 ...

  7. 【Verilog HDL 训练】第 13 天(存储器、SRAM)

    存储器. 1. rom,ram,flash,ddr,sram,dram,mram..列举并解释一下这些名词. 2. 用verilog实现一个深度为16,位宽8bit的单端口SRAM.搭建一个仿真环境, ...

  8. 【Verilog HDL 训练】第 10 天(PWM 呼吸灯)

    5月8日 PWM 用verilog实现PWM控制呼吸灯.呼吸周期2秒:1秒逐渐变亮,1秒逐渐变暗.系统时钟24MHz,pwm周期1ms,精度1us. 今天的题目我是第一次见,答案借鉴大神的:Veril ...

  9. 【Verilog HDL 训练】第 09 天(按键消抖)

    5月7日 按键防抖 1. 用verilog实现按键抖动消除电路,抖动小于15ms,输入时钟12MHz. 在编写Verilog代码之前,先分析下一些前提问题,首先是几个按键(1个,多个),我们以1个和三 ...

最新文章

  1. EBS上用过的一些接口表整理信息
  2. Ansible YML语法
  3. Spring+SpringMVC+MyBatis深入学习及搭建(十四)——SpringMVC和MyBatis整合
  4. 【数据结构与算法】之双向链表的创建/遍历/插入/删除/查找的算法实现
  5. csv 字符串_python3从零学习-5.5.1、CSV 文件读写
  6. React中解决样式丢失问题
  7. python倒排索引实现_倒排索引原理和实现 - uncle_LLD的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. deviceiocontrol buffered 返回不了_这3种减肥法是无用功,累死累活也瘦不了
  9. 从“专用”到“通用” 阿里平头哥野心何在?
  10. 怎么用ubuntu进入python_ubuntu 下python环境的切换使用
  11. 深入了解帆软报表系统的启动过程三
  12. 第三个维度:z-index
  13. C语言 Linux网络编程(C/S架构) 在线词典
  14. 红外接收管硬件电路曲折的调试过程,错误的使用过程记录
  15. 未来5年智慧城市宽带入户超百兆
  16. c语言确定闰月的步骤,怎么判断是闰月,农历闰月是如何确定的?
  17. 回声状态网络(ESN)对MNIST手写数字集识别
  18. android 6.0权限 郭霖,Permission——郭霖认为最优的运行时权限方案
  19. MySQL 5.7.37数据库下载安装教程(Windows无需安装版)
  20. 完美解决composer提示输入用户名和密码

热门文章

  1. 为什么找不到Flash Builder 4.6 for Eclipse插件
  2. 运用BeautifulSoup抓取网页的链接
  3. ITAA在线试学用户使用说明
  4. Quartz.net官方开发指南 第二课:Jobs And Triggers
  5. 华为rh2285安装系统linux,华为2285h v5安装系统记
  6. 为什么在反向传播中感知器初始值不能为0_人工智能可以为我们做什么?世界皆可二分类...
  7. unity桌面设置vnc_win7系统通过VNCViewer访问Ubuntu桌面环境的操作方法
  8. android lcd工具,Android东西lcd配置
  9. oracle 状态unknown,解决Oracle crs_stat状态为UNKNOWN有关问题
  10. android筛选cookie,服务器无法从Android手机识别Cookie