verilog__串并转换_第1页
verilog__串并转换_第2页
verilog__串并转换_第3页
verilog__串并转换_第4页
verilog__串并转换_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 V erilog作业姓名:zzz班級:zzzz學號:zzzz報告日期:2010年10月30日作业题目要求:实现8位的并行数据转换为串行的数据。题目分析:并行转串行,只要把每个输入按从高到低的顺序输出即可。即每个时钟脉冲输出一个数据。但是下面的代码有一个的问题,不能解决在8为数据串行输出的过程当中如果又有一个并行的输入数据输入,没有做到缓冲处理。也许这个缓冲处理可以在调用此模块时在外部实现吧。功能代码:module para_to_serial_8bit(para_in,clock,reset,ser_out;input7:0para_in;input reset,clock;output s

2、er_out;reg ser_out;reg7:0data;always(posedge clock or negedge resetbeginif(resetbeginser_out<=1'b0;data<=para_in;endelse begindata<=data6:0,data7;ser_out<=data7;endendendmodule测试代码:module test_para_to_ser;reg7:0para_in;reg clock,reset;wire out;para_to_serial_8bit f1(.para_in(para_in,

3、.clock(clock,.reset(reset,.ser_out(out;initial$monitor($time,"in_8bit=%b,reset=%b,ser_out=%b,data=%b",para_in,reset,out,f1.data; initial beginclock=1'b0;reset=1'b0;#3reset=1'b1;#300$stop;endinitialpara_in=8'b1010_0100;always#5clock=clock; endmodule测试结果: 测试波形如下: 作业二题目要求:实现8位

4、的串行数据转换为并行的数据。题目分析:8位串行数据转换为并行数据,需要一个模为8的计数器,当计到8个时钟脉冲时,把之前的8个数据全部输出,然后从新接收。功能模块代码:模8计数器:module counter_mod_8(clock,reset,Q;input clock;/posedge effectiveinput reset;/negedge effectiveoutput2:0Q;reg2:0Q;always(posedge clock or negedge resetbeginif(resetQ<=3'd0;elseQ<=Q+1;endendmodul e串转并模块

5、:module ser_to_par_8bit(ser_in,clk,rst,out;input ser_in,clk,rst;output7:0out;wire7:0out;reg7:0par_out;wire2:0count;counter_mod_8f1(.clock(clk,.reset(rst,.Q(count;always(posedge clk or negedge rstbeginif(rstpar_out<=8'b0000_0000;else beginpar_out<=par_out6:0,ser_in;endendassign out=(count=7

6、?par_out:8'b0000_0000;endmodule测试模块代码:module test_ser_par;reg7:0data;wire data_in;reg clock,reset;wire7:0out;initial beginclock=1'b0;reset=1'b0;#3reset=1'b1;data=8'b1001_1101;#300$stop;endalways#5clock=clock;always(posedge clockdata=data6:0,data7;assign data_in=data7;ser_to_par_8

7、bit a(.ser_in(data_in,.clk(clock,.rst(reset,.out(out;initial$monitor($time,"reset=%b,data=%b,data_in=%b,out=%b",reset,data,data_in,out; endmodule测试结果: 测试波形: 作业三 题目:可变模计数器,当控制信号为 1 时,模值为 16,当控制信号为 0 是模值 为 32。 功能模块代码: / contr = 1 mod =16; contr =0 mod =32 module count_mod_chg(clk,reset,contr

8、,Q; input clk,reset,contr; output 4:0 Q; reg wire 4:0 Q; 4:0 last; assign last =(contr ? 5'b01111:5'b11111; always(posedge clk or negedge reset begin if(reset | Q = last Q <= 5'b00000; else Q = Q + 1; end endmodule 测试模块代码: module test_count_mod_chg; reg clock,reset; reg control; wire 4:0 out; count_mod_chg counter1(.clk(clock,.reset(reset,.contr(control,.Q(out; initial $monitor($time,"reset= %b,control= %b,out= %b",reset,control,out; initial begin clock = 1'b0; forever #5 clock = c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论