堆栈寄存器设计Verilog代码Quartus仿真
名称:堆栈寄存器设计Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
堆栈寄存器设计
内容及要求
模拟堆栈寄存器电路。
(1)深度12,数据宽度8比特
(2)堆栈、弹栈有指示信号
(3)使用实验室的开发箱或自备开发板完成设计
(4)完成全部流程:设计规范文档、模块设计、代码输入、功能仿真、结果与综合、时序伤真、下载验证等
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. Testbench

6. 仿真图


部分代码展示:
//堆栈寄存器
module stack(datain, push, pop, reset, clk, stackfull, dataout);
input [7:0] datain;//堆栈输入数据
input push;//堆栈信号
input pop;//弹栈信号
input reset;//复位
input clk;//时钟
output stackfull;//堆栈满指示信号
output [7:0] dataout;//堆栈读出数据
reg [7:0] dataout;
integer i;
reg [7:0] data[11:0];//深度12.数据位宽为8
reg [11:0] stackflag;
assign stackfull = stackflag[0];//堆栈满指示信号
wire [1:0] selfunction;
assign selfunction = {push, pop};//将堆栈信号弹栈信号组成2bit信号
always @(posedge clk or posedge reset)
begin
if (reset == 1'b1)//复位
begin
stackflag <= {12{1'b0}};
dataout <= {8{1'b0}};
for (i = 0; i <= 11; i = i + 1)
data[i] <= 8'b00000000;////复位清零
end
else
case (selfunction)
2'b10 ://入栈信号
if (stackflag[0] == 1'b0)
begin
data[11] <= datain;//堆栈输入数据
stackflag <= {1'b1, stackflag[11:1]};//右移,高位移入1
for (i = 0; i <= 10; i = i + 1)
data[i] <= data[i + 1];//数据移位
end
2'b01 ://出栈信号
begin
dataout <= data[11];//读出最外部数据
stackflag <= {stackflag[10:0], 1'b0};//左移,低位移入0
for (i = 11; i >= 1; i = i - 1)
data[i] <= data[i - 1];////数据移位
end
default :
;
endcase
end
endmodule代码文件(付费下载):
![]()
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 堆栈寄存器设计Verilog代码Quartus仿真
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 堆栈寄存器设计Verilog代码Quartus仿真
发表评论
模板文件不存在: ./template/plugins/comment/pc/index.htm