Verilog分频器
2014-05-06 08:03
281 查看
verilog设计进阶
时间:2014年5月6日星期二
主要收获:
1.自己动手写了第一个verilog程序。
题目:
利用10M的时钟,设计一个单周期形状如下的周期波形。
思考:
最开始的想法是:定义两个计数器进行计数,两个使能标志位分别控制这两个变量。但是这样逻辑又太复杂,网上搜了搜,还是定义一个计数器比较好。
verilog程序:
modulefdivision(clk, rst, clk_out);
input clk;
input rst;
output clk_out;
reg[5:0] count;
reg rclk_out;
assign clk_out = rclk_out;
always@(posedge clk or negedge rst) begin
if(!rst) begin
count<=0;rclk_out<=0;
end
else if(count==30)
count<=0;
else count<=count+1;
end
always@(posedge clk) begin
if(count<=9) rclk_out<=1;
else rclk_out<=0;
end
endmodule
测试文件:
`timescale1ns/1ns
modulefdivision_test;
reg clk, rst;
wire clk_out;
always #2 clk=~clk;
initial begin
clk=0;rst=1;
#20 rst=0;
#20 rst=1;
#500 $stop;
end
fdivision u1(clk, rst, clk_out);
endmodule
仿真波形图:
时间:2014年5月6日星期二
主要收获:
1.自己动手写了第一个verilog程序。
题目:
利用10M的时钟,设计一个单周期形状如下的周期波形。
思考:
最开始的想法是:定义两个计数器进行计数,两个使能标志位分别控制这两个变量。但是这样逻辑又太复杂,网上搜了搜,还是定义一个计数器比较好。
verilog程序:
modulefdivision(clk, rst, clk_out);
input clk;
input rst;
output clk_out;
reg[5:0] count;
reg rclk_out;
assign clk_out = rclk_out;
always@(posedge clk or negedge rst) begin
if(!rst) begin
count<=0;rclk_out<=0;
end
else if(count==30)
count<=0;
else count<=count+1;
end
always@(posedge clk) begin
if(count<=9) rclk_out<=1;
else rclk_out<=0;
end
endmodule
测试文件:
`timescale1ns/1ns
modulefdivision_test;
reg clk, rst;
wire clk_out;
always #2 clk=~clk;
initial begin
clk=0;rst=1;
#20 rst=0;
#20 rst=1;
#500 $stop;
end
fdivision u1(clk, rst, clk_out);
endmodule
仿真波形图:
相关文章推荐
- [文档].艾米电子 - 分频器,Verilog
- [笔记]Verilog/VHDL分频器的实现
- 用verilog语言写的任意整数的分频器
- verilog分频器设计
- Verilog 分频器
- Verilog实现分频器
- 分频器的几种写法.[Verilog]
- Verilog任意整数分频器
- 【FPGA】【Verilog】【基础模块】分频器
- Verilog分频器的设计
- Verilog语言——20分频器
- 用Verilog语言实现任意整数分频器
- verilog学习笔记——偶数分频器
- [笔记].等占空比分频器的几种写法.[Verilog]
- [FPGA] 单数分频器Verilog
- 基于Verilog的偶数、奇数、半整数分频以及任意分频器设计
- 3分频器 verilog解析
- [Verilog]随意整数(奇数,偶数)分频器设计, 50%占空比
- 用verilog语言写的任意整数的分频器
- Verilog语言“加减可控任意进制计数器”及“占空比50%的任意整数分频器”设计