本人FPGA学习的第一个程序:数字电路三八译码器(具有使能端EN)。
源代码:/*----------------------------------------------------------------------------------
-- Filename ﹕ decoder3_8.v
-- Author :songjun
-- Description ﹕3-8线译码器组合逻辑
-- Revision History ﹕11-1-21
-- Revision 1.0
-------------------------------------------------------------------------------------*/
module decoder3_8(out,in,en);
output[7:0] out;
input[2:0] in;
input en;
reg[7:0] out;
always@(in)
begin
if(en)
begin
case(in)
3'd0:out=8'b00000001;
3'd1:out=8'b00000010;
3'd2:out=8'b00000100;
3'd3:out=8'b00001000;
3'd4:out=8'b00010000;
3'd5:out=8'b00100000;
3'd6:out=8'b01000000;
3'd7:out=8'b10000000;
endcase
end
else out=8'bzzzzzzzz;
end
endmodule
仿真图:
图1 具有芯片延时
图2 无芯片延时
学习FPGA的第二个程序(夏闻于老师那本书真是不错让我一下子豁然开朗)
带使能和复位的十进制计数器verilog源代码
/*----------------------------------------------------------------------------------
-- Filename ﹕ conter_10.v
-- Author :songjun
-- Description ﹕10 disables counter
-- Revision History ﹕11-1-26
-- Revision 1.0
-------------------------------------------------------------------------------------*/
module conter_10(clk,q,en,rst);
input clk,en,rst;
output [3:0] q;
reg [3:0] q;
always@(posedge clk)
begin
if(en==1)
if(rst==1) //if and else must the same
q<=4'b0000;
else
if(q<9)
q<=q+1;
else
q<=4'b0000;
else
q<=4'bzzzz;
end
endmodule
时序仿真图
文章评论(0条评论)
登录后参与讨论