当前位置:文档之家› 基于FPGA的液晶显示控制电路源程序verilog

基于FPGA的液晶显示控制电路源程序verilog

基于FPGA的液晶显示控制电路源程序verilog
基于FPGA的液晶显示控制电路源程序verilog

课设程序

module lcd_display(CLK, RST, LCD_E, LCD_RS, LCD_RW, SF_CE0, LCD_DATA, CLR ); input CLK;

input RST;

input CLR;

output [3:0] LCD_DA TA;

output LCD_E;

output LCD_RS;

output LCD_RW;

output SF_CE0;

reg LCD_E ;

reg LCD_RS ;

reg [3:0] LCD_DATA;

reg [24:0] cnt_num;

reg [24:0] counter;

reg [5:0] state;

reg [5:0] next_state;

integer i;

parameter longth_1 = 17;

parameter longth = 15;

reg [3:0] mem [longth:0];

reg [3:0] char [longth_1:0];

initial begin

i = 0;

/*HuJiKang

It's easy*/

mem[0] = 4'h4;

mem[1] = 4'h8;

mem[2] = 4'h7;

mem[3] = 4'h5;

mem[4] = 4'h4;

mem[5] = 4'ha;

mem[6] = 4'h6;

mem[7] = 4'h9;

mem[8] = 4'h4;

mem[9] = 4'hb;

mem[10] = 4'h6;

mem[11] = 4'h1;

mem[12] = 4'h6;

mem[13] = 4'he;

mem[14] = 4'h6;

mem[15] = 4'h7;

char[0] = 4'h4;

char[1] = 4'h9;

char[2] = 4'h7;

char[3] = 4'h4;

char[4] = 4'h2;

char[5] = 4'h7;

char[6] = 4'h7;

char[7] = 4'h3;

char[8] = 4'hf;

char[9] = 4'he;

char[10] = 4'h6;

char[11] = 4'h5;

char[12] = 4'h6;

char[13] = 4'h1;

char[14] = 4'h7;

char[15] = 4'h3;

char[16] = 4'h7;

char[17] = 4'h9;

end

parameter idle = 6'b000000,

state1 = 6'd1, state2 = 6'd2, state3 = 6'd3, state4 = 6'd4,

state5 = 6'd5, state6 = 6'd6, state7 = 6'd7, state8 = 6'd8,

state9 = 6'd9, state10 = 6'd10, state11 = 6'd11, state12 = 6'd12,

state13 = 6'd13, state14 = 6'd14, state15 = 6'd15, state16 = 6'd16,

state17 = 6'd17, state18 = 6'd18, state19 = 6'd19, state20 = 6'd20,

state21 = 6'd21, state22 = 6'd22, state23 = 6'd23, state24 = 6'd24,

state25 = 6'd25, state26 = 6'd26, state27 = 6'd27, state28 = 6'd28,

state29 = 6'd29, state30 = 6'd30, state31 = 6'd31, state32 = 6'd32,

state33 = 6'd33, state34 = 6'd34, state35 = 6'd35, state36 = 6'd36,

state37 = 6'd37, state38 = 6'd38, state39 = 6'd39, state40 = 6'd40,

state41 = 6'd41, state42 = 6'd42, state43 = 6'd43, state44 = 6'd44,

state45 = 6'd45, state46 = 6'd46, state47 = 6'd47;

assign LCD_RW = 0; // Write data to lcd only

assign SF_CE0 = 0; //Disable the StrataFlash

always @ (posedge CLK or posedge RST)begin

if(RST)begin

state <= idle;

cnt_num <=25'd0;

end

else if(cnt_num == counter) begin

state <= next_state;

cnt_num <= 25'd0;

end

else cnt_num <= cnt_num + 1'b1;

end

always @ (posedge CLK or posedge RST)begin

if(RST)begin

next_state <= idle;

counter <= 25'd0;

end

else if(CLR) begin

next_state <= state20;

end

else begin

case (state)

idle: begin

next_state <= state1;

counter <= 25'd750000; //wait for 15ms LCD_E <= 0;

LCD_RS <= 0;

end

state1: begin

next_state <= state2;

LCD_E <= 1;

LCD_DATA <= 4'h3; // write 0x3; counter <= 25'd12; //hold for 12 clocks end

state2: begin

next_state <= state3;

LCD_E <= 0;

counter <= 25'd205000; //wait for 4.1ms end

state3: begin

next_state <= state4;

LCD_E <= 1;

LCD_DATA <= 4'h3; // write 0x3; counter <= 25'd12;//hold for 12 clocks end

state4: begin

next_state <= state5;

LCD_E <= 0;

counter <= 25'd5000;

end

state5: begin

next_state <= state6;

LCD_E <= 1;

LCD_DATA <= 4'h3;

counter <= 25'd12; //hold for 12 clocks end

state6: begin

next_state <= state7;

LCD_E <= 0;

counter <= 25'd2000; //wait for 40us end

state7: begin

next_state <= state8;

LCD_E <= 1;

LCD_DATA <= 4'h2; // write 0x2; counter <= 25'd12; //hold for 12 clocks end

state8: begin

next_state <= state9;

LCD_E <= 0;

counter <= 25'd2000;

end

LCD initial finished

config LCD 0X28

state9: begin

next_state <= state10;

LCD_E <= 1;

LCD_RS <= 0;

LCD_DATA <= 4'h2;

counter <= 25'd12;

end

state10: begin

next_state <= state11;

LCD_E <= 0;

counter <= 25'd50;

end

state11: begin

next_state <= state12;

LCD_E <= 1;

LCD_DATA <= 4'h8;

counter <= 25'd12;

end

state12: begin

next_state <= state13;

LCD_E <= 0;

counter <= 25'd2000; //wait for 40us end

Set entry mode 0x06

state13: begin

next_state <= state14;

LCD_E <= 1;

LCD_RS <= 0;

LCD_DATA <= 4'h0;

counter <= 25'd12;

nd

state14: begin

next_state <= state15;

LCD_E <= 0;

counter <= 25'd50;

end

state15: begin

next_state <= state16;

LCD_E <= 1;

LCD_DATA <= 4'h6;

counter <= 25'd12;

end

state16: begin

next_state <= state17;

LCD_E <= 0;

counter <= 25'd2000;

end

set display on, course off, blinking off 0x0c state17: begin

next_state <= state18;

LCD_E <= 1;

//LCD_RS <= 0;

LCD_DATA <= 4'h0;

counter <= 25'd12;

end

state18: begin

next_state <= state19;

LCD_E <= 0;

counter <= 25'd50;

end

state19: begin

next_state <= state20;

LCD_E <= 1;

LCD_DATA <= 4'hc;

counter <= 25'd12;

end

state20: begin

next_state <= state21;

LCD_E <= 0;

counter <= 25'd2000; //wait for 40us

end

/////////////// clear dispaly 0x01 //////////////// state21: begin

next_state <= state22;

LCD_E <= 1;

//LCD_RS <= 0;

LCD_DATA <= 4'h0;

counter <= 25'd12;

end

state22: begin

next_state <= state23;

LCD_E <= 0;

counter <= 25'd50; //wait for 1us

end

state23: begin

next_state <= state24;

LCD_E <= 1;

LCD_DATA <= 4'h1; // write 0x1;

counter <= 25'd12; //hold for 12 clocks

end

state24: begin

next_state <= state25;

LCD_E <= 0;

counter <= 25'd82000; //wait for 1.64ms

end

/////////////set DD RMA address 0x90 ////////////////// state25: begin

next_state <= state26;

LCD_E <= 1;

//LCD_RS <= 0;

LCD_DATA <= 4'h8;

counter <= 25'd12;

end

state26: begin

next_state <= state27;

LCD_E <= 0;

counter <= 25'd50; //wait for 1us

end

state27: begin

next_state <= state28;

LCD_E <= 1;

LCD_DATA <= 4'h0; // write 0x0;

counter <= 25'd12; //hold for 12 clocks

end

state28: begin

next_state <= state29;

LCD_E <= 0;

counter <= 25'd2000; //wait for 40us

end

///// send character "HuJiKang" /////////////////

state29: begin

if(i < longth) begin

next_state <= state30;

LCD_E <= 1;

LCD_RS <= 1;

LCD_DATA <= mem[i];

counter <= 25'd12;

end

else begin

next_state <= state34;

counter <= 25'd2000;

end

end

state30: begin

next_state <= state31;

LCD_E <= 0;

counter <= 25'd50;

end

state31: begin

next_state <= state32;

LCD_E <= 1;

LCD_DATA <= mem[i+1]; // write 0x3;

counter <= 25'd12; //hold for 12 clocks

end

state32: begin

next_state <= state33;

LCD_E <= 0;

counter <= 25'd2000; //wait for 40us

end

state33: begin

next_state <= state29;

i <= i + 1;

counter <= 25'd1;

end

/////// set DDRAM address 0xd0 /////////////////

state34: begin

i <= 0;

next_state <= state35;

LCD_E <= 1;

LCD_RS <= 0;

LCD_DATA <= 4'hd; // write 0xd;

counter <= 25'd12; //hold for 12 clocks

end

state35: begin

next_state <= state36;

LCD_E <= 0;

counter <= 25'd50; //wait for 1us

end

state36: begin

next_state <= state37;

LCD_E <= 1;

LCD_DATA <= 4'h0; // write 0x0;

counter <= 25'd12; //hold for 12 clocks

end

state37: begin

next_state <= state38;

LCD_E <= 0;

counter <= 25'd2000;

end

state38: begin

if(i < longth_1) begin

next_state <= state39;

LCD_E <= 1;

LCD_RS <= 1;

LCD_DATA <= char[i];

counter <= 25'd12;

end

else begin

next_state <= state43;

counter <= 25'd2000;

end

end

state39: begin

next_state <= state40;

LCD_E <= 0;

counter <= 25'd50;

end

state40: begin

next_state <= state41;

LCD_E <= 1;

LCD_DATA <= char[i+1];

counter <= 25'd12;

end

state41: begin

next_state <= state42; LCD_E <= 0;

counter <= 25'd2000;

end

state42: begin

next_state <= state38;

i <= i + 1;

counter <= 25'd1;

end

state43: begin

i <= 0;

next_state <= state44; LCD_E <= 1;

LCD_RS <= 0;

LCD_DATA <= 4'h1; counter <= 25'd12;

end

state44: begin

next_state <= state45; LCD_E <= 0;

counter <= 25'd50;

end

state45: begin

next_state <= state46; LCD_E <= 1;

LCD_DATA <= 4'h8; counter <= 25'd12;

end

state46: begin

next_state <= state47; LCD_E <= 0;

counter <= 25'd2000;

end

state47: begin

next_state <= state43; counter <= 25'd2*******; end

default: next_state <= idle; endcase

end

end

endmodule

基于FPGA的Verilog HDL数字钟设计 -

基于FPGA的Verilog HDL数字钟设计 专业班级姓名学号 一、实验目的 1.掌握可编程逻辑器件的应用开发技术——设计输入、编译、仿真和器件编程; 2.熟悉一种EDA软件使用; 3.掌握Verilog设计方法; 4.掌握分模块分层次的设计方法; 5.用Verilog完成一个多功能数字钟设计; 6.学会FPGA的仿真。 二、实验要求 ?功能要求: 利用实验板设计实现一个能显示时分秒的多功能电子钟,基本功能: 1)准确计时,以数字形式显示时、分、秒,可通过按键选择当前显示时间范围模式; 2)计时时间范围00:00:00-23:59:59 3)可实现校正时间功能; 4)可通过实现时钟复位功能:00:00:00 扩展功能: 5)定时报:时间自定(不要求改变),闹1分钟(1kHz)---利用板上LED或外接电路实现。 6)仿广播电台正点报时:XX:59:[51,53,55,57(500Hz);59(1kHz)] ---用板上LED或外接 7)报整点时数:XX:00:[00.5-XX.5](1kHz),自动、手动---用板上LED或外接 8)手动输入校时; 9)手动输入定时闹钟; 10)万年历; 11)其他扩展功能; ?设计步骤与要求: 1)计算并说明采用Basys2实验板时钟50MHz实现系统功能的基本原理。 2)在Xilinx ISE13.1 软件中,利用层次化方法,设计实现模一百计数及显示的电路系 统,设计模块间的连接调用关系,编写并输入所设计的源程序文件。 3)对源程序进行编译及仿真分析(注意合理设置,以便能够在验证逻辑的基础上尽快 得出仿真结果)。 4)输入管脚约束文件,对设计项目进行编译与逻辑综合,生成下载所需.bit文件。 5)在Basys2实验板上下载所生成的.bit文件,观察验证所设计的电路功能。

高速电路设计的经典案例

该文章版权归 smarteebit 所有。若有疑问,请联系 songmin2@https://www.doczj.com/doc/755947500.html,
高速数字设计的经典案例若干则
【摘要】 随着这些年半导体工艺突飞猛进的发展, “高速数字设计”对广大硬件工程师来说,已经不再是一 个陌生的词。从航空、雷达到汽车电子,从无线通信到有线接入,甚至在一些低端的嵌入式系统上,高 速数字电路都已经在大行其道。 目前行业内已经有不少关于高速数字电路理论的好文章, 笔者就不在这 上面掺和了。 本文着眼于理论和实际相结合, 所用的素材都来自笔者亲历过的案例, 相信活生生的事实, 比空洞的理论更有说服力,也希望能使入行不久的硬件工程师们得到他们想要的信息,今后少走弯路。 由于不会对理论作过多的阐述, 因此, 本文的阅读对象应该具有一点点高速数字设计的理论基础, 请知。 【关键词】 高速数字设计 高速数字电路 案例
1 信号完整性
什么词汇在高速数字设计中出现得最多?对了,SI(Signal Integrity),也就是信号完整性。信 号完整性问题的表现形式多种多样,主要有如下种类:
图 1 过冲(OVERSHOOT)
图 2 振铃(RING)
图 3 非单调性(NON MONOTONIC)
过冲: 当较快的信号沿驱动一段较长的走线, 而走线拓扑上又没有有效的匹配时, 往往会产生过冲。 过冲带来的问题主要是“1”电平高于接收端器件的输入最大电压值(VIHmax),或“0”电平低于接收端 器件的输入最小电压值(VILmin),这样可能给器件带来潜在的累积性伤害,缩短其工作寿命,从而影响 产品的长期稳定性。
Smarteebit
Page 1 of 17

数字电路设计实例

数字电路综合设计案例 8.1 十字路口交通管理器 一、要求 设计一个十字路口交通管理器,该管理器自动控制十字路口两组红、黄、绿三色交通灯,指挥各种车辆和行人安全通过。 二、技术指标 1、交通管理器应能有效操纵路口两组红、黄、绿灯,使两条交叉道路上的车辆交替通行,每次通行时间按需要和实际情况设定。 2、在某条道路上有老人、孩子或者残疾人需要横穿马路时,他们可以举旗示意, 执勤人员按动路口设置的开关,交通管理器接受信号,在路口的通行方向发生转换时,响应上述请求信号,让人们横穿马路,这条道上的车辆禁止通行,即管理这条道路的红灯亮。 3、横穿马路的请求结束后,管理器使道口交通恢复交替通行的正常状态。 三、设计原理和过程: 本课题采用自上而下的方法进行设计。 1.确定交通管理器逻辑功能 ⑴、十字路口每条道路各有一组红、黄、绿灯,用以指挥车辆和行人有序地通行。其中红灯亮表示该条道路禁止通行;黄灯亮表示停车;绿灯亮表示通行。因此,十字路口车辆运行情况有以下几种可能: ①甲道通行,乙道禁止通行; ②甲道停车线以外的车辆禁止通行(必须停车),乙道仍然禁止通行,以便让甲道停车线以内的车辆安全通过; ③甲道禁止通行,乙道通行; ④甲道仍然不通行,乙道停车线以外的车辆必须停车,停车线以内的车辆顺利通行。 ⑵、每条道路的通车时间(也可看作禁止通行时间)为30秒~2分钟,可视需要和实际情况调整,而每条道路的停车时间即黄灯亮的时间为5秒~10秒,且也可调整。 ⑶、响应老人、孩子或残疾人特殊请求信号时,必须在一次通行—禁止情况完毕后, 阻止要求横穿的那条马路上车辆的通行。换句话说,使另一条道路增加若干通行时间。 设S1和S2分别为请求横穿甲道和乙道的手控开关,那么,响应S1或S2的时间必定在甲道通乙道禁止或甲道禁止乙道通两种情况结束时,且不必过黄灯的转换。这种规定是为了简化设计。 由上述逻辑功能,画出交通管理器的示意图如图8-1所示,它的简单逻辑流程图如图8-2所示。示意图中甲道的红、黄、绿灯分别用R、Y、G表示,而乙道的红、黄、绿灯分别用r、y、g表示。简单逻辑流程图中设定通行(禁止)时间为60秒,停车时间为10秒。

(完整版)Verilog实现的基于FPGA的五层楼电梯运行控制逻辑毕业设计论文

五层楼电梯运行控制逻辑设计 摘要:电梯是高层建筑不可缺少的运输工具,用于垂直运送乘客和货物,传统的电梯控制系统主要采用继电器,接触器进行控制,其缺点是触点多,故障率高、可靠性差、维修工作量大等,本设计根据电梯自动控制的要求利用Verilog语言编写并完成系统设计,在利用软件仿真之后,下载到了FPGA上进行硬件仿真。FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了之前的可编程器件门电路数有限及速度上的缺点。 关键词:电梯控制FPGA Verilog软件设计硬件设计 在当今社会,随着城市建设的不断发展,高层建筑的不断增多,电梯作为高层建筑中垂直运行的交通工具已与人们的日常生活密不可分。目前电梯控制系统主要有三种控制方式:继电路控制系统(早期安装的电梯多位继电器控制系统),FPGACPLD [1] 的控制系统、微机控制系统。继电器控制系统由于故障率高、可靠性差、控制方式不灵活以及消耗功率大等缺点,目前已逐渐被淘汰,而微机控制系统虽在智能控制方面有较强的功能,但也存在抗扰性差,系统设计复杂,一般维修人员难以掌握其维修技术等缺陷。而FPGACPLD控制系统由于运行可靠性高,使用维修方便,抗干扰性强,设计和调试周期较短等优点 [2] ,倍受人们重视等优点,已经成为目前在电梯控制系统中使用最多的控制方式,目前也广泛用于传

统继电器控制系统的技术改造。 随着现代化城市的高度发展,每天都有大量人流及物流需要输送,因此在实际工程应用中电梯的性能指标相当重要,主要体现在:可靠性,安全性,便捷快速性。电梯的可靠性非常重要,直接或间接的影响着人们的生产,生活,而电梯的故障主要表现在电力拖动控制系统中,因此要提高可靠性也要从电力拖动控制系统入手。 本次设计尝试用Verilog实现电梯控制器部分,进行了多层次的电梯控制,也进行了软件及硬件上的仿真验证,时序分析以保证设计的正确。在设计中先用软件进行模拟仿真,然后又下载到FPGA开发板上进行硬件仿真,以确保设计的正确性。 1电梯的设计分析 1.1 系统的需求分析及系统描述 设计一个电梯运行控器,该电梯有5层楼,设计的电梯调度算法满足提高服务质量、降低运行成本的原则;电梯的内部有一个控制面板,它负责按下请求到的楼层,并且显示当前尚未完成的目的地请求,当到达该楼层以后自动撤销本楼层的请求,即将面板灯熄灭;除1层和5层分别只有上和下按钮外,其余每个楼层(电梯门口旁)的召唤面板都有两个按钮,分别指示上楼和下楼请求。当按下后,对应按钮灯亮。如果电梯已经到达该楼层,按钮灯熄灭;电梯的外部面板会显示电梯当前所在的楼层,及上行还是下行(暂停显示刚才运行时的状态);电梯向一个方向运行时,只对本方向前方的请求进行应答,直到本方向前方无请求时,才对反方向的请求进行应答。当前内部控制面板上有的请求,只要经过所在楼层均会立即响应.

基于FPGA的verilog的电子密码锁设计

一、概述 1.1 电子密码锁的现状 随着我国对外开放的不断深入,高档建筑发展很快,高档密码锁具市场的前景乐观。我国密码锁具行业对密码锁具高新技术的投入正逐年增大,高档密码锁的市场需求也逐年增加。在安防工程中,锁具产品是关系到整个系统安全性的重要设备,所以锁具产品的优劣也关系了整个安防工程的质量和验收。 目前,市场上比较先进的智能电子密码锁分别有:IC卡电子密码锁、射频卡式电子密码锁、红外遥控电子密码锁、指纹识别电子密码锁和瞳孔识别电子密码锁等。IC卡电子密码锁成本低,体积小,卡片本身无须电源等优点占领了一定的市场份额,但是由于有机械接触,会产生接触磨损,而且使用不太方便,在一定程度上限制了它的应用;射频卡式电子密码锁是非接触式电子密码锁,成本也不太高,体积跟IC卡密码锁相当,卡片使用感应电源,重量很轻,技术成熟,受到了广泛的欢迎,但是与IC卡电子密码锁相比,成本偏高;指纹识别电子密码锁和瞳孔识别电子密码锁可靠性很高,安全性是目前应用系统中最高的,但是成本高昂,还没进入大众化使用阶段。 在国外,美国、日本、德国的电子密码锁保密性较好,并结合感应卡技术,生物识别技术,使电子密码锁系统得到了飞跃式的发展。这几个国家的密码锁识别的密码更复杂,并且综合性比较好,已经进入了成熟期,出现了感应卡式密码锁,指纹式密码锁,虹膜密码锁,面部识别密码锁,序列混乱的键盘密码锁等各种技术的系统,它们在安全性,方便性,易管理性等方面都各有特长,新型的电子密码锁系统的应用也越来越广。 基于FPGA的电子密码锁是新型现代化安全管理系统,它集微机自动识别技术和现代安全管理措施为一体,它涉及电子,机械,计算机技术,通讯技术,生物技术等诸多新技术。它是解决重要部门出入口实现安全防范管理的有效措施,适用各种场合,如银行、宾馆、机房、军械库、机要室、办公间、智能化小区、工厂、家庭等。 在数字技术网络技术飞速发展的今天,电子密码锁技术得到了迅猛的发展。它早已超越了单纯的门道及钥匙管理,逐渐发展成为一套完整的出入管理系统。它在工作环境安全、人事考勤管理等行政管理工作中发挥着巨大的作用。在该系统的基础上增加相应的辅助设备可以进行电梯控制、车辆进出控制,物业消防监控、餐饮收费、私家车库管理等,真正实现区域内一卡智能管理。

基于FPGA的VerilogHDL数字钟设计

基于FPGA的Verilog-HDL数字钟设计--

————————————————————————————————作者:————————————————————————————————日期:

基于FPGA的Verilog HDL数字钟设计 专业班级姓名学号 一、实验目的 1.掌握可编程逻辑器件的应用开发技术——设计输入、编译、仿真和器件编程; 2.熟悉一种EDA软件使用; 3.掌握Verilog设计方法; 4.掌握分模块分层次的设计方法; 5.用Verilog完成一个多功能数字钟设计; 6.学会FPGA的仿真。 二、实验要求 功能要求: 利用实验板设计实现一个能显示时分秒的多功能电子钟,基本功能: 1)准确计时,以数字形式显示时、分、秒,可通过按键选择当前显示时间范围模式; 2)计时时间范围00:00:00-23:59:59 3)可实现校正时间功能; 4)可通过实现时钟复位功能:00:00:00 扩展功能: 5)定时报:时间自定(不要求改变),闹1分钟(1kHz)---利用板上LED或外接电路实现。 6)仿广播电台正点报时:XX:59:[51,53,55,57(500Hz);59(1kHz)] ---用板上LED或外接 7)报整点时数:XX:00:[00.5-XX.5](1kHz),自动、手动---用板上LED或外接

8)手动输入校时; 9)手动输入定时闹钟; 10)万年历; 11)其他扩展功能; 设计步骤与要求: 1)计算并说明采用Basys2实验板时钟50MHz实现系统功能的基本原理。 2)在Xilinx ISE13.1 软件中,利用层次化方法,设计实现模一百计数及显示的电路系 统,设计模块间的连接调用关系,编写并输入所设计的源程序文件。 3)对源程序进行编译及仿真分析(注意合理设置,以便能够在验证逻辑的基础上尽快 得出仿真结果)。 4)输入管脚约束文件,对设计项目进行编译与逻辑综合,生成下载所需.bit文件。 5)在Basys2实验板上下载所生成的.bit文件,观察验证所设计的电路功能。 三、实验设计 功能说明:实现时钟,时间校时,闹铃定时,秒表计时等功能 1.时钟功能:完成分钟/小时的正确计数并显示;秒的显示用LED灯的闪烁做指示; 时钟利用4位数码管显示时分; 2.闹钟定时:实现定时提醒及定时报时,利用LED灯代替扬声器发出报时声音; 3.时钟校时:当认为时钟不准确时,可以分别对分钟和小时位的值进行调整; 4.秒表功能:利用4个数码管完成秒表显示:可以实现清零、暂停并记录时间等功能。 秒表利用4位数码管计数; 方案说明:本次设计由时钟模块和译码模块组成。时钟模块中50MHz的系统时钟clk分频产

Saber常见电路仿真实例

Saber常见电路仿真实例 一稳压管电路仿真 (2) 二带输出钳位功能的运算放大器 (3) 三5V/2A的线性稳压源仿真 (4) 四方波发生器的仿真 (7) 五整流电路的仿真 (10) 六数字脉冲发生器电路的仿真 (11) 七分频移相电路的仿真 (16) 八梯形波发生器电路的仿真 (17) 九三角波发生器电路的仿真 (18) 十正弦波发生器电路的仿真 (20) 十一锁相环电路的仿真 (21)

一稳压管电路仿真 稳压管在电路设计当中经常会用到,通常在需要控制电路的最大输入、输出或者在需要提供精度不高的电压参考的时候都会使用。下面就介绍一个简单例子,仿真电路如下图所示: 在分析稳压管电路时,可以用TR分析,也可以用DT分析。从分析稳压电路特性的角度看,DT分析更为直观,它可以直接得到稳压电路输出与输入之间的关系。因此对上面的电路执行DT分析,扫描输入电压从9V到15V,步长为0.1V,分析结果如下图所示: 从图中可以看到,输入电压在9~15V变化,输出基本稳定在6V。需要注意的是,由于Saber仿真软件中的电源都是理想电源,其输出阻抗为零,因此不能直接将电源和稳压管相连接,如果直接连接,稳压管将无法发挥作用,因为理想电源能够输

出足以超出稳压管工作范围的电流。 二带输出钳位功能的运算放大器 运算放大器在电路设计中很常用,在Saber软件中提供了8个运放模板和大量的运放器件模型,因此利用Saber软件可以很方便的完成各种运方电路的仿真验证工作.如下图所示的由lm258构成的反向放大器电路,其放大倍数是5,稳压二极管1N5233用于钳位输出电压. 对该电路执行的DT分析,扫描输入电压从-2V->2V,步长为0.1V,仿真结果如下图所示:

基于FPGA的SDRAM实验Verilog源代码

// megafunction wizard: %ALTPLL% // GENERATION: STANDARD // VERSION: WM1.0 // MODULE: altpll // ============================================================ // File Name: clk_ctrl.v // Megafunction Name(s): // altpll // // Simulation Library Files(s): // altera_mf // ============================================================ // ************************************************************ // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! // // 11.0 Build 208 07/03/2011 SP 1 SJ Full Version // ************************************************************ //Copyright (C) 1991-2011 Altera Corporation //Your use of Altera Corporation's design tools, logic functions //and other software and tools, and its AMPP partner logic //functions, and any output files from any of the foregoing //(including device programming or simulation files), and any //associated documentation or information are expressly subject //to the terms and conditions of the Altera Program License //Subscription Agreement, Altera MegaCore Function License //Agreement, or other applicable license agreement, including, //without limitation, that your use is for the sole purpose of //programming logic devices manufactured by Altera and sold by //Altera or its authorized distributors. Please refer to the //applicable agreement for further details. // synopsystranslate_off `timescale 1 ps / 1 ps // synopsystranslate_on moduleclk_ctrl ( areset, inclk0, c0, c1, c2,

射频电路设计实例以及一些经常遇见的问

射频电路设计实例以及一些经常遇见的问射频电路设计很多人都会,那么你知道它的一些注意事项吗?在实际电路设计中,会遇到各种奇怪的问题,这就需要自己通过实践来积攒经验。真正实用的技巧是当这些准则和法则因各种设计约束而无法准确地实施时如何对它们进行折衷处理。当然,有许多重要的RF设计课题值得讨论,包括阻抗和阻抗匹配、绝缘层材料和层叠板以及波长和驻波等,在全面掌握各类设计原则前提下的仔细规划是一次性成功设计的保证。 一、RF电路设计的常见问题 1、数字电路模块和模拟电路模块之间的干扰 如果模拟电路(射频)和数字电路单独工作,可能各自工作良好。但是,一旦将二者放在同一块电路板上,使用同一个电源一起工作,整个系统很可能就不稳定。 这主要是因为数字信号频繁地在地和正电源(>3 V)之间摆动,而且周期特别短,常常是纳秒级的。由于较大的振幅和较短的切换时间。使得这些数字信号包含大量且独立于切换频率的高频成分。在模拟部分,从无线调谐回路传到无线设备接收部分的信号一般小于lμV。因此数字信号与射频信号之间的差别会达到120 dB。显然.如果不能使数字信号与射频信号很好地分离。微弱的射频

信号可能遭到破坏,这样一来,无线设备工作性能就会恶化,甚至完全不能工作。 2、供电电源的噪声干扰 射频电路对于电源噪声相当敏感,尤其是对毛刺电压和其他高频谐波。微控制器会在每个内部时钟周期内短时间突然吸人大部分电流,这是由于现代微控制器都采用CMOS工艺制造。因此,假设一个微控制器以lMHz的内部时钟频率运行,它将以此频率从电源提取电流。如果不采取合适的电源去耦,必将引起电源线上的电压毛刺。如果这些电压毛刺到达电路RF部分的电源引脚,严重时可能导致工作失效。 3、不合理的地线 如果RF电路的地线处理不当,可能产生一些奇怪的现象。对于数字电路设计,即使没有地线层,大多数数字电路功能也表现良好。而在RF频段,即使一根很短的地线也会如电感器一样作用。粗略地计算,每毫米长度的电感量约为l nH,433 MHz时10 toni PCB线路的感抗约27Ω。如果不采用地线层,大多数地线将会较长,电路将无法具有设计的特性。 4、天线对其他模拟电路部分的辐射干扰 在PCB电路设计中,板上通常还有其他模拟电路。 例如,许多电路上都有模,数转换(ADC)或数/模转换器(DAC)。射频发送器的天线发出的高频信号可能会到达ADC的模拟淙攵恕R蛭魏蔚缏废呗范伎赡苋缣煜咭谎⒊龌蚪邮誖F信号。如果ADC输入端的处理不合理,RF信号可能在ADC输入的ESD二极管内自激。从而引起ADC偏差。 二、五大经验总结 1、射频电路布局原则 在设计RF布局时,必须优先满足以下几个总原则: (1)尽可能地把高功率RF放大器(HPA)和低噪音放大器(LNA)隔离开来,简单地说,就是让高功率RF发射电路远离低功率RF接收电路;

基于FPGA的verilog频率计设计

电子科技大学 (基于FPGA的频率计设计) 题目:简易频率计的设计 指导教师:皇晓辉 姓名:张旗 学号:2905201003 专业:光电学院一专业

摘要 本文主要介绍了基于FPGA 的简易多量程频率计的设计,使用硬件描述语言verilog来实现对硬件的控制,在软件ISE上实现编程的编译综合,在系统时钟48Mhz下可正常工作。该数字频率计采用测频的方法,能准确的测量频率在10Hz到100MHz之间的信号。使用ModelSim仿真软件对Verilog程序做了仿真,并完成了综合布局布线,通过ISE下载到Spartan3A开发板上完成测试。 关键词:FPGA ,verilog,ISE,测频方法

Abstract This paper mainly introduces the simple more range based on FPGA design of frequency meter,Use hardware description language verilog to realize the control of hardware,In the software realize the compilation of the programming ISE on comprehensive,In the system clock can work normally under 48 Mhz。The digital frequency meter frequency measurement method used, can accurate measurement frequency in 10 Hz to 100 MHz of signals between。Use ModelSim simulation software Verilog program to do the simulation, and completed the overall layout wiring,Through the ISE downloaded to Spartan3A development board complete test。 Keywords: FPGA, Verilog, ISE, F requency M easurement

基于FPGA的DS18B20控制程序设计及其Verilog实现(汇编)

基于FPGA的DS18B20控制程序设计及其Verilog实现 一,总体介绍 DS18B20是一个1-wire总线,12bit的数字温度传感器,其详细的参数这里不做具体的介绍,只讨论其基于Verilog的控制程序的设计。 实际上,对DS18B20的控制,主要是实现1-wire总线的初始化,读,写等操作,然后再根据DS18B20的控制要求,实现对其控制的verilog逻辑。 在1-Wire总线上,有一个master,可以有1个或者多个slave。而对于FPGA+DS18B20的温度测试设计来讲,需要在FPGA上实现一个1-Wire总线的master。DS18B20作为1-wire 总线的slave设备存在,可以有一个或者多个,不过为了简化程序,例程里假定只存在一个DS18B2020。 1-Wire总线的操作形式上相对简单,但操作本身相对却又比较复杂。用Verilog做控制程序设计时,可以采用多层次嵌套的状态机来实现。 二,FPGA + DS18B20的硬件设计 硬件的设计非常简单,只需要将DS18B20的DQ与FPGA的一个IO连接,并加4.7K左右的上拉电阻就可以了。VDD和VPU可以为3.0~5.0V。这里我们参照FPGA本身的IO电压,选择3.3V。 另外要注意的一点是,由于DQ的数据是双向的,所以FPGA的该IO要设定为inout类型。 三,1-Wire总线的基本操作及Verilog实现。 根据1-Wire总线的特点,可以把1-Wire总线的操作归结为初始化,单bit读操作,单bit写操作等最基础的几种。下面分别是几种基本操作的介绍和verilog实现。由于DS18B20的时序操作的最小单位基本上是1us,所以在该设计中,全部采用1MHz的时钟。 1. 初始化 初始化实际上就是1-wire总线上的Reset操作。由master发出一定长度的初始化信号。Slave 看到该初始化信号后,在一定时间内发出规定长度的响应信号,然后初始化操作就结束了。下图是DS18B20的datasheet上给出的初始化的时序要求图示。

基于FPGA的I2C实验Verilog源代码

`timescale 1ns / 1ps module i2c_drive( clk,rst_n, sw1,sw2, scl,sda, dis_data ); input clk; // 50MHz input rst_n; //复位信号,低有效 input sw1,sw2; //按键1、2,(1按下执行写入操作,2按下执行读操作) output scl; // 24C02的时钟端口 inout sda; // 24C02的数据端口 output [7:0] dis_data; //输出指定单元的数据 //-------------------------------------------- //按键检测 reg sw1_r,sw2_r; //键值锁存寄存器,每20ms检测一次键值 reg[19:0] cnt_20ms; //20ms计数寄存器 always @ (posedge clk or negedge rst_n) if(!rst_n) cnt_20ms <= 20'd0; else cnt_20ms <= cnt_20ms+1'b1; //不断计数 always @ (posedge clk or negedge rst_n) if(!rst_n) begin sw1_r <= 1'b1; //键值寄存器复位,没有键盘按下时键值都为1 sw2_r <= 1'b1; end else if(cnt_20ms == 20'hfffff) begin sw1_r <= sw1; //按键1值锁存 sw2_r <= sw2; //按键2值锁存 end //--------------------------------------------- //分频部分 reg[2:0] cnt; // cnt=0:scl上升沿,cnt=1:scl高电平中间,cnt=2:scl下降沿,cnt=3:scl低电平中间 reg[8:0] cnt_delay; //500循环计数,产生iic所需要的时钟

基于FPGA的四路抢答器的Verilog HDL代码

module qiangda4(clk,clr,inputEn,add,stu,inputL1,inputL2,inputL3,inputL4,Led1,Led2,Led3,B uzzer); // 开始声明各个端口 //输入口 input clk,clr,inputEn,add,stu,inputL1,inputL2,inputL3,inputL4; //输出口 output [0:7] Led1; //倒计时时使用的LED控制端 output [0:7] Led2; //数码管控制端 output [0:7] Led3; //分数显示数码管控制端 output Buzzer; //蜂鸣器 //各个寄存器变量声明 reg [0:7] Led1; reg [0:7] Led2; reg [0:7] Led3; reg cnt=32'b0; reg Buzzer; reg score=4’hf;//分数显示寄存器 //配置寄存器,EnFlat是表明开始抢答的标志位 reg EnFlat=1'b0; //BuClk是蜂鸣器的标志位 reg BuClk=1'b0; //BuL是做蜂鸣器的延时用 reg [0:7]BuL=8'd0; //抢答选手标志位 reg answer=3’d0; //各组分数标志位 reg score1=4’d5; reg score2=4’d5; reg score3=4’d5; reg score4=4’d5; //------------初始化模块--------------- always @ (posedge clk)//捕捉时钟 begin //初始化各按键并开始抢答 begin if(inputEn==1'b0) begin //初始化各个标志位和参数

电子电路分析实例

电子电路分析实例 Final revision by standardization team on December 10, 2020.

一款简单的恒流源电路图 如下图是一款简单的恒流源电路图,在该电路中:当±v,R b2、Rtii和Re被确定之后,c就被确定了,在一定范围内与负载电阻RL的大小无关,只要使管子的V伸工作在晶体管输出特性曲线的平坦部分,就可以保持Jc的不变。 (VT,Re反馈网络起到稳压) 1kHz低频载波振荡电路 所示的振荡电路设计在1 kHz载波振荡频率上,负载是影响尽量小的电压放大桥式振荡器,为了简化电路,使用两个2SB75晶体管,电源电压为12 V。 一个振荡器必须包括三部分:放大器、正反馈电路和选频网络。放大器能对振荡器输入端所加的输入信号予以放大使输出信号保持恒定的数值。正反馈电路保证向振荡器输入端提供的反馈信号是相位相同的,只有这样才能使振荡维持下去。选频网络则只允许某个特定频率 f 0 能通过,使振荡器产生单一频率的输出。 低频电压放大器 低频电压放大器是指工作频率在 20 赫~ 20 千赫之间、输出要求有一定电压值而不要求很强的电流的放大器。 ( 1 )共发射极放大电路 图 1 ( a )是共发射极放大电路。 C1 是输入电容, C2 是输出电容, VT 就是起放大作用的器件, RB 是基极偏置 ,RC 是集电极负载电阻。 1 、 3 端是输入, 2 、 3 端是输出。 3 端是公共点,通常是接地的,也称“地”端。静态时的直流通路见图 1

( b ),动态时交流通路见图 1 ( c )。电路的特点是电压放大倍数从十几到一百多,输出电压的相位和输入电压是相反的,性能不够稳定,可用于一般场合。 ( 2 )分压式偏置共发射极放大电路 图 2 比图 1 多用 3 个元件。基极电压是由 RB1 和 RB2 分压取得的,所以称为分压偏置。发射极中增加电阻 RE 和电容 CE , CE 称交流旁路电容,对交流是短路的; RE 则有直流负反馈作用。所谓反馈是指把输出的变化通过某种方式送到输入端,作为输入的一部分。如果送回部分和原来的输入部分是相减的,就是负反馈。图中基极真正的输入电压是 RB2 上电压和 RE 上电压的差值,所以是负反馈。由于采取了上面两个措施,使电路工作稳定性能提高,是应用最广的放大电路。 LC 振荡器 LC 振荡器的选频网络是 LC 谐振电路。它们的振荡频率都比较高,常见电路有 3 种。( 1 )变压器反馈 LC 振荡电路 图 1 ( a )是变压器反馈 LC 振荡电路。晶体管 VT 是共发射极放大器。变压器 T 的初级是起选频作用的 LC 谐振电路,变压器 T 的次级向放大器输入提供正反馈信号。接通电源时, LC 回路中出现微弱的瞬变电流,但是只有频率和回路谐振频率 f 0 相同的电流才能在回路两端产生较高的电压,这个电压通过变压器初次级 L1 、 L2 的耦合又送回到晶体管 V 的基极。从图 1 ( b )看到,只要接法没有错误,这个反馈信号电压是和输入信号电压相位相同的,也就是说,它是正反馈。因此电路的振荡迅速加强并最后稳定下来。

FPGA基于verilog HDL的密码锁

EDA课程设计 课设名称:密码锁 课设日期: 2014.6.23——7.5 姓名:陈飞 学号:110250101 哈尔滨工业大学(威海) 信电学院电子信息工程 2014.6

一. 所用软件与硬件介绍 1.1所用软件介绍 QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD 设计流程。 QuartusII可以在XP、Linux以及Unix上使用,除了可以使用TCL脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。 QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。 此外,QuartusII 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对MaxplusII 的更新支持,QuartusII 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在QuartusII 中包含了许多诸如SignalTapII、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了MaxplusII 友好的图形界面及简便的使用方法。 1.2所用硬件介绍 硬件的总体设计: 故由上图,将整个硬件电路部分主要分成五个部分,即:FPGA电路设计,数码管显示驱动电路设计,温度传感器电路设计,报警电路设计,键盘矩阵

基于FPGA的洗衣机控制器 verilog hdl 语言描述的设计与开发.doc

编号: 1 电机控制综合课程设计 报告书 课题:基于FPGA的洗衣机控制器 院(系):机电工程学院 专业:电气工程及其自动化 学生姓名:蒋岷君 学号:0800120313 题目类型:?理论研究?实验研究?工程设计?工程技术研究?软件开发 2011 年7月6 日

前言 一、洗衣机控制器主要内容 l.任务要求和内容 设计制作一个洗衣机的正反转定时控制线路。 1)控制洗衣机的电机作如下运转 定时开始――正转10S――暂停5S――反转10S――暂停5S――定时到停止 定时未到 2)用2位七段数码管显示定时时间(S)。 2.洗衣机控制器的使用步骤: (1)电路上电后,在Start拨码开关未闭合前可以由UpKey和DownKey按键开关“+”“-”设置总的工作时间,确定洗衣机控制器工作允许时间。 (2)设定好允许工作时间后,闭合Start开关,洗衣机控制器开始工作。 (3)可以看见指示正转LED灯亮10s,停转LED灯亮5S,反转LED灯亮10s,停转LED亮5s,如此反复直至工作允许时间为0,蜂鸣器发出警报。 二、设计原理简介 洗衣机控制器的设计主要是时序控制和定时器的设计,由一片FPGA和外围电路构成电器控制部分。FPGA接收键盘的控制命令,控制洗衣机的正转、反转、停机和定时时间为0报警的工作状态、控制并显示工作状态以及显示定时时间。对FPGA芯片的编程采用模块化的Verilog HDL (硬件描述语言)进行设计,设计由分频模块,按键消抖模块,定时时间自减模块,时序中心控制模块,数码管显示模块组成,顶层实现整个芯片的功能。顶层使用原理图实现,底层由Verilog HDL语句实现。 FPGA的输入时钟为20M hz,因此使用了分频模块输出1hz的方波给定时器设定自减模块提供每1s自减1的信号,定时器模块输出的自减值输入给数码管显示译码模块和时序控制模块,通过译码模块定时器的值可以在数码管上显示,同时定时器的值输入到时序控制模块由此可以控制洗衣机的正转、反转、停机和报警工作方式。通过按键消抖模块可以准确无抖动的设定定时器的工作时间。

利用Verilog HDL实现基于FPGA的分频方法

利用Verilog HDL实现基于FPGA的分频方法 许文建,陈洪波,李晓 中国矿业大学信息与电气工程学院,江苏徐州(221008) E-mail:bachelor122@https://www.doczj.com/doc/755947500.html, 摘要:本文从实际应用出发,分别介绍了利用Verilog HDL硬件语言实现的整数和半整数分频的通用方法。并在Quartus II软件环境下,利用Altera 公司的ACEX1K系列器件进行了仿真和调试。 关键词:Verilog HDL;分频;FPGA 1. 引言 在复杂数字逻辑电路设计中,经常会用到多个不同的时钟信号。一般可分为奇数、偶数、半整数分频。本文首先简要介绍了FPGA 器件的特点和应用范围。接着分别介绍了整数和分数分频的常用方法,并在QuartusII开发软件下,利用Verilog硬件描述语言来设计数字逻辑电路。 在数字逻辑电路设计中,分频器是一种基本电路。我们常会遇到偶数分频、奇数分频、半整数分频等,在同一个设计中有时要求多种形式的分频。通常由计数器或计数器的级联构成各种形式的偶数分频和奇数分频,实现较为简单。但对半整数分频分频实现较为困难。 FPGA(Field programmable Gates Array,现场可编程门阵列)【1】都是可编程逻辑器件,它们是在PAL、GAL 等逻辑器件基础上发展起来的。同以往的PAL、GAL 相比,FPGA/CPLD 的规模比较大,适合于时序、组合等逻辑电路的应用。它可以替代几十甚至上百块通用IC 芯片。这种芯片具有可编程和实现方案容易改动等特点。由于芯片内部硬件连接关系的描述可以存放在磁盘、ROM、PROM、或EPROM 中,因而在可编程门阵列芯片及外围电路保持不动的情况下,换一块EPROM 芯片,就能实现一种新的功能。它具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及实时在检验等优点,因此,可广泛应用于产品的原理设计和产品生产之中。几乎所有应用门阵列、PLD 和中小规模通用数字集成电路的场合均可应用FPGA 和CPLD 器件。在现代电子系统中,数字系统所占的比例越来越大。系统发展的趋势是数字化和集成化,而FPGA 作为可编程ASIC(专用集成电路)器件,它将在数字逻辑系统中发挥越来越重要的作用。 2. 整数分频原理 整数分频包括偶数分频和奇数分频,对于偶数N分频,通常是由模N/2 计数器实现一个占空比为1:1的N分频器,分频输出信号模N/2 自动取反。对于奇数N 分频,上述方法就不适用了,N奇数分频,要使占空比为50%,以如下思路实现: 1、以原时钟周期的N倍作为一个处理周期;(用计数器计数的作用) 2、生成占空比为N2 :N2+1(除法取整)的波形;(以计数器值采样) 3、将B生成的波形相移原时钟的半个周期;(用负沿打的作用) 4、若高电平占N2宽,输出将B和C的波形相或;若高电平占N2+1宽,输出将B和C 的波形相与 下面分别以两个程序分别介绍偶数和奇数分频方法:

基于FPGA与PC串口自收发通信-Verilog

FPGA与PC串口自收发通信 实现的功能如题,就是FPGA里实现从PC接收数据,然后把接收到的数据发回去。 使用的是串口UART协议进行收发数据。上位机用的是通用的串口调试助手。 发送数据的波特率可选9600bps,19200bps,38400bps,57600bps,115200bps等,是可调的。发送格式为:1bit起始位,8bit数据,1bit停止位,无校验位。 以下的代码有比较详细的注释,经过下载验证,存在误码率(<5%),仅供学习!代码如下: (顶层模块): module my_uart_top(clk,rst_n,rs232_rx,rs232_tx); input clk; // 50MHz主时钟 input rst_n; //低电平复位信号 input rs232_rx; // RS232接收数据信号 output rs232_tx; // RS232发送数据信号 wire bps_start; //接收到数据后,波特率时钟启动信号置位 wire clk_bps; // clk_bps的高电平为接收或者发送数据位的中间采样点 wire[7:0] rx_data;

//接收数据寄存器,保存直至下一个数据来到 wire rx_int; //接收数据中断信号,接收到数据期间始终为高电平 //---------------------------------------------------- speed_select speed_select( .clk(clk), //波特率选择模块,接收和发送模块复用,不支持全双工通信.rst_n(rst_n), .bps_start(bps_start), .clk_bps(clk_bps) ); my_uart_rx my_uart_rx( .clk(clk), //接收数据模块 .rst_n(rst_n), .rs232_rx(rs232_rx), .clk_bps(clk_bps),

相关主题
文本预览
相关文档 最新文档