FPGA/Verilog技术基础与工程应用实例(李勇等)——3.Verilog HDL设计进阶

Verilog HDL 设计的不同描述方式:门级描述、行为级描述、数据流描述

 数据流描述通过使用assign语句进行连续型赋值运算。主要针对于wire型变量。

行为级描述:把系统同级、算法级、以及RTL级三种描述统称为行为级描述方式。最常见的是使用always过程语句进行实现,此外通常配套使用if~else条件语句以及case语句。特点:当对一个硬件进行描述时,完全不用考虑电路的具体组成结构,只需要对输入输出信号的行为进行描述即可。

例子:2to1选择器

 

module  MUX2to1(s,x,y,q);//端口是声明

	input  s,x,y;//输入端口
	output q;//输出端口
	reg q;
//主程序二选一	
always @(s,x,y)
	if(s==1)
		q=x;
	else
		q=y;
endmodule
	

实验结果:

 

选择电路的设计

组合逻辑电路的系统设计中,最常用的电路是选择电路,选择电路的编写有三种,分别为if~else语句、case语句与多路选择器。

例子:4位比较器

module Com_4bit(a,b,max,eq);
//输入端口配置
	input [3:0]a;
	input [3:0]b;
//输出端口
	output  eq;//等于1,则a=b,否则不等
	output [3:0] max;//输出最大数
//寄存器设置
	reg [3:0]max;
	reg eq;
//主程序设计
always @(a,b)
	if(a>b)
	  begin
			max<=a;
			eq<=1'b0;
		end
	else if(a<b)
		begin
			max<=b;
			eq<=0;
		end
	else
		begin
			max<=a;
			eq<=1'b1;
		end
endmodule

实验结果: 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
“第2章示例”目录: 例2-1.v————————书中例2-1的Verilog源代码; 例2-2.v————————书中例2-2的Verilog源代码; 例2-3.v————————书中例2-3的Verilog源代码; 例2-4.v————————书中例2-4的Verilog源代码; 例2-5.v————————书中例2-5的Verilog源代码; “function”示例.v——书中关键字“function”示例的Verilog源代码; “task”示例.v————书中关键字“task”示例的Verilog源代码; ================================================================================= “第4章示例”目录: 8位乘法器.v——————书中8位乘法器的Verilog源代码; 74LS138.v——————书中74LS138的Verilog源代码; D触发器.v——————书中D触发器的Verilog源代码; 除法器.v——————书中除法器的Verilog源代码; 基本RS触发器.v————书中基本RS触发器的Verilog源代码; 同步RS触发器.v————书中同步RS触发器的Verilog源代码; 数码管.v——————书中按键和数码管组成的输入输出电路的Verilog源代码; ================================================================================= “第7章示例”目录: avalon_pwm_source.zip: Nios II系统中PWM外设源代码,其中:pwm_hw目录为Verilog源代码,pwm_sw目录为底层驱动程序 pwm_hw目录中包含文件:pwm_avalon_interface.v;pwm_register_file.v;pwm_task_logic.v为PWM外设的Verilog源代码,顶层文件是pwm_avalon_interface.v pwm_sw目录中包含Nios II软件中需要应用的HAL目录和inc目录,test_software目录中含测试pwm外设用的程序 NiosII片外SRAM的Avalon-MM从设备接口.v: 为一个512K X 16bit的SRAM芯片接到Avalon总线从设备接口的Verilog源代码; SRAM_16Bits_512K.rar: Nios II系统中512K X 16bit的SRAM芯片外设源代码,其中SRAM_16Bit_512K.v为Verilog源代码;class.ptf为Avalon总线描述文件,mk_user_logic_SRAM_16Bits_512K.pl为该外设的描述文件; 第7章示例.rar: 为第7章Hello_LED的示例,使用Quartus II打开该工程。在software子目录下有相应的示例程序:Hello_LED;key;timer;UART ================================================================================== “第10章示例”目录: SOPC_PCI.rar: 为基于Nios II系统的数据采集卡设计实例,使用Quartus II打开该工程。 ================================================================================== “第11章示例”目录: USB_Emulator.rar: 为基于Nios II系统的硬件在回路仿真器设计实例,使用Quartus II打开该工程。 ================================================================================== “SPI”目录: SPI.v: 书中SPI接口外设的Verilog源代码; spi_vhdl.zip: SPI接口外设的VHDL源代码,详细说明请参考压缩文件中的readme.txt ================================================================================== “UART”目录: uart_verilog.rar: UART接口外设的Verilog源代码,其中uart.v是顶层设计文件,txmit.v是数据发送模块Verilog源代码,rcvr.v是数据接收模块Verilog源代码;rcvr_tf.v是测试数据接收的Verilog源代码,txm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值