资源描述:
《FPGA设计实验指导书.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、图1-14选1数据选择器原理图modulem41(a,b,c,d,sel,q);inputa,b,c,d;input[1:0]sel;outputq;regq;always@(sel)case(sel)2’b00:q=a;2’b01:q=b;2’b10:q=c;2’b11:q=d;endcasedabcqsel[1:0]四选一电路图1-24选1数据选择器的原理框图点击AssignmentDevice菜单,选择器件(本设计选用cyclone系列的EP1C12Q240C8)。图1-3编译点击开始仿真图1-4新建波形文件的选择对话框表2.1四线至二线编码器
2、的真值表图2.1比较器电路符号引脚说明:A、B皆为二位信号;CLK为时钟脉冲输入;RST为清除控制信号。AGTB:当A>B时,其值为1,否则为0;AEQB:当A=B时,其值为1,否则为0;ALTB:当A
3、中断,以确定何时给出下个数据。input[7:0]data;//并行输入的数据。inputSEND,ESC,ADD_100;//SEND、ESC共同决定是否进行并到串//的数据转化。ADD_100决定何时置数。wireD_in,T0;reg[7:0]DATA_Q,DATA_Q_buf;assignT0=!(SEND&ESC);//形成移位时钟。.assignD_in=DATA_Q[7];//给出串行数据。always@(posedgeT0ornegedgeADD_100)//ADD_100下沿置数,T0上沿移位。beginif(!ADD_100)DAT
4、A_Q=data;elsebeginDATA_Q_buf=DATA_Q<<1;//DATA_Q_buf作为中介,以令综合器DATA_Q=DATA_Q_buf;//能辨明。endendendmodule//---------------------s_to_p.v---------------------------modules_to_p(T1,data,D_out,DSC,TAKE,ADD_101);outputT1;//给CPU中断,以确定CPU何时取转化//得到的并行数据。output[7:0]data;inputD_out,DSC,TAKE,A
5、DD_101;//D_out提供输入串行数据。DSC、TAKE//共同决定何时取数。wire[7:0]data;wireT1,clk2;reg[7:0]data_latch,data_latch_buf;assignclk2=DSC&TAKE;//提供移位时钟。assignT1=!clk2;assigndata=(!ADD_101)?data_latch:8'bz;always@(posedgeclk2)begindata_latch_buf=data_latch<<1;//data_latch_buf作缓冲data_latch=data_latch_
6、buf;//,以令综合器能辩明。data_latch[0]=D_out;endendmodule将上面的两个模块合并起来的sys.v的源代码://-------------------sys.v---------------------------`include"./p_to_s.v"`include"./s_to_p.v"modulesys(D_in,T0,T1,data,D_out,SEND,ESC,DSC,TAKE,ADD_100,ADD_101);inputD_out,SEND,ESC,DSC,TAKE,ADD_100,ADD_101;ino
7、ut[7:0]data;outputD_in,T0,T1;p_to_sp_to_s(.D_in(D_in),.T0(T0),.data(data),.SEND(SEND),.ESC(ESC),.ADD_100(ADD_100));s_to_ps_to_p(.T1(T1),.data(data),.D_out(D_out),.DSC(DSC),.TAKE(TAKE),.ADD_101(ADD_101));endmodule