FPGA之verilog第一天学习(00011101序列产生器)
2017-06-22 23:49
387 查看
module serilize_gen(
input i_sys_clk,
output data_out
);
//产生复位;
reg [3:0] rst_cnt = 4'd0;
always@(posedge i_sys_clk)begin
if(rst_cnt == 4'd10)begin
rst_cnt <= 4'd10;
end
else begin
rst_cnt <= rst_cnt;
end
end
wire rstn;
assign rstn = (rst_cnt == 4'd10);
//00011101序列循环产生
reg [2:0]cnt;
always@(posedge i_sys_clk or negedge rstn)begin
if(rstn==1'b0)begin
cnt <= 3'd0;
end
else if(cnt == 3'd7)begin
cnt <= 3'd0;
end
else begin
cnt <= cnt + 1'b1;
end
end
reg seril_data;
always@(posedge i_sys_clk or negedge rstn)begin
if(rstn)begin
seril_data <= 1'b0;
end
else begin
case(cnt)
3'd0:begin
seril_data <= 1'b0;
end
3'd1:begin
seril_data <= 1'b0;
end
3'2:begin
seril_data <= 1'b0;
end
3'd3:begin
seril_data <= 1'b1;
end
3'd4:begin
seril_data <= 1'b1;
end
3'd5:begin
seril_data <= 1'b1;
end
3'd6:begin
seril_data <= 1'b0;
end
3'd7:begin
seril_data <= 1'b1;
end
endcase
end
end
assign data_out = seril_data;
endmodule
input i_sys_clk,
output data_out
);
//产生复位;
reg [3:0] rst_cnt = 4'd0;
always@(posedge i_sys_clk)begin
if(rst_cnt == 4'd10)begin
rst_cnt <= 4'd10;
end
else begin
rst_cnt <= rst_cnt;
end
end
wire rstn;
assign rstn = (rst_cnt == 4'd10);
//00011101序列循环产生
reg [2:0]cnt;
always@(posedge i_sys_clk or negedge rstn)begin
if(rstn==1'b0)begin
cnt <= 3'd0;
end
else if(cnt == 3'd7)begin
cnt <= 3'd0;
end
else begin
cnt <= cnt + 1'b1;
end
end
reg seril_data;
always@(posedge i_sys_clk or negedge rstn)begin
if(rstn)begin
seril_data <= 1'b0;
end
else begin
case(cnt)
3'd0:begin
seril_data <= 1'b0;
end
3'd1:begin
seril_data <= 1'b0;
end
3'2:begin
seril_data <= 1'b0;
end
3'd3:begin
seril_data <= 1'b1;
end
3'd4:begin
seril_data <= 1'b1;
end
3'd5:begin
seril_data <= 1'b1;
end
3'd6:begin
seril_data <= 1'b0;
end
3'd7:begin
seril_data <= 1'b1;
end
endcase
end
end
assign data_out = seril_data;
endmodule
相关文章推荐
- FPGA之verilog学习第一天(时分秒数字时钟)
- 【搬家】FPGA学习手记(二) 简单功能仿真及Verilog基础电路设计
- FPGA Verilog HDL 系列实例--------序列信号发生器
- 学习FPGA verilog的心得--编程技巧--如何写代码减少逻辑单元的使用数量
- FPGA学习(第9节)-Verilog设计电路大串讲(误区+组合逻辑+时序逻辑+状态机设计)
- FPGA学习(第7节)-Verilog状态机(状态按条件切换)
- FPGA从零开始-Verilog语法学习笔记(一)
- 【转】(转)如何学习FPGA verilog 学Quartus II+Verilog三步走
- ALTERA DE2 之 verilog HDL 学习笔记05-FPGA UART RS232
- FPGA学习(第10节)-模块的例化-Verilog层次化设计实现LED流水灯
- FPGA学习(第3节)-Verilog实现LED流水灯+基础入门语法+Modelsim仿真技巧+计数器+状态机+分频
- Verilog HDL In One Day (Verilog HDL 学习的第一天)
- ALTERA DE2 之 verilog HDL 学习笔记03 FPGA的PWM输出
- Verilog、FPGA学习(一)
- FPGA小白学习笔记(一)--Verilog语法学习(1)
- FPGA学习(第6节)-Verilog计数器(实现流水灯+实现数码管秒表)
- FPGA学习(第8节)-Verilog设计电路的时序要点及时序仿真
- 【FPGA学习】Verilog之加法器
- Quartus/FPGA/Verilog HDL【学习笔记001】
- 【连载】 FPGA Verilog HDL 系列实例--------序列信号发生器