ADF4350初始化程序(verilog)

//控制字有评估板得到,用此程序时候需要重新计算;

//这个程序只给出了sdata和le的输出值,其他的复位和时钟需要单独给出;

//本人应用时,配置时钟是2MHz(本模块sdata输出速率时钟),ADF4350时钟源时钟是10MHz;

//可以添加跳频功能,需要另外加入else if控制程序;

else if (en == 1‘b0 && set_done == 1‘b0) begin //上电后控制配置,配置完后进入等待状态(set_done拉高);

case (state)
idle: begin
state <= wr5;
sreg <= 32‘h 00580005;//reg5;
le <= 1‘b0;
cnt <= 6‘d32;
set_done<= 1‘b0;
end
wr5: begin //配置reg5;
if (cnt == 6‘d0) begin //送出32个控制字后,给出le;
le <= 1‘b1; //le拉高,reg5配置完成;
state <= wr4; //下一个状态,reg4;
sreg <= 32‘h 0085003c; //reg4,32位控制字表示成16进制数字;
cnt <= 6‘d32;
end
else begin
cnt <= cnt - 1‘b1;
sreg <= {sreg[30:0],1‘b0};//对控制字进行左移操作;
dout <= sreg[31]; //每次都送出sreg的最高位;
le <= 1‘b0;
end
end
wr4: begin //功能参考wr5;
if (cnt == 6‘d0) begin
le <= 1‘b1;
state <= wr3;
sreg <= 32‘h 000404b3;//reg3;
cnt <= 6‘d32;
end
else begin
cnt <= cnt - 1‘b1;
sreg <= {sreg[30:0],1‘b0};
dout <= sreg[31];
le <= 1‘b0;
end
end
wr3: begin //功能参考wr5;
if (cnt == 6‘d0) begin
le <= 1‘b1;
state <= wr2;
sreg <= 32‘h 1a009fc2;//reg2:digital lock detect
cnt <= 6‘d32;
end
else begin
cnt <= cnt - 1‘b1;
sreg <= {sreg[30:0],1‘b0};
dout <= sreg[31];
le <= 1‘b0;
end
end
wr2: begin //功能参考wr5;
if (cnt == 6‘d0) begin
le <= 1‘b1;
state <= wr1;
sreg <= 32‘h 08008011;//reg1;
cnt <= 6‘d32;
end
else begin
cnt <= cnt - 1‘b1;
sreg <= {sreg[30:0],1‘b0};
dout <= sreg[31];
le <= 1‘b0;
end
end
wr1: begin //功能参考wr5;
if (cnt == 6‘d0) begin
le <= 1‘b1;
state <= wr0;
sreg <= 32‘h 00960000;//reg0;
cnt <= 6‘d32;
end
else begin
cnt <= cnt - 1‘b1;
sreg <= {sreg[30:0],1‘b0};
dout <= sreg[31];
le <= 1‘b0;
end
end
wr0: begin //功能参考wr5;
if (cnt == 6‘d0) begin
le <= 1‘b1;
state <= idle;
cnt <= 6‘d32;
set_done <= 1‘b1; //配置完6个控制字后,set_done拉高,不再进行操作,等待en进行跳频;
end
else begin
cnt <= cnt - 1‘b1;
sreg <= {sreg[30:0],1‘b0};
dout <= sreg[31];
le <= 1‘b0;
end
end
default:begin
le <= 1‘b0;
state <= idle;
sreg <= 32‘h 00960000;
cnt <= 6‘d32;
set_done <= 1‘b0;
end
endcase

end

ADF4350初始化程序(verilog)

时间: 2024-11-05 04:06:55

ADF4350初始化程序(verilog)的相关文章

理解隐式类型、对象初始化程序和匿名类型

在C# 3.0中,几乎每个新特性都是为LINQ服务的.所以,本文将介绍下面几个在C# 3.0中引入的新特性: 自动实现的属性 隐式类型的局部变量 对象和集合初始化程序 隐式类型的数组 匿名类型 其实这几个特性都是比较容易理解的,对于这几个特性,编译器帮我们做了更多的事情(想想匿名方法和迭代器块),从而简化我们的代码. 自动实现的属性 在C# 3.0以前,当我们定义属性的时候,一般使用下面的代码 public class Book { private int _id; private string

《linux 内核完全剖析》 chapter 7 初始化程序

初始化程序 7.1 main.c 程序 图中,高速缓存的部分还要扣除显存和ROM BIOS占用的部分.告诉缓冲区是用于磁盘等块设备临时存放数据的地方,以1K字节为一个数据单位. init().函数的功能可分为四个部分 安装根文件系统 显示系统信息 运行系统初始资源配置文件rc中的命令 执行用户登录程序shell程序 要注意的是,由于创建新进程的过程通过完全复制父进程代码段和数据段的方式实现.因此在首次使用fork()创建新进程init时,为了确保新进程用户态栈中没有进程0的多余信息,要求进程0在

浏览器默认标签样式总结及css初始化程序

html中的大部分的标签都有一些糟糕的样式,有的是标签天然自带的,有的是浏览器默认设置的,我们在写网页时,这些默认的样式就会时不时的跳出来捣一下乱,搞得我们很是无奈.所以成手在写css样式时,一般都会在开头写一段初始化程序,来去掉这些默认样式,比如最简单的方法就是使用*{margin:0:padding:0:}.但是通常我们很少使用这种方法,因为通配符*的效率极低.那我们应该使用哪种方法呢,下面博主就来为大家介绍一些常用的方法. 一.浏览器默认样式总结 在介绍初始化程序之前,我们先了解一下都有那

中颖SH79F1616 timer5初始化程序

//========timer5.h============================================= #ifndef _TIMER5_H_ #define _TIMER5_H_ //#include "timer5.h" //==timer5 define===== #define TIM5_DIV1 (0<<4) #define TIM5_DIV8 (1<<4) #define TIM5_DIV64 (2<<4) #def

Linux0.11内核剖析--初始化程序(init)

1.概述 在内核源代码的 init/目录中只有一个 main.c 文件. 系统在执行完 boot/目录中的 head.s 程序后就会将执行权交给 main.c.该程序虽然不长,但却包括了内核初始化的所有工作.因此在阅读该程序的代码时需要参照很多其它程序中的初始化部分.如果能完全理解这里调用的所有程序,那么看完这章内容后你应该对Linux 内核有了大致的了解.从本文开始,我们将接触大量的 C 程序代码,因此读者最好具有一定的 C 语言知识.最好的一本参考书还是 Brian W. Kernighan

中颖SH79F1616 PWM初始化程序

//========pwm.h============================================= #ifndef _PWM_H_ #define _PWM_H_ #define EPWM0 (1<<0) //PWM0 输出允许 #define EPWM01 (1<<3) //PWM01 输出允许 //-----pwm 时钟分频---------- #define PWM_DIV PWM_DIV8 #define PWM_DIV2 0 #define PWM_

中颖SH79F1616 ADC初始化程序

//========c51adc.h============================================= #ifndef _C51ADC_H_ #define _C51ADC_H_ //ADC通道号定义 #define ADC_Chanel0 (0x00<<1) #define ADC_Chanel1 (0x01<<1) #define ADC_Chanel2 (0x02<<1) #define ADC_Chanel3 (0x03<<1

静态初始化程序(static initializer)

以前看过书上这样的写法.还不是很清楚为什么,今天在看了一遍<headfirst Java>才终于算是明白了. 正如静态变量,静态初始化程序(static initializer)是一段在加载类时会执行的程序代码,它会在其他程序可以使用该类之前就执行,所以很适合放静态final变量的起始程序. public class Hello { private final static int i; static{ i = 1; } // 等价于 // private final static int i

Zigbee系列 学习笔记三(初始化程序解析)

1 int main( void ) 2 { 3 // Turn off interrupts 4 osal_int_disable( INTS_ALL ); 5 6 // Initialization for board related stuff such as LEDs 7 HAL_BOARD_INIT(); 8 9 // Make sure supply voltage is high enough to run 10 zmain_vdd_check(); 11 12 // Initia