问题1:一位全加器

assign sum = a ^ b ^ cin;
assign cout = a&b | a&cin | b&cin;

一位全加器,sum为输入加进位位异或(即1的个数为奇数时,sum==1);
cout为cout = a&b | a&cin | b&cin即三个输入至少两个是1时为1。

问题2:加/减法器

减法可以由加法得到,将一个加数取负(二进制形式取反加一)。
这里当输入sub为1时进行减法运算,当sub=0时进行加法运算。一方面,输入b与sub取异或,sub为1时,可以进行取反操作,sub为0时保持不变。另一方面,sub为1时,将其输入作为cin刚好可以完成减法运算中的加一操作,为0时,刚好可以满足加法运算。

module top_module(input [31:0] a,input [31:0] b,input sub,output [31:0] sum
);wire [31:0] in;wire cout,cout1;assign in=b^{32{sub}};add16 add16 ( .a(a[15:0]), .b(in[15:0]),  .cin(sub), .sum(sum[15:0]), .cout(cout) );add16 add161 ( .a(a[31:16]), .b(in[31:16]),  .cin(cout), .sum(sum[31:16]), .cout(cout1) );
endmodule

另外,将位数不一样的两个数进行按位门运算时,不要忘记把位数补足。
assign in=b^{32{sub}};

问题3

1.Procedures:always,initial,task,function
2.For synthesizing hardware, two types of always blocks are relevant:
Combinational: always @(*)
Clocked: always @(posedge clk)
这俩RTL(功能)(前)仿真和门级(后)仿真都一样。

关于仿真

FPGA的仿真可以划分为四类,即代码级仿真、门级仿真、映射后仿真以及布局布线后仿真。其中,代码级仿真,仿真的对象就是原始的、未经加工的HDL代码,这也就是我们通常所说的功能仿真;门级仿真,仿真对象是HDL代码经过综合后的门级 网表;而映射后仿真,仿真对象是门级网表经过转换后对应到FPGA上的具体逻辑资源聚类, 此时可以得到电路中的门延迟信息文件供仿真时使用;最后,布局布线后仿真,仿真对象是具 有位置信息和连线信息的FPGA上逻辑资源聚类,因此可以兼并考虑门延迟与线延迟信息, 这也就是我们通常所说的时序仿真。
vivado下就有好多种仿真。

问题4 &是按位与 and是门类型的关键字

nand #10 nd1(a,data,clock,clear);
这说明在模块中引用了一个名为nd1的与非门(nand),输入为data、clock和clear,输出为a,输出与输 入的延时为10个单位时间

问题5 关于tb文件中的initial和always的执行顺序

可以认为两者一起执行,并行执行。

问题6 关于always和always@(*)

两者区别是
verilog规定,always@()中的是指该always块内的所有输入信号的变化为敏感列表,也就是仿真时只有当always@()块内的输入信号产生变化,该块内描述的信号才会产生变化,而如果没有@,那就是不用满足特定条件才执行,而是执行完一次后立马执行下一次,一直重复执行。具体不做分析,反正tb不能用@()。
`timescale 1 ns/1 ps
module tb();
reg a,b,clk;
wire out_always_comb,out_always_ff ;
aa aa(
clk,
a,
b,
out_assign,
out_always_comb,
out_always_ff );

initial begin
a=0; b=0;clk=0;
#1000 $stop;
end
always #10 clk=~clk;
always begin
#10 a=~a;
end
always begin
#20 b=~b;
end
endmodule
前仿真

后仿真直接没法看了

问题7 后仿真(功能仿真)之前最好先Start EDA netlist writer一下

HDLbits day2 一位全加器逻辑表达式原理 FPGA关于仿真相关推荐

  1. FPGA——1位全加器和4位全加器的实现

    目录 一.认识全加器 1.半加器 2.1位全加器 3.4位全加器 二.使用原理图实现1位加法器 1.原理图实现半加器 2.半加器元件实现全加器 三.使用原理图实现4位加法器 四.Verilog HDL ...

  2. 一位全加器及四位全加器————FPGA

    文章目录 前言 一.一位全加器 1.一位全加器的原理图设计 2.一位全加器的Verilog编程 3.上板效果 二.四位全加器 1.四位全加器的原理图设计 2.四位全加器的Verilog 编程 三.总结 ...

  3. FPGA(2)--例化语句--1位全加器

    文章目录 一.实验目的 二.实验内容 三.实验设计 四.实验结果及仿真 一.实验目的 熟悉元件封装方法,掌握层次化电路设计方法:掌握VHDL例化语句的设计方法. 二.实验内容 1.用VHDL语言设计1 ...

  4. FPGA实现1位全加器设计

    文章目录 一.基础知识 1. 半加器 2. 全加器 二.原理图实现1位全加器 三.Verilog实现1位全加器 四.参考

  5. FPGA学习日志——一位全加器full_adder

    全加器 全加器能进行被加数.加数和来自低位的进位信号相加,并根据求和结果给出该位的进位信号. 在电路上可以由两个半加器和一个或门构成全加器. 值得注意的是:一位全加器实现完成后,可以根据多个1位全加器 ...

  6. 一位全加器 VHDL设计与实现

    作者:chenjieb520 一.设计目的 熟悉Quartus II的VHDL文本设计流程全过程,学习组合电路的设计,仿真和测试. 二.设计内容 设计一位全加器,给出程序的设计.软件编译.仿真分析.硬 ...

  7. 用行为级描述方式实现一个加法器电路(基于ISE的设计)(2输入1位全加器电路)

    准备 先用行为级描述方式实现一个2输入一位全加器电路 由于后面需要使用综合工具进行综合,这里先声明使用的FPGA是Virtex-7系列的: 目的很单纯,就是熟悉一下使用ISE进行FPGA设计的一般流程 ...

  8. 第三次笔记:算术逻辑单元 电路基本原理 加法器的设计 一位全加器 串行进位加法器 并行进位加法器 补码加减运算器 无符号整数加减法 标志位的生成

    文章目录 算术逻辑单元 逻辑运算 一位全加器 串行进位加法器 并行进位加法器 补码加减运算器 加法器原理 补码加法器原理 无符号整数加减法 标志位的生成 算术逻辑单元 算术逻辑单元就是运算器里面的AL ...

  9. 原理图以及vhdl设计一位全加器

    原理图设计以及VHDL设计 一位加法器 全加器原理 全加器真值 输出表达式 原理图设计法 VHDL设计法 代码如下: 全加器是用门电路实现两个二进制数相加并求出和的组合线路,称为一位全加器.一位全加器 ...

  10. 广工计组实验f2一位全加器

    实验原理 半加器设计原理:只考虑两个一位二进制数的相加,而不考虑来自低位进位数的运算电路,称为半加器. 其中:a.b分别为被加数与加数,作为电路的输入端:s0为两数相加产生的本位和,它和两数相加产生的 ...

最新文章

  1. jlink的SWD与JTAG下载模式的对应接线方法
  2. SpringBoot 集成 clickhouse + mybatis-plus 配置及使用问题说明(含建表语句、demo源码、测试说明)
  3. 【v3.6.2】iNeuOS工业互联网操作系统,发布实时存储方式:实时存储、变化存储、定时存储,设备振动状态和电能状态监测驱动...
  4. LoRa、蓝牙、技术在电子显示牌上的应用
  5. [Java]中[this][super]用法总结
  6. partial is not defined的解决办法
  7. 数据库水平切分(MyCat分片)
  8. nosql笔记1_早前的时候
  9. wpe封包修改服务器数据,wpe 封包 数据包 修改实例
  10. 高效记忆/形象记忆(06)110数字编码表 01-10
  11. GD32F130之DMA
  12. 一键获取喜马拉雅音频文件(Python3爬虫)
  13. 目前人工智能技术,主要有应用于哪些领域?
  14. el表达式设置option标签selected
  15. 适合后端开发人员的html笔记
  16. 什么是导数和切线?以及他们的关系?
  17. html进行语音播报,JQuery插件制作:[2]语音播报jspeech
  18. Spring NoSuchBeanDefinitionException原因分析
  19. app测试中ios和Android的区别:
  20. 【Linux8系统学习】使用RAID与LVM磁盘陈列技术(一)

热门文章

  1. 廖雪峰Git学习笔记(超级无敌详细)
  2. AliSQL开源功能特性
  3. Gephi从入门到精通
  4. PS/PR/AE插件免费下载网站整理(附送一键安装包)
  5. VMware14虚拟机秘钥
  6. matlab课后答案杨德平,MATLAB基础教程习题答案作者杨德平例题源程序课件.pdf
  7. java对数据库的基础知识
  8. sonar mysql 配置_Sonar配置与使用
  9. CC2540和CC2541蓝牙芯片将升级为蓝牙5.0
  10. log4j.properties打印日志