verilog FPGA代码求助 20
管脚定义的时候我定义了[38:1]ioUSER为三态模式,现在想在时序逻辑里把[16:1]ioUSER作为input赋值给[15:0]Value,ioUSER[17]作为...
管脚定义的时候我定义了[38:1]ioUSER为三态模式,现在想在时序逻辑里把[16:1]ioUSER作为input赋值给[15:0]Value,ioUSER[17]作为output输出out_buffer怎么做呢。。。
inout [38:1]ioUSER;
reg [15:0]Value;
reg out_buffer; 展开
inout [38:1]ioUSER;
reg [15:0]Value;
reg out_buffer; 展开
2个回答
展开全部
moudle tri_test(
input wire clk,
inout [38:1] USER
);
//首先明确一点io的使用位置,推荐只允许在顶层使用io,不要在子模块中使用
reg [15:0] value;
reg input_enable;
//----1.时序逻辑获取[16:1]----//
always @(posedge clk) begin
//....
//....此处省略
if(input_enable) begin //想要将USER作为输入的标记
value[15:0] <= user[16:1]; //作为输入的话可以直接用
end
end
//----2.将out_buffer输出到第17bit----//
endmodule
追问
23,24两行?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
厦门君韦信息技术
2024-11-18 广告
2024-11-18 广告
厦门君韦信息技术有限公司成立于2015年,是一家致力于提供专业服务的电子元件分销商,具有业界先进的质量和可靠性、强大的搜索供应实力、专业的服务能力。厦门君韦主要深耕于图像识别技术研究与开发,同时助推于通信、工控、电力、汽车等行业客户的供应链...
点击进入详情页
本回答由厦门君韦信息技术提供
展开全部
对于双向端口,你需要把它变成一个输入信号 in,一个输出信号out, 和一个输出使能信号output_enable.
所以代码其实很简单:
Assign birsignal = output_enable ? out: 1’bz; //输出
Assign in = birsigna; //输入
所以代码其实很简单:
Assign birsignal = output_enable ? out: 1’bz; //输出
Assign in = birsigna; //输入
追问
能接着答一下么?范例上确实是这么说的,也就是说不输出的时候赋值为高阻态,那么对于我只做输入口的ioUSER1到16可以直接定为高阻态么?顺便我是初学,想求教一下这里的几个语法
assign ioUSER[17]=enable?out_buffer:1'bz;
always @(negedge iMMCLK)
begin
[15:0]Value=[16:1]ioUSER;
end
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询