Quartus II

Quartus

使用–全加器

原理图方式(而输入或门)

在这里插入图片描述
在这里插入图片描述

然后完成一个2选1的原理图

在这里插入图片描述

然后点击new选择University Program VWF
在这里插入图片描述

将其全部移入
在这里插入图片描述

选择器件然后点击设置时间。
在这里插入图片描述

用verilog进行电路设计

在这里插入图片描述

右击选择Insert Template

在这里插入图片描述

!!Verilog HDL要求module描述的实例名称必须与储存文件名一致,我们将程序性稍做修改

	// Quartus II Verilog Template
// Signed adder/subtractor

module adder_sub
#(parameter WIDTH=16)
(
	input signed [WIDTH-1:0] dataa,
	input signed [WIDTH-1:0] datab,
	input add_sub,	  // if this is 1, add; else subtract
	input clk,
	output reg [WIDTH:0] result
);

	always @ (posedge clk)
	begin
		if (add_sub)
			result <= dataa + datab;
		else
			result <= dataa - datab;
	end

endmodule

  1. Verilog HDL程序是以module为基本单位的,形式上以 m o d u l e < n a m e > module<name> module<name>开头,以 e n d m o d u l e endmodule endmodule结尾,模块名称 n a m e name name可以由设计者自定,并要求和文件存储名称一致。

  2. m o d u l e < n a m e > module<name> module<name> e n d m o d u l e endmodule endmodule之间成为模块实体,其包括输入输出端口及数据类型描述,接下来是实际语句体描述。输入输出端口数据名称和类型的描述,要放在模块名称后面,并且用括号括起来。

  3. 输入/输出/双向端口变量描述一般以如下形式,不同端口之间要用逗号隔开

    //input 变量宽度 变量名称
    input signed [WIDTH-1:0] dataa,
    //output 变量宽度 变量名称
    output reg [WIDTH:0] result
    //bidir 变量宽度 变量名称
    
  4. Verilog HDL中主要有两种类型导线型 w i r e wire wire寄存器型 r e g reg reg。在端口变量描述中 w i r e wire wire可以省略。

    各种类型容纳变量都是容纳的二进制数,他们能够纳二进制数的位数称之为线宽

    //例如[7:0],表示有8位宽度的向量,内部的二进制数或存放二进制数的位置编号是7,6,5,4,3,2,1,0
    
  5. 形参要用parameter保留字来定义,形式为: p a r a m e t e r 形参名称 = 常数 parameter 形参名称 = 常数 parameter形参名称=常数,大多数情况下形参都用大写字母来表示

  6. l w a y s @ ( p o s e d g e c l k ) lways @ (posedge clk) lways@(posedgeclk)是一个结构体语句的头,有多个语句时要用 b e g i n . . . e n d begin ... end begin...end语句括起来,其代表只要clk上升沿到来,该 b e g i n . . . e n d begin ... end begin...end语句体的内容就会被执行一遍。always语句括号内的变量成为敏感变量,多个敏感变量同时存在,用or或者分开。 p o s e d g e posedge posedge n e g e d g e negedge negedge必须在每个敏感变量之前修饰,如果下降沿有效则用 n e g e d g e negedge negedge修饰。

  7. a l w a y s always always中的语句都是按顺序执行的。

  8. 这个Add_Sub程序中设计了一个16位的加减法运算器,输入输出端口有两个16位的数据导线 d a t a a dataa dataa d a t a b datab datab一个时钟输入导线 c l k clk clk,一个控制选择加减法运算的导线Sub,输出端口是一个16位的寄存器 r e s u l t result result。每当时钟上升沿到来的时刻,依据Sub为0还是1进行加法或者减法运算,并且将结果送到 r e s u l t result result寄存器。

 
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

y江江江江

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值